Disusun oleh:
YULIUS DEDDY HERMAWAN
SITI DIYAR KHOLISOH
ii
4. Semua mahasiswa praktikan DIWAJIBKAN untuk melakukan self-enrollment ke laman
Spada Wimaya UPNVY dan join class ke akun GCR sebelum rangkaian kegiatan praktikum
dimulai.
5. Kehadiran (atau presensi) mahasiswa praktikan dalam seluruh rangkaian kegiatan
praktikum dilakukan dan divalidasi secara daring.
6. Selain menempuh dan mempelajari materi praktikum (sesuai dengan cakupan materi
atau kompetensi yang tercantum di dalam Modul Praktikum ini), semua mahasiswa
praktikan DIWAJIBKAN untuk menempuh Ujian Responsi-1 dan Ujian Responsi-2
(berdasarkan jadwal pelaksanaan praktikum secara rinci yang telah diagendakan).
7. Nilai akhir praktikum akan dikontribusikan dari seluruh rangkaian kegiatan praktikum
(hingga Ujian Responsi).
8. Meskipun seluruh rangkaian kegiatan praktikum dilaksanakan secara daring, namun
segala bentuk tindakan kecurangan dalam penyelesaian tugas-tugas praktikum maupun
ujian oleh mahasiswa praktikan (seperti: plagiasi, copy-and-paste, dan sejenisnya) tidak
akan ditolerir (dan akan bisa berdampak terhadap pengurangan nilai praktikum). Semua
mahasiswa praktikan diharapkan untuk menjunjung tinggi kejujuran, kemandirian, dan
juga integritas.
9. Hal-hal lainnya yang terkait dengan teknis pelaksanaan praktikum secara lebih rinci
(dan belum dicantumkan di dalam tata tertib ini) akan diinformasikan lebih lanjut.
10. Praktikan yang melanggar tata tertib ini akan memperoleh sanksi.
iii
KATA PENGANTAR
Masalah komputasi proses pada umumnya tidak sekedar hanya melingkupi satu atau
dua langkah perhitungan, namun melibatkan sejumlah langkah perhitungan yang bersifat
iteratif (atau berulang-ulang) dan menggunakan metode numerik. Penggunaan metode
numerik merupakan salah satu solusi dari sulitnya menyelesaikan permasalahan sistem
secara analitik karena sistem (persamaan matematika) yang dihadapi bersifat tidak linier dan
cukup kompleks. Beberapa contoh persamaan tidak linier dalam proses kimia antara lain:
persamaan laju reaksi kimia, mekanika fluida, termodinamika, optimasi, dan persamaan
diferensial tak-linier lainnya. Beberapa contoh masalah dalam Teknik Kimia disajikan dalam
praktikum ini dan akan diselesaikan dengan software Scilab.
Scilab merupakan sebuah perangkat lunak terbuka (free and open source software)
yang dapat diperoleh atau diunduh (download) dengan mudah dan gratis melalui laman
http://scilab.org. Scilab dapat digunakan untuk kepentingan komputasi numerik, komputasi
matriks, dan grafik dalam suatu lingkungan yang mudah digunakan di mana masalah dan
penyelesaiannya dituliskan sesuai dengan persamaan matematikanya. Dalam Praktikum
Analisis Numerik dan Pemrograman ini kita akan menggunakan Scilab versi terbaru, yaitu
versi 6.1.0. Scilab menyediakan subrutin yang dapat digunakan dengan leluasa untuk
menyelesaikan masalah-masalah komputasi proses. Subrutin tersebut dituliskan di dalam
SciNotes prompt.
Modul Praktikum Analisis Numerik dan Pemrograman dengan Scilab ini disusun untuk
membantu mahasiswa Teknik Kimia dalam membuat suatu algoritma penyelesaian
persamaan tunggal dan atau sistem persamaan yang berhubungan dengan permasalahan
Teknik Kimia. Modul ini disusun untuk mendukung implementasi mata kuliah Praktikum
Analisis Numerik dan Pemrograman (1210311) yang berada dalam Kurikulum Pendidikan S-1
Teknik Kimia, Jurusan Teknik Kimia Fakultas Teknik Industri UPN “Veteran” Yogyakarta, di
Semester 5 (dan berbobot 1 sks). Modul praktikum ini disusun dengan cakupan materi berupa:
pengenalan Scilab, pengaturan alur program, pencarian akar persamaan (tak-linier dan linier,
serta persamaan-tunggal dan sistem persamaan), regresi (curve-fitting), interpolasi, integrasi
numerik, penyelesaian persamaan diferensial biasa dengan initial value problem,
penyelesaian persamaan diferensial dengan boundary value problem, serta optimasi (satu
variabel maupun multi variabel).
Selain itu, tentunya diharapkan bahwa mahasiswa akan mampu berkreasi dalam
membuat bahasa pemrograman dengan Scilab. Akhir kata, semoga pelaksanaan Praktikum
Analisis Numerik dan Pemrograman dapat berjalan dengan lancar dan bermanfaat
khususnya bagi mahasiswa Jurusan Teknik Kimia Fakultas Teknik Industri UPN “Veteran”
Yogyakarta.
iv
DAFTAR ISI
Halaman
HALAMAN JUDUL i
TATA TERTIB PRAKTIKUM ii
KATA PENGANTAR iv
DAFTAR ISI v
v
4.3 Metode Jacobi untuk Sistem Persamaan Linier IV-3
4.4 Metode Newton untuk Sistem Persamaan Tak-Linier IV-5
4.5 Latihan Soal IV-7
vi
8.2.1 Contoh Kasus-1: PDB-BVP Berorde-Dua VIII-2
8.2.2 Contoh Kasus-2: Penerapan Metode Eksplisit dan Implisit VIII-3
untuk Menyelesaikan Persamaan Diferensial Parsial Dua-
Dimensi (Dua-Variabel) dengan Tipe Parabolik
8.3 Latihan Soal VIII-5
vii
MODUL 1
PENGENALAN SCILAB
MODUL 1
PENGENALAN SCILAB
1.1. Pendahuluan
Scilab merupakan sebuah perangkat lunak terbuka (free and open source software) yang
dapat diperoleh dengan mudah dari internet. Scilab dapat digunakan untuk kepentingan
komputasi numerik, komputasi matriks, dan grafik dalam suatu lingkungan yang mudah
digunakan di mana masalah dan penyelesaiannya dituliskan sesuai dengan persamaan
matematikanya. Scilab dapat dimiliki dan diunduh (download) secara bebas (free) melalui
laman http://scilab.org. Dalam modul Praktikum Analisis Numerik dan Pemrograman ini, akan
digunakan Scilab versi 6.1.0 (versi terbaru, yang dirilis pada tanggal: 25 Februari 2020 serta
mempunyai supported operating system (OS) dengan: Windows Vista/7/8/10 (32/64 bits), GNU
Linux (32/64 bits), dan Mac OS X (Intel)).
Ketika pertama kali kita menjalankan Scilab, maka akan muncul command window yang
dikenal sebagai Console seperti ditunjukkan pada Gambar 1.1. Kita dapat menuliskan
persamaan matematika pada Console di sebelah kiri tanda -->. Console ini dapat digunakan
untuk perhitungan matematika seperti halnya kalkulator. Untuk mengetahui hasilnya, kita
cukup menekan <enter>.
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 I-1
MODUL 1 – Pengenalan Scilab
Contoh 1.1:
-->A = 5*3
A =
15.
-->B = A-10
B =
5.
Pada saat kita bekerja di Console, Scilab menyimpan semua perintah dan variabel yang
kita masukkan. Perintah-perintah dan variabel-variabel yang telah kita tentukan dapat
dipanggil lagi kapan saja. Untuk memanggil variabel tersebut cukup dengan menuliskan
kembali nama variabelnya, dan jika ingin mengulangi perintah yang sama, maka kita dapat
menggunakan tanda panah atas-bawah. Untuk menampilkan daftar semua variabel yang telah
ada, digunakan perintah who. Perintah whos akan menampilkan ukuran baris dan kolom dari
variabel beserta keterangan lainnya.
Contoh 1.2:
-->who
whos B A
-->whos
Name Type Size Bytes
Variabel-variabel yang kita buat ini bersifat sementara. Dengan kata lain, jika kita keluar
dari Scilab, maka variabel-variabel ini akan hilang. Agar variabel-variabel ini tidak hilang, maka
kita dapat menyimpannya dalam directory yang kita kehendaki dengan menggunakan perintah:
save diikuti nama variabel. Untuk memanggilnya kembali digunakan perintah load diikuti nama
variabel. Variabel pada current directory dapat kita hapus menggunakan perintah clear diikuti
nama variabel. Perintah clear tanpa nama variabel akan menghapus semua variabel pada
directory. Untuk menghapus dan membersihkan layar pada command windows, digunakan
perintah clc.
Beberapa karakter yang memiliki fungsi tersendiri pada Scilab, antara lain:
// slash ganda, semua teks setelah tanda // merupakan komentar dan tidak dieksekusi.
; titik koma, berguna agar hasil perhitungan tidak ditampilkan di layar. Selain itu,
karakter ini berguna juga untuk memisahkan perintah dalam satu baris.
… tiga titik, berfungsi untuk menyambung perintah yang tidak cukup dalam satu baris.
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 I-2
MODUL 1 – Pengenalan Scilab
Scilab menyediakan menu help untuk memudahkan kita dalam menggunakan Scilab.
Dengan menuliskan help (tanpa diikuti topik/ command) pada Console maka akan muncul Help
Browser seperti ditunjukkan pada Gambar 1.2. Di dalam help browser ini, semua keterangan
tentang command atau perintah-perintah Scilab dapat dipelajari. Jika kita menuliskan help
diikuti topik/ command, maka Help Browser akan langsung tertuju pada topik/ command yang
kita tuliskan tersebut.
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 I-3
MODUL 1 – Pengenalan Scilab
exp(x) Eksponensial
log(x) natural logarithm (base: e)
log10(x) common logarithm (base: 10)
* Perkalian
/ Pembagian
+ Penjumlahan
- Pengurangan
^ Pangkat
sqrt(x) Akar kuadrat
dan lain-lain.
1.4. Array
Ada 3 (tiga) cara membuat array pada Scilab, yaitu:
dengan memasukkan nilai dari elemen-elemen array dalam tanda kurung siku [ ] dan
dipisahkan dengan spasi atau koma.
dengan menggunakan pola (awal : step : akhir). Jika step = 1, maka step dapat
dihilangkan.
dengan menggunakan fungsi linspace(awal, akhir, banyaknya nilai) atau fungsi
logspace(pangkat awal, pangkat akhir, banyaknya nilai). Contoh: logspace(0,3,4)
artinya array dari 100 sampai 103 sebanyak 4 buah.
Contoh 1.3:
-->alpha = 1:3:10
alpha =
1. 4. 7. 10.
-->betha = 10:-2:4
betha =
10. 8. 6. 4.
-->aku = linspace(0,3,4)
aku =
0. 1. 2. 3.
-->anda = logspace(0,3,4)
anda =
1. 10. 100. 1000.
1.5. Matriks
Matriks merupakan gabungan dari beberapa array (baris maupun vektor). Elemen
matriks pada Scilab ditulis berdasarkan format baris,kolom, misal: Y = mereka(1,4) berarti Y
adalah elemen matriks “mereka” pada baris ke-1 dan kolom ke-4. Tanda : (titik dua)
menunjukkan elemen pada semua baris atau kolom matriks, misal: X = mereka(:,4) berarti
elemen-elemen pada semua baris pada kolom ke-4. Contoh-contoh penulisan matriks:
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 I-4
MODUL 1 – Pengenalan Scilab
Contoh 1.4:
-->Y = mereka(1,4)
Y =
10.
-->X = mereka(:,4)
X =
10.
4.
3.
1000.
-->Z = mereka(2,:)
Z =
10. 8. 6. 4.
Transposisi
Transposisi vektor dan matriks dinyatakan dengan simbol (‘). Secara sederhana definisi
transposisi vektor dan matriks adalah mengubah posisi elemen-elemen kolom menjadi
elemen-elemen baris pada vektor dan matriks tersebut, dan sebaliknya. Secara matematika,
proses transposisi dapat dinyatakan sebagai berikut.
A = B’ jika aij = bji
Contoh 1.5:
-->data = [1 3; 5 7]
data =
1. 3.
5. 7.
-->A = data'
A =
1. 5.
3. 7.
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 I-5
MODUL 1 – Pengenalan Scilab
Contoh 1.6:
-->V = [1 2 2; 2 3 2; 3 2 1]
V =
1. 2. 2.
2. 3. 2.
3. 2. 1.
-->X = inv(V)
X =
0.3333333 - 0.6666667 0.6666667
- 1.3333333 1.6666667 - 0.6666667
1.6666667 - 1.3333333 0.3333333
-->Y = det(V)
Y =
- 3.
Contoh 1.7:
-->P = [10 20 30]
P =
10 20 30
-->X = P+Q
X =
50 70 90
-->Y = P - Q
Y =
-30 -30 -30
Pemangkatan Matriks
Pemangkatan n pada matriks berarti perkalian matriks tersebut sebanyak n kali. Syarat
pemangkatan matriks tentu saja adalah bahwa matriks yang akan dipangkatkan harus berupa
matriks bujur sangkar sehingga dapat dikalikan secara berulang-ulang (lihat Contoh 1.9).
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 I-6
MODUL 1 – Pengenalan Scilab
Contoh 1.8:
-->A = [1 3 5; 2 4 6; 3 5 7]
A =
1 3 5
2 4 6
3 5 7
-->B = [2 3; 4 5; 6 7]
B =
2 3
4 5
6 7
-->c = A*B
c =
44 53
56 68
68 83
Contoh 1.9:
-->X = [2 2; 2 2]
X =
2 2
2 2
-->Y1 = X^2
Y1 =
8 8
8 8
Pembagian Matriks
Terdapat dua macam pembagian matriks yaitu:
a. Pembagian kiri : x = A\B yang diartikan sebagai penyelesaian dari: A*x = B
b. Pembagian kanan : x = A/B yang diartikan sebagai: x = A*Inv(B)
Contoh 1.10:
-->A = [1 2 3; 1 4 2; 1 1 2]
A =
1 2 3
1 4 2
1 1 2
--> B = [2; 3; 4]
B =
2
3
4
-->x = A\B
x =
7.6667
-0.3333
-1.6667
-->cek = A*x
cek =
2.0000
3.0000
4.0000
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 I-7
MODUL 1 – Pengenalan Scilab
Contoh 1.11:
-->A = [1 2 3]
A =
1 2 3
-->B = [2 2 2]
B =
2 2 2
-->A*B'
ans =
12 (perkalian vektor biasa)
-->A.*B
ans =
2 4 6 (perkalian elemen vektor)
-->A./B
ans =
0.5000 1.0000 1.5000 (pembagian elemen vektor)
Contoh 1.12:
-->A.^B
ans =
1 4 9
-->B.^A
ans =
2 4 8
Contoh 1.13:
» x = [1 2 3];
» y = x.^2 + 2.*x + 4
y =
7 12 19
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 I-8
MODUL 1 – Pengenalan Scilab
Contoh 1.14:
-->disp('SAYA SEDANG BELAJAR SCILAB')
SAYA SEDANG BELAJAR SCILAB
Salah satu perintah untuk mencetak hasil ataupun data antara lain adalah printf. Contoh
penggunaannya adalah sebagai berikut.
Contoh 1.15:
-->y=[1 2 3 4]
y =
1. 2. 3. 4.
-->printf('%10.3f\n',y')
1.000
2.000
3.000
4.000
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 I-9
MODUL 1 – Pengenalan Scilab
Sebagai contoh, plot(x,y,'b+:') merupakan perintah membuat grafik y versus x dengan tanda +
dan berwarna biru.
Contoh 1.16:
Diketahui: x = 0:10 dan y = 4x2 + 3x + 5. Dengan menggunakan Scilab dapat diperoleh tampilan
dan grafik sebagai berikut.
-->x = 0:10
x =
0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
5. 12. 27. 50. 81. 120. 167. 222. 285. 356. 435.
-->printf('%10.0f %10.1f\n',x',y')
0 5.0
1 12.0
2 27.0
3 50.0
4 81.0
5 120.0
6 167.0
7 222.0
8 285.0
9 356.0
10 435.0
Selain menggunakan fungsi ‘plot’ (seperti tersebut di atas), Scilab juga menyediakan
sejumlah fitur lain untuk menggambarkan grafik dalam bentuk 2 dimensi maupun 3 dimensi.
Untuk mengenalnya lebih lanjut, silakan mengakses help browser maupun ‘2D and 3D Plots’
pada menu Demonstrations – Graphics.
Jika kita ingin menampilkan beberapa grafik (secara bersamaan) dalam jendela yang
sama, maka dapat digunakan perintah ‘subplot’.
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 I-10
MODUL 1 – Pengenalan Scilab
Contoh 1.17:
Diketahui: x = 0:10; y = 4x2 + 3x + 5; dan z = 2 sin(x/3); dengan Scilab maka dapat diperoleh
tampilan dan grafik sebagai berikut.
-->x = 0:10
x =
0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
5. 12. 27. 50. 81. 120. 167. 222. 285. 356. 435.
-->z = 2*sin(x/3);
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 I-11
MODUL 2
MENGATUR ALUR PROGRAM
MODUL 2
MENGATUR ALUR PROGRAM
Untuk membuat file script, pilihlah menu Launch SciNotes pada menu bar Console
seperti pada Gambar 2.1. Prosedur ini akan mengeluarkan teks editor di mana kita dapat
memasukkan perintah Scilab. Setelah file ini disimpan dalam suatu direktori yang kita pilih
dengan nama file tertentu (misalnya: latih1.sce), maka Scilab dapat menjalankan semua
perintah dalam file ini pada prompt Scilab.
Launch SciNotes
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 II-1
MODUL 2 – Mengatur Alur Program
Jika kita memilih atau menekan icon Launch SciNotes, maka semua file Scilab yang
diketikkan dalam SciNotes akan secara otomatis disimpan dalam direktori My Documents
(seperti pada Gambar 2.2). Sebelum menjalankan program Scilab, sebaiknya direktori
penyimpanan SciNotes diubah lebih dahulu (dengan memilih direktori yang kita inginkan).
Scilab akan mengeksekusi semua perintah yang ditulis dalam SciNotes. Jika terdapat kesalahan
perintah atau kekurangan data atau informasi, maka akan muncul komentar pada prompt
window (pada jendela Console). Beberapa contoh penggunaan SciNotes akan dibahas dalam
sub-bab berikutnya.
For Loop
Fungsi for untuk melakukan loop sejumlah urutan pemrograman atau perhitungan
yang telah ditentukan dengan bentuk umum sebagai berikut:
for i = array
commands
end
Contoh 2.1:
Menghitung kapasitas panas gas CH4 pada berbagai suhu dengan persamaan:
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 II-2
MODUL 2 – Mengatur Alur Program
Program di SciNotes:
// Latihan membuat alur program dengan perintah for_end
clear;clc;
T = [300:25:400]; // suhu [K]
n = length(T); // jumlah elemen vektor T
for i = 1:n
Cp(i) = 38.387 - 7.3664e-2*T(i) + 2.9098e-4*T(i)^2 - 2.6385e-7*T(i)^3;
end
T
Cp
35.35205
36.123487
36.937081
37.768098
38.5918
While Loop
Fungsi while digunakan untuk melakukan pengulangan perintah pemrograman atau
perhitungan yang diapitnya selama kondisi pengujinya benar. Di dalam loop harus ada
perintah-perintah yang membuat kondisi pengujinya menjadi salah. Karena kalau tidak, loop
akan berlangsung terus-menerus. Bentuk umum perintah while loop adalah sebagai berikut.
while expression
commands
end
Contoh 2.2:
Program di SciNotes:
// Latihan membuat alur program dengan perintah while_end
clc;clear;
n = 5; iterasi = 0;
while iterasi < n
iterasi = iterasi + 1;
A(iterasi) = n-iterasi;
end
iterasi
A
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 II-3
MODUL 2 – Mengatur Alur Program
iterasi =
5.
A =
4.
3.
2.
1.
0.
if expression
commands
end
atau:
if expression then
commands evaluated if TRUE
else
commands evaluated if TRUE
end
atau:
if expression1 then
commands evaluated if expression1 is TRUE
elseif expression2 then
commands evaluated if expression2 is TRUE
else …
end
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 II-4
MODUL 2 – Mengatur Alur Program
Contoh 2.3:
Program di SciNotes:
// Latihan membuat alur program dengan perintah if_then_elseif_then_else_end
clc; clear;
x = 2
if x == 0 then
disp('x = 0')
elseif x < 0 then
disp('x = bilangan negatif')
else
disp('x = bilangan positif')
end
2.
x = bilangan positif
deff
Menu deff digunakan untuk mendefinisikan suatu fungsi yang tidak begitu panjang dan
dapat diketik dalam satu baris program. Penulisan definisi fungsi dengan deff dijelaskan
sebagai berikut:
deff('[s1,s2,...] = newfunction(e1,e2,....)',text)
di mana:
newfunction : nama fungsi
e1,e2,..., : variabel-variabel input
s1,s2,..., : variabel-variabel output
text : matriks dari karakteristik string
Contoh 2.4 :
Program di SciNotes:
// latihan mendefinisikan fungsi dengan deff
clear; clc
a = [4 5 6]; b = 2;
deff('[s1,s2] = fungsiab(a,b)','s1 = a^2 + b, s2 = s1-b');
[s1,s2] = fungsiab(a,b)
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 II-5
MODUL 2 – Mengatur Alur Program
s2 =
Apabila nilai variabel input pada Contoh 2.4 sudah diketahui, maka fungsi dapat dipanggil
dengan menulis: exec(nama fungsi) sebagai berikut:
Program di SciNotes:
// latihan mendefinisikan fungsi dengan deff
clear; clc
a = [4 5 6]; b = 2;
deff('[s1,s2] = fungsiab(a,b)','s1 = a^2 + b, s2 = s1-b');
exec(fungsiab)
di mana:
<function_name> : nama fungsi yang digunakan
<rhs_arguments> : daftar variabel input yang dituliskan didalam tanda ( ), misalnya
(x1,x2,…,xn)
<lhs_arguments> : variabel output yang dituliskan dalam tanda [ ], misalnya [x,y] = artinya
output perhitungan adalah x dan y; Jika dalam perhitungan menghasilkan
hanya satu output maka tanda [ ] dapat dihilangkan.
<statements> : berisi instruksi atau pernyataan
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 II-6
MODUL 2 – Mengatur Alur Program
Contoh 2.5:
Program di SciNotes:
// Latihan membuat alur program dengan function
clc; clear;
function [x,y] = fungsiku(a,b)
x = a + b
y = a - b
endfunction
[x,y] = fungsiku(3,2)
1.
x =
5.
Contoh 2.6:
Program di SciNotes:
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 II-7
MODUL 2 – Mengatur Alur Program
hasil =
3.
- 1.
Contoh 2.7:
Program di SciNotes:
// latihan menggunakan instruksi string dengan command execstr
clear; clc
x1 = 2; y1 = 4;
RUMUS = (['(x+y)/2']);
x = x1; y = y1; //variabel input
hasil = evstr(RUMUS)
//ulangi perhitungan RUMUS dengan x dan y yang lain
disp('hasil perhitungan ulang')
dx = 1; dy = 1; it = 0;
ULANG=(['for i=1:3'
'it = it + 1'; 'x = x1 + dx'; 'y =y1 + dy';
'HU = evstr(RUMUS)';
'disp(HU)';
'x1 = x';'y1 = y';
'end']);
execstr(ULANG)
1. Suatu campuran terdiri dari 3 komponen (zat), yaitu: toluena (C6H5CH3) sebanyak 35%-mol,
p-xylena (C6H4(CH3)2) sebanyak 10%-mol, dan sisanya berupa etilbenzena (C6H5C2H5).
Berapakah berat molekul relatif (BM) campuran zat ini?
Buatlah program Scilab sederhana dengan memanfaatkan: (a) perintah atau fungsi
‘sum’ atau operasi aljabar vektor dan matriks secara langsung, serta kemudian
membandingkannya dengan menggunakan: (b) perintah pengaturan alur program
(misalnya: perintah for-end loop), untuk melakukan perhitungan ‘ (sigma)’ dalam
kasus ini.
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 II-8
MODUL 2 – Mengatur Alur Program
2. Harga kapasitas panas suatu campuran gas pada suhu tertentu dinyatakan dengan
n
persamaan sebagai berikut: CP campuran y C
1
i Pi
Nama Fraksi-mol
No. Ai Bi Ci Di
Komponen (yi)
1 CH4 0,45 4,750 1,200 x 10-2 0,303 x 10-5 -2,630 x 10-9
2 C 2H6 0,30 1,648 4,124 x 10-2 -1,530 x 10-5 1,740 x 10-9
3 H2 0,15 6,952 -0,046 x 10-2 0,096 x 10-5 -0,208 x 10-9
4 O2 0,10 6,085 0,363 x 10-2 -0,171 x 10-5 0,313 x 10-9
CPi [=] kal/(gmol.K) dan T [=] K
Tentukanlah kapasitas panas campuran pada berbagai suhu: T = 30 oC hingga T = 100 oC.
Ambillah beda suhu sebesar: delT = 10 oC dan delT = 5 oC.
Sajikanlah hasil perhitungan dalam bentuk: (a) tabel, dan (b) grafik.
3. Suhu kritik semu campuran gas (Tpcm) dapat ditentukan melalui persamaan:
N N
Tpcm y y T i j cij
i1 j1
Jika terdapat campuran gas: etana (40%-mol), etilena (10%), dan propilena (50%) pada
suhu 300 K, serta tersedia data berikut ini:
Komponen Etana Etilena Propilena
i 1 2 3
Mi, kg/kmol 30,070 28,054 42,081
Tci, K 305,4 282,4 364,9
Konstanta interaksi biner dari Barner dan Quinland (Sumber: The Properties of Gases and
Liquids, Third Edition, Robert C. Reid, John M. Prausnitz and Thomas K. Sherwood,
McGraw‐Hill (1977)):
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 II-9
MODUL 2 – Mengatur Alur Program
4. Tentukanlah nilai angka Reynolds (Re) dan faktor gesekan (f) dari suatu aliran fluida
melalui pipa, di mana kecepatan linier aliran divariasikan pada: u = [1:1:20] x 10-2 (m/detik).
1 5,02
5,02 D 13
4 ,0 log D log D log
f 3,7 Re 3,7 Re 3,7 Re
Untuk rezim turbulen (4000 Re 108):
1 Re
3,6 log
f 0,135 Re 6,5
D
di mana: /D = rasio kekasaran pipa (roughness ratio)
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 II-10
MODUL 3
AKAR-AKAR PERSAMAAN TAK-LINIER TUNGGAL
MODUL 3
AKAR-AKAR PERSAMAAN TAK-LINIER TUNGGAL
3.1. Tujuan
Menentukan akar-akar persamaan tak-linier tunggal dengan menggunakan dua
kategori besar metode, yaitu:
(1) metode terbuka (open methods), yang meliputi: metode Newton-Raphson dan
secant (tali busur), serta
(2) metode pengurung (bracketing methods), seperti: metode bisection (bagi dua)
dan false position (regula-falsi).
Membandingkan hasil-hasil yang diperoleh dari penggunaan masing-masing metode.
Jika x merupakan akar persamaan tak-linier dari fungsi tunggal berupa: f(x) = 0, maka
f xi
metode Newton-Raphson (NR) dapat dinyatakan sebagai: x i1 xi
f' xi
di mana: f ‘(xi) = turunan pertama dari fungsi f(xi).
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 III-1
MODUL 3 – Akar-akar Persamaan Tak-Linier Tunggal
Selanjutnya, besarnya error (atau: ‘beda’) pada setiap langkah perhitungan (sebagai
salah satu kriteria untuk menghentikan iterasi) juga dapat dinyatakan melalui approximate
error (ea) sebagai berikut:
xsekarang xsebelumnya
approximate error (ea ) x 100%
x sekarang
Secara umum, metode secant (sebagai salah satu metode dalam kategori open
methods) dinyatakan sebagai berikut:
f xi xi 1 xi
xi 1 xi
f xi 1 f xi
Berbeda dengan Newton-Raphson, metode secant tidak memerlukan turunan dari fungsi f(x).
Namun demikian, metode ini memerlukan 2 nilai tebakan awal, yaitu xi 1 dan xi. Algoritma
penentuan akar persamaan tak-linier tunggal dengan metode secant ditunjukkan melalui
diagram alir pada Gambar 3.2.
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 III-2
MODUL 3 – Akar-akar Persamaan Tak-Linier Tunggal
Metode bisection (bagi dua) sangat berbeda dibandingkan dengan metode Newton-
Raphson maupun metode secant, karena bisection merupakan salah satu metode dalam
kategori metode pengurung yang mempunyai 2 (dua) nilai tebakan awal (di mana kedua nilai
tebakan awal ini harus “mengurung” atau “mengapit” akar sesungguhnya) dan berproses
secara terus menerus (berulang-ulang) dengan cara mempersempit rentang variabelnya.
Pada metode bisection, terlebih dahulu ditentukan nilai xrendah dan xtinggi sebagai
rentang atau batas dalam mencari akar sesungguhnya. Nilai akar sesungguhnya berada di
antara xrendah dan xtinggi sehingga disebut sebagai xtengah. Nilai xtengah (XM) dapat ditentukan
xrendah xtinggi
dengan persamaan: xtengah
2
Selanjutnya, proses penyempitan rentang tersebut dilakukan dengan cara:
Jika: f(xrendah). f(xtengah) < 0 maka: (xtinggi)baru = (xtengah)lama
Jika: f(xrendah). f(xtengah) > 0 maka: (xrendah)baru = (xtengah)lama
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 III-3
MODUL 3 – Akar-akar Persamaan Tak-Linier Tunggal
Algoritma penentuan akar persamaan tak-linier dengan metode bisection ditunjukkan dalam
diagram alir pada Gambar 3.3.
xU xL
x M x U f(x U )
f (x U ) f(x L )
x U xL
atau: x M x L f (x L )
f (x U ) f (x L )
dengan: xM xtengah; xU xtinggi; xL xrendah
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 III-4
MODUL 3 – Akar-akar Persamaan Tak-Linier Tunggal
Prosedur penentuan akar persamaan tak-linier tunggal dengan metode false position
disajikan melalui algoritma berikut ini:
1. Mulai
2. Ambil: nilai tebakan awal XL dan XU, nilai toleransi ‘tol’, nilai awal ‘beda’
3. Hitung nilai: f(XL) dan f(XU)
4. Cek nilai tebakan awal (apakah sudah sesuai atau belum), melalui perkalian antara f(XL)
dan f(XU). Jika bernilai negatif, maka tebakan awal sudah sesuai (benar).
5. Lakukan secara berulang-ulang (dalam loop) hingga diperoleh: beda < tol
Hitung nilai Xtengah (atau: XM) dengan formula false position
Hitung nilai: f(XL), f(XU), dan f(XM)
Jika: f(XL)*f(XM) < 0 maka: (XU)baru = (XM)lama
Jika: f(XL)*f(XM) > 0 maka: (XL )baru = (XM)lama
Hitung nilai ‘beda’, misalnya: beda = |XU – XL| (atau: pendefinisian lainnya)
Untuk iterasi dengan metode-metode pengurung, nilai error (atau: ‘beda’) pada setiap langkah
perhitungan juga dapat dinyatakan melalui approximate error (ea) sebagai berikut:
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 III-5
MODUL 3 – Akar-akar Persamaan Tak-Linier Tunggal
2. Faktor kompresibilitas gas (Z) dapat dinyatakan dengan persamaan Peng-Robinson sebagai
R 2Tc2
a 0, 45724
Pc
R Tc
b 0,0778
Pc
1 S 1 T r
0.5 2
T P
Tr , Pr
Tc Pc
3. Besarnya Fanning friction factor (f) dari suatu aliran fluida melalui pipa pada zona turbulen
1
dapat dinyatakan dalam persamaan:
f
4 log Re f 0,4
uD
dengan: Re
Berapakah nilai f, jika nilai f berada pada batasan antara 0,005 dan 0,01.
Data: = 1000; u = 0,3; D = 0,0508; = 0,001
Catatan: Plotkanlah grafik fungsinya (pada rentang variabel bebas yang diperlebar,
misalnya: 0 < f < 0,5; sesuai dengan “nilai logis”-nya), selanjutnya lakukan/
berikan analisis Anda terhadap hal tersebut.
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 III-6
MODUL 3 – Akar-akar Persamaan Tak-Linier Tunggal
5. Pendirian suatu pabrik kimia memerlukan fixed capital (FC) = Rp 720 milyar dan working
capital (WC) = Rp 285 milyar. Nilai annual cash flow (C) = Rp 250 milyar. Umur pabrik
diperkirakan selama 10 tahun dengan salvage value (SV) = Rp 72 milyar. Jika i menyatakan
nilai suku bunga investasi ini yang diekivalensikan dengan jika disimpan di bank,
tentukanlah nilai i (secara iteratif)!
Dalam hal ini, jika digunakan present value analysis, maka nilai i dapat dihitung melalui
persamaan:
C C C C WC SV
FC WC 2
3
... 10
1 i (1 i ) (1 i ) (1 i ) (1 i)10
x 2 Pt
K
1 x 2x
where K is the reaction’s equilibrium constant and Pt is the total pressure of the mixture. If
Pt = 2,9 atm and K = 0,05; determine the value of x that satisfies the equation above.
7. Perhitungan kesetimbangan uap-cair dalam sebuah flash drum (yang dapat didekati
sebagai distilasi satu tahap) yang beroperasi pada suhu T dan tekanan P mengacu pada
persamaan atau fungsi f sebagai berikut:
n n n
z j K j 1
f y x
j j 1 K j
0
j1 j1 j1
V
di mana: (merupakan rasio banyaknya umpan yang teruapkan)
F
Kj konstanta kesetimbangan uap-cair komponen j, yang dapat diperoleh dari
sejumlah persamaan empiris, seperti persamaan De-Priester, atau terkait
dengan tekanan uap murni komponen j (Pjo, dapat didekati melalui
persamaan Antoine).
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 III-7
MODUL 3 – Akar-akar Persamaan Tak-Linier Tunggal
Catatan:
Setelah menyelesaikan kasus soal tersebut di atas, coba Anda ulangi menuliskan
algoritma dan program numerik (dengan Scilab), jika kasus soal ini diterapkan untuk flash
calculation:
Tipe 1, dan
Tipe 2.
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 III-8
MODUL 4
AKAR-AKAR SISTEM PERSAMAAN LINIER
DAN TAK-LINIER
MODUL 4
AKAR-AKAR SISTEM PERSAMAAN LINIER DAN TAK-LINIER
4.1. Tujuan
Menentukan akar-akar sistem persamaan linier secara simultan dan iteratif (dengan
metode Gauss-Seidel dan Jacobi).
Menentukan akar-akar sistem persamaan tak-linier secara simultan (dengan metode
Newton).
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 IV-1
MODUL 4 – Akar-akar Sistem Persamaan Linier dan Tak-Linier
MULAI
TEBAKAN AWAL
x2old = x2 & x3old = x 3
ya
TULIS
x1 = x1new
x2 = x2new
x3 = x3new
SELESAI
Gambar 4.1. Diagram alir metode Gauss-Seidel untuk sistem persamaan aljabar linier
(diagonally dominant)
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 IV-2
MODUL 4 – Akar-akar Sistem Persamaan Linier dan Tak-Linier
Metode relaksasi merupakan modifikasi dari metode Gauss-Seidel yang dirancang untuk
meningkatkan konvergensi. Setelah masing-masing xi dihitung dengan persamaan-persamaan
di atas, nilai xi ini selanjutnya dimodifikasi dengan memberikan faktor pembobot terhadap
hasil iterasi sekarang dan iterasi sebelumnya; atau:
xi,baru = λ xi,baru + (1− λ) xi,lama
di mana:
λ ≡ faktor pembobot (bernilai antara 0 – 2; biasanya ditentukan secara empirik)
b1 a a
x1 new 12 x 2 old 13 x 3 old
a11 a11 a11
b a a
x 2new 2 21 x 1 old 23 x 3old
a22 a22 a22
b a a
x 3new 3 31 x 1 old 32 x 2 old
a33 a33 a33
Algoritma penyelesaian sistem persamaan aljabar linier dengan metode Jacobi ditunjukkan
dalam diagram alir pada Gambar 4.2.
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 IV-3
MODUL 4 – Akar-akar Sistem Persamaan Linier dan Tak-Linier
Gambar 4.2. Diagram alir metode Jacobi untuk sistem persamaan aljabar linier
Keterangan:
Nilai ‘error’ (misalnya, melalui definisi approximate error) dapat dihitung atau
ditentukan dari:
error1 error2 error3
error
3
yang menyatakan rerata dari error terhadap masing-masing variabel-nya,
x1,baru x1
dengan: error1 * 100%
x1,baru
x2,baru x2
error2 * 100%
x2,baru
x3,baru x3
error3 * 100 %
x3,baru
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 IV-4
MODUL 4 – Akar-akar Sistem Persamaan Linier dan Tak-Linier
Tinjaulah suatu sistem persamaan aljabar tak-linier yang terdiri dari dua persamaan
(dalam variabel x dan y) berikut ini: u = f1(x,y) = 0
v = f2(x,y) = 0
Mirip dengan metode Newton-Raphson untuk menentukan akar persamaan tak-linier tunggal
(yang melibatkan fungsi turunan pertama), maka metode Newton untuk mencari akar-akar
sistem persamaan tak-linier secara simultan juga melibatkan turunan pertama dari masing-
masing fungsinya (sehingga melibatkan turunan parsial). Melalui penjabaran dari pendekatan
deret Taylor terhadap sistem persamaan tersebut di atas, maka nilai xi+1 dan yi+1 dapat
ditentukan secara iteratif dari perumusan berikut ini:
f1,i f
(x i1 x i ) (yi1 yi ) 1,i f1,i
x y
f2,i f
(x i1 x i ) (y i1 y i) 2,i f2,i
x y
atau, jika dituliskan dalam bentuk perkalian matriks bujur sangkar A dan vektor x, maka:
Matriks yang berisikan turunan parsial fungsi (matriks A) disebut sebagai matriks Jacobian.
f1,i f1,i
f1,i y x f1,i
det det
f f2,i f
2,i f2,i
2,i y x
x i dan y i
f1,i f1,i f
1,i f1 ,i
x y x y
det det
f2,i f2,i f2,i f2,i
x y x y
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 IV-5
MODUL 4 – Akar-akar Sistem Persamaan Linier dan Tak-Linier
Secara umum, penyelesaian sistem n buah persamaan tak-linier dengan n buah variabel
yang tak diketahui secara simultan dapat dilakukan melalui proses dan cara yang serupa (atau
analog) dengan penjabaran di atas.
Catatan Tambahan:
Nilai turunan parsial masing-masing fungsi dapat ditentukan secara analitik (jika
memungkinkan) atau numerik (melalui pendekatan finite-divided difference). Sebagai review,
berikut ini disajikan contoh-contoh perumusan fungsi turunan pertama tersebut.
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 IV-6
MODUL 4 – Akar-akar Sistem Persamaan Linier dan Tak-Linier
1. Sistem persamaan aljabar linier berikut ini dirancang untuk menentukan konsentrasi (c
dalam g/m3) dalam sebuah sistem reaktor seri sebagai fungsi massa.
17 c1 3 c2 c3 = 3800
3 c1 + 18 c2 6 c3 = 1200
4 c1 c2 + 12 c3 = 2350
Selesaikan masalah ini dengan metode iteratif: (a) Gauss-Seidel, dan (2) Jacobi.
Selanjutnya, bandingkanlah hasil-hasil perhitungan yang Anda peroleh.
4. Sebuah kolom ekstraksi yang memiliki 4 tahap ideal (teoretik) digunakan untuk
mengekstraksi asam format yang terlarut dalam metil isobutil keton (MIBK) dengan
menggunakan air sebagai pengekstrak. Operasi akan dilakukan dengan mode berlawanan
arah (counter current). Fasa organik diumpankan dari dasar kolom dengan laju 5 m3
MIBK/jam dan konsentrasi asam format 1,0 mol/liter MIBK, sedangkan fasa akuatik
dialirkan dari puncak kolom dengan laju alir 2,45 m3 air/jam serta sama sekali tidak
mengandung asam format. Operasi berlangsung isotermal dan harga rasio kesetimbangan
konsentrasi asam format di dalam MIBK terhadap konsentrasi asam format di dalam air
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 IV-7
MODUL 4 – Akar-akar Sistem Persamaan Linier dan Tak-Linier
adalah sebesar: K = 0,445. MIBK dan air dapat dianggap sama sekali tidak saling larut satu
sama lain. 1 m3 = 1000 liter. Susunlah sistem persamaan aljabar linier untuk kasus ini, dan
selanjutnya tentukanlah konsentrasi asam format pada aliran-aliran yang keluar dan
masuk di masing-masing plate atau tahap ideal dalam kolom ekstraksi tersebut.
7. Etanol (1) sebanyak 47 gram dicampurkan dengan n-heptana (2) sehingga menghasilkan
100 gram campuran biner etanol dan n-heptana (pada T = 70,9 oC dan P = 760 mmHg).
Jika perilaku campuran ini dapat didekati dengan persamaan Van Laar, maka tentukanlah
nilai-nilai koefisien Van Laar untuk campuran ini (yaitu A12 dan A21)!
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 IV-8
MODUL 5
CURVE-FITTING DAN INTERPOLASI
MODUL 5
CURVE-FITTING DAN INTERPOLASI
5.1. Tujuan
Melakukan proses curve-fitting terhadap sekumpulan data dengan menentukan nilai-
nilai koefisien atau parameter dalam persamaan-persamaan linier, tak-linier, dan
polinomial dengan prosedur atau teknik least squares regression.
Melakukan proses linierisasi terhadap persamaan tak-linier sederhana.
Melakukan interpolasi data, misalnya dengan interpolasi linier dan kuadrat.
Jumlah kuadrat error (sum of square error, SSE) didefinisikan sebagai berikut:
n n
SSE e2i y i a0 a1x i 2
i 1 i1
SSE
Nilai a0 dan a1 dicari dengan cara sebagai berikut: 2 y i a 0 a1x i
a0
SSE
2 y i a0 a1 x i
a1
Dengan menetapkan turunan-turunan bernilai sama dengan nol, maka proses ini akan
2
0 x y a x a x
i i 0 i 1 i
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 V-1
MODUL 5 – Curve-Fitting dan Interpolasi
Karena: a 0 n a0 , maka:
n a0 xi a1 yi
x a x a x y
i 0
2
i 1 i i
Dengan demikian, nilai-nilai koefisien a1 dan a0 dipenuhi dari persamaan sebagai berikut:
n x i y i xi yi
a1
n x 2i xi
2
a0 y a1 x
Catatan:
Dengan cara yang sama (menggunakan prosedur least squares), jika persamaan linier yang
ditinjau berbentuk: y = a x (yaitu persamaan linier tanpa intercept), maka diperoleh:
n
SSE (a x i y i )2 f(a)
i 1
d (SSE) n
2 (a x i yi ) . x i 0
da i 1
Tinjaulah y sebagai fungsi linier dari variabel-variabel x1, x2, …, xm sebagai berikut:
y = a0 + a1 x1 + a2 x2 + … + amxm + e
Jumlah kuadrat error (SSE) dapat dituliskan sebagai:
n
SSE y i a0 a1x 1 a2x 2 ... am x m 2
i 1
SSE
2 x 1,i y i a 0 a1 x1 ,i a2x 2,i ... amx m ,i
a1
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 V-2
MODUL 5 – Curve-Fitting dan Interpolasi
SSE
dan seterusnya hingga: 2 x m,i y i a0 a1x 1,i a2 x 2,i ... am x m,i
am
Dengan menetapkan turunan-turunan bernilai sama dengan nol, maka hal ini akan
meminimumkan SSE, dan hasilnya dapat dirangkum dalam bentuk matriks sebagai berikut:
n
x1,i x 2 ,i x m ,i
a0 i
y
2
x1,i x1 ,i x 1,i x2 ,i x1,i x m,i a
x y
1, i i
2
1
x2,i x1,i x2,i x 2,i x
2, i x m , i a 2
x2 , i yi
:
: :
x am x y
m,i i
2
m ,i x1,i x m,i x2,i xm,i ... xm,i
Bentuk matriks di atas membentuk sistem persamaan aljabar linier. Dengan demikian, nilai-
nilai koefisien a0, a1, …, am dapat ditentukan [misalnya: dengan cara Cramer (yang berbasiskan
determinan) atau dengan metode-metode iteratif, seperti: Gauss-Seidel dan Jacobi].
Regresi linier merupakan teknik yang cukup handal untuk mendekati trend data-data
percobaan. Namun demikian, dalam praktiknya tidak semua data menunjukkan
kecenderungan linier. Untuk persamaan tak-linier sederhana, proses linierisasi dapat
dilakukan sedemikian sehingga koefisien-koefisiennya dapat dicari dengan teknik regresi linier.
Berikut ini disajikan sejumlah contoh bentuk atau rumpun persamaan tak-linier
sederhana yang dapat dilakukan proses linierisasi:
X
1. Bentuk atau rumpun persamaan eksponensial: Y e
2. Bentuk atau rumpun persamaan pangkat (power): Y X
Linierisasi dilakukan dengan mengubah persamaan dalam bentuk ln atau log sebagai
berikut: lnY ln ln(X)
atau: log X log log(X)
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 V-3
MODUL 5 – Curve-Fitting dan Interpolasi
X
3. Bentuk atau rumpun persamaan: Y
X
Linierisasi dilakukan dengan mengambil reciprocal (kebalikan) dari persamaan yang
1 1 1
ditinjau, sehingga diperoleh bentuk:
Y X
X 1
atau: X
Y
Persamaan ini analog dengan persamaan linier: y = a0 + a1 x, sehingga nilai-nilai
parameter dan juga dapat ditentukan.
Prosedur kuadrat terkecil (least squares) juga dapat dikembangkan untuk regresi
polinomial. Secara umum, persamaan polinomial didefinisikan sebagai berikut:
y = a0 + a1 x + a2 x2 + … + am xm + e
n 2
SSE
2 y i a0 a1xi a2x 2i ... amxmi
a0
SSE
2 xi y i a0 a1x i a2x2i ... amx mi
a1
SSE
2 x 2i y i a0 a1x i a2x 2i ... amx mi
a2
SSE
dan seterusnya hingga m: 2 xmi y i a0 a1x i a2x2i ... amx mi
am
Dengan menetapkan semua diferensial di atas bernilai sama dengan nol, maka diperoleh
sistem persamaan sebagai berikut:
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 V-4
MODUL 5 – Curve-Fitting dan Interpolasi
x a x a x a ... x a x y
2
i 0
3
i 1
4
i 2
m 2
i m
2
i i
x a x a x a
m
i 0
1m
i 1
2 m
i 2 ... x a x
mm
i m
m
i yi
Sistem persamaan tersebut di atas dapat diselesaikan secara simultan untuk mendapatkan
nilai koefisien-koefisien a0, a1, a2, …, am.
Interpolasi linier merupakan metode interpolasi yang paling sederhana. Metode ini
digunakan untuk mencari atau menentukan nilai suatu data [(x, f(x))] yang berada di antara
dua buah data [yaitu: (x1, f(x1)) dan (x2, f(x2))] yang diketahui berdasarkan garis lurus. Dengan
menggunakan similaritas triangles, diperoleh:
Jika tersedia tiga buah data [yaitu: (x1, f(x1)), (x2, f(x2)), dan (x3, f(x3))], maka interpolasi
dapat dilakukan secara polinomial kuadratik. Interpolasi kuadrat cocok digunakan untuk data-
data yang menghasilkan garis parabola (berbentuk polinomial orde dua). Formula interpolasi
kuadrat dapat dituliskan sebagai berikut:
f2 (x) b1 b2 (x x1 ) b3 (x x1 )(x x2 )
di mana sebuah prosedur sederhana dapat digunakan untuk menentukan nilai-nilai b1, b2, dan
b3 dalam persamaan tersebut.
Jika dimisalkan:
b1 f (x1 )
maka substitusi b1 ke f2(x) menghasilkan:
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 V-5
MODUL 5 – Curve-Fitting dan Interpolasi
f(x2 ) f(x 1)
b2
x 2 x1
Selanjutnya, nilai-nilai b1, b 2, dan b3 ini dapat disubstitusikan kembali ke dalam persamaan f2(x)
Keterangan:
1. Dari data literatur, diketahui hubungan antara suhu dan sifat fisik air sebagai berikut:
Dari semua data tersebut, tentukanlah persamaan empirik yang menyatakan hubungan
2. Nitrous anhydride (N2O5) dapat terurai secara homogen menjadi dinitrogen tetraoksida
(N2O 4) dan oksigen melalui reaksi: N2O5 (g) N2O4 (g) + ½ O2 (g). Berikut adalah data
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 V-6
MODUL 5 – Curve-Fitting dan Interpolasi
konsentrasi N2O5 (C A) vs waktu (t) untuk reaksi ini pada suhu 313,1 K dalam suatu
percobaan secara batch [dengan: CA0 = 0,1 gmol/L]:
Reaksi dipostulasikan mengikuti model kinetika berorde satu terhadap CA. Atau, jika
CA
digabungkan dengan persamaan neraca massa, akan diperoleh: ln k t
CA 0
3. Dari suatu percobaan diperoleh hubungan antara tekanan uap (Pv) dan suhu (T) untuk
metanol sebagai berikut:
T (K) 320 340 360 380 400 420 440 460 480 500
Pv (kPa) 48,33 110,84 229,26 435,53 771,46 1288,9 2048,3 3117,6 4575,1 6530,5
E n
Jika laju reaksi dianggap mempunyai bentuk: r k0 exp C A
RT
dan R = 1,987 kal/gmol.K, perkirakan nilai-nilai parameter k0, E, dan n berdasarkan data
yang tersedia. (k0 ≡ faktor preeksponensial reaksi, E ≡ energi aktivasi reaksi, dan n ≡ orde
reaksi). Sajikan tabel perbandingan antara rdata dan r yang diperoleh dari persamaan
(model). Berapakah nilai SSE dan R2 pada kasus soal ini?
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 V-7
MODUL 5 – Curve-Fitting dan Interpolasi
5. Sebuah reaksi heterogen mempunyai persamaan laju reaksi yang mengikuti model kinetika
k 1 PA
Langmuir-Hinshelwood sebagai berikut: r
(1 K A PA KR PR )2
Gunakanlah semua data percobaan berikut ini, yang diukur pada suhu 400 K, untuk
memperkirakan besarnya nilai parameter k1, KA, dan KR.
Berapakah nilai-nilai k1, KA, dan KR, serta SSE dan R2 dari kasus ini?
Sajikanlah tabel perbandingan antara data dengan model (hasil perhitungan).
6. Diketahui: f(x) = ln(x). Tentukanlah nilai ln(2) menggunakan interpolasi linier dan
interpolasi kuadrat, jika diketahui: ln(1) = 0; ln(4) = 1,386294; dan ln(6) = 1,791759.
Selanjutnya, bandingkanlah hasil-hasil yang diperoleh!
7. Diketahui data densitas () nitrogen pada berbagai temperatur (T) sebagai berikut:
a. Buatlah grafik hubungan antara versus T berdasarkan semua data yang diketahui.
b. Tentukan densitas nitrogen pada suhu 330 K dengan interpolasi linier dan interpolasi
kuadrat, serta bandingkanlah hasil-hasilnya!
c. Lakukan juga interpolasi dengan menggunakan built-in function pada Scilab.
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 V-8
MODUL 6
INTEGRASI NUMERIK
MODUL 6
INTEGRASI NUMERIK
6.1. Tujuan
Menyelesaikan integrasi (dalam bentuk persamaan dengan variabel tunggal)
menggunakan trapezoidal rule dan Simpson’s 1/3 rule.
Membandingkan hasil-hasil integrasi yang diperoleh (dengan metode yang berbeda).
Menyelesaikan integrasi terhadap sekumpulan data (dalam bentuk tabel data).
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 VI-1
MODUL 6 – Integrasi Numerik
b a
Lebar segmen: h x
n
Jika formula trapezoidal rule tersebut di atas diterapkan untuk sejumlah n segmen (di mana
masing-masing segmen dianggap berupa trapesium), maka formula tersebut dinamakan
composite trapezoidal rule (atau: multiple-application trapezoidal rule) yang berbentuk:
b xn
I f(x) dx f(x) dx
a x0
x1 x2 xn
Dalam praktiknya, cara ini umum dilakukan untuk membuat hasil integrasi semakin baik. Jika
jumlah n semakin besar (atau lebar segmen h semakin kecil), maka hasil integrasi akan
semakin baik.
Keterangan:
Konsep dasar metode composite trapezoidal rule ini dapat diterapkan secara umum untuk
menyelesaikan integral dengan lebar segmen yang tidak sama, misalnya: terhadap sekumpulan
data (yang disajikan dalam bentuk tabel data).
formula yang menggunakan pendekatan polinomial berorde dua (untuk menyatakan fungsi
f(x)-nya) sebagai berikut:
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 VI-2
MODUL 6 – Integrasi Numerik
x2 x2
(x x 1 ) (x x 2 ) (x x 0 ) (x x 2 )
I f(x) dx f(x 0 ) f(x1 )
x0
(x x 1 ) (x 0 x 2 )
x0 0
(x 1 x 0 ) (x 1 x 2 )
(x x 0 ) (x x1 )
f(x2 ) dx
(x2 x 0 ) (x2 x1 )
Setelah melalui proses integrasi dan manipulasi aljabar, maka diperoleh:
h
I f(x 0 ) 4 f(x1 ) f(x 2 ) (formula Simpson’s 1/3 rule)
3
Dengan cara atau penjabaran yang sama, jika lebar integrasi dibagi menjadi sejumlah
n segmen (atau inkremen atau bagian), dari titik x = a (= x0) hingga x = b (= xn), maka diperoleh
formula composite Simpson’s 1/3 rule sebagai berikut:
xn x2 x4 xn
h h
I (f(x 0 ) 4 f (x1 ) f(x 2 )) (f(x 2 ) 4 f(x 3 ) f(x 4 ))
3 3
h
... (f(x n2 ) 4 f(x n1 ) f (xn ))
3
n1 n2
h
sehingga: I f
0
3
(x ) 4 f (x i ) 2 f (x j ) f (xn )
i1 , 3 , 5 j2 , 4 , 6
di mana: n jumlah segmen [= 2, 4, 6, 8, …] berupa bilangan genap
h lebar segmen
f(x0) nilai fungsi f(x) pada batas bawah integrasi (x = x0 = a)
f(xn) nilai fungsi f(x) pada batas atas integrasi (x = xn = b)
f(xi) nilai fungsi f(x) pada variabel xi yang berada di antara x = x0 dan x = xn, dengan:
i = 1, 3, 5, …. (n-1)
f(xj) nilai fungsi f(x) pada variabel xj yang berada di antara x = x0 dan x = xn, dengan:
j = 2, 4, 6, …. (n-2)
Metode Simpson’s 1/3 rule mengevaluasi setiap tiga titik data [x, f(x)] (dengan kata lain,
metode ini mengevaluasi titik data pada setiap 2 segmen). Dengan demikian, jumlah segmen n
yang digunakan haruslah berupa bilangan genap. Jika n semakin besar (atau: h semakin kecil),
maka hasil integrasi akan semakin baik.
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 VI-3
MODUL 6 – Integrasi Numerik
2,5 z
z H
2. Gaya sebuah tiang perahu layar didefinisikan sebagai: f (z) 200 e
7z
di mana: z = elevasi di atas deck, dan H = ketinggian tiang.
H
Total gaya pada tiang dapat ditentukan dengan: F f(z) dz
0
z f(z) dz
0
serta jalur atau garis aksi tiang didefinisikan sebagai: d H
f (z) dz
0
(a) Gunakan composite trapezoidal rule untuk menghitung nilai F dan d untuk kasus:
H = 30, dengan mengambil: n = 6.
(b) Ulangi dengan menggunakan Simpson’s 1/3 rule dan nilai n yang berbeda-beda.
3. Debit fluida (Q) yang mengalir melalui sebuah pipa dapat dinyatakan dalam persamaan:
1
6
r
Q v dA di mana: dA 2 r dr dan: v k 1
r0
serta: k = 2,5; r0 = 7 cm; π = 3,14
Tentukan nilai Q (yang dihitung dari r = 0 (sumbu pipa) hingga r = r0 (dinding dalam pipa)),
masing-masing dengan metode: trapezoidal rule dan Simpson’s 1/3 rule.
Ambillah beberapa n yang berbeda. Bandingkanlah hasil-hasil yang diperoleh (dari kedua
metode tersebut). Sajikan hasil perhitungan dalam bentuk tabel.
4. Dalam sebuah batch reactor, waktu reaksi (t, dalam menit) dapat ditentukan dengan:
X A1
dX A 46500
t k 1 X di mana: k 2,14 x 10 7 exp [=] menit-1
X A0 A 8,314 T
H C A 0
T T0 XA [=] K
Cp
Data: T0 = 288 [K]; H = – 209 [kJ/mol];
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 VI-4
MODUL 6 – Integrasi Numerik
5. Pada suhu tetap, sebuah proses termodinamika mengukur perubahan tekanan terhadap
perubahan volume sistem, dan diperoleh data sebagai berikut:
Tekanan, P (kPa) 420 368 333 326 316 312 242 207
Volume, V (m3) 0,5 2 3 4 6 8 10 11
Hitunglah kerja (W) yang terlibat selama proses tersebut, dengan integrasi secara numerik
(dengan metode composite trapezoidal rule, misalnya).
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 VI-5
MODUL 7
PERSAMAAN DIFERENSIAL BIASA DENGAN
PERSOALAN NILAI AWAL
MODUL 7
PERSAMAAN DIFERENSIAL BIASA DENGAN PERSOALAN NILAI AWAL
7.1. Tujuan
Menyelesaikan persamaan diferensial biasa (dengan persoalan nilai awal)
menggunakan metode Euler.
Menyelesaikan persamaan diferensial biasa (dengan persoalan nilai awal)
menggunakan metode Runge-Kutta orde 4.
Membandingkan hasil-hasil integrasi yang diperoleh (dengan metode yang berbeda).
Menerapkannya untuk kasus-kasus: persamaan tunggal, sistem persamaan simultan,
dan persamaan diferensial biasa berorde tinggi.
Dalam hal ini, besarnya step size (x = h) dapat ditentukan dengan:
x akhir x awal x x x x
x akhir awal n 0
jumlah langkah n n
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 VII-1
MODUL 7 – Persamaan Diferensial Biasa dengan Persoalan Nilai Awal
Untuk sejumlah kasus tertentu, kelemahan metode ini adalah perhitungan yang tidak
stabil jika menggunakan x besar. Dengan kata lain, semakin kecil x mengakibatkan jumlah
langkah integrasi yang semakin banyak serta hasil perhitungan yang semakin stabil dan
semakin mendekati hasil yang sebenarnya (secara analitik).
Untuk sejumlah n buah PDB-IVP orde satu yang harus diselesaikan secara simultan, maka cara
yang sama (atau serupa) dapat ditempuh.
Misalkan, untuk sistem PDB-IVP orde satu dengan 2 (dua) buah persamaan berikut ini:
dy
f1 (x , y ,z)
dx
dz
dan f2 (x , y ,z)
dx
dengan nilai awal: x = x0; y = y0; z = z0
Dari nilai awal xi, yi, dan zi, maka nilai x, y, dan z selanjutnya dapat ditentukan dengan cara:
xi+1 = xi + x
yi+1 = yi + f1(xi,yi,zi).x
zi+1 = zi + f2(xi,yi,zi).x
di mana: x = h merupakan step size (lebar langkah).
Algoritma penyelesaian sistem PDB-IVP orde satu yang terdiri dari dua buah persamaan
dengan metode Euler eksplisit ditunjukkan dalam diagram alir pada Gambar 7.1.
Analog untuk sejumlah n buah PDB-IVP orde satu dengan variabel bebas x dan
variabel tak-bebas y1, y2, y3, …., yn berikut ini:
dy 1
f1 (x , y1 , y 2 , y3 ,...., yn )
dx
dy 2
f2 (x , y1 ,y 2 , y 3 ,...., yn )
dx
dy 3
f3 (x , y1 , y2 , y 3 ,...., y n )
dx
…. dan seterusnya
dy n
hingga fn (x , y1 , y2 , y3 ,...., yn )
dx
dengan nilai awal: x = xi; y1 = y1,i; y2 = y2,i; y3 = y3,i; ….. yn = yn,i
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 VII-2
MODUL 7 – Persamaan Diferensial Biasa dengan Persoalan Nilai Awal
maka penyelesaian sistem PDB-IVP dengan metode Euler eksplisit dapat dituliskan sebagai:
xi+1 = xi + x
y1,i+1 = y1,i + f1(xi, y1,i, y2,i, y3,i, …., yn,i).x
y2,i+1 = y2,i + f2(xi, y1,i, y2,i, y3,i, …., yn,i).x
y3,i+1 = y3,i + f3(xi, y1,i, y2,i, y3,i, …., yn,i).x
….
yn,i+1 = yn,i + fn(xi, y1,i, y2,i, y3,i, …., yn,i ).x
Metode Runge-Kutta (RK) yang paling popular atau umum digunakan dalam
penyelesaian PDB-IVP adalah metode Runge-Kutta berorde empat (RK-4). Metode Euler
sebenarnya merupakan metode RK berorde satu. One step methods lainnya meliputi metode
modified Euler (Heun), metode titik tengah (mid-point), dan sebagainya. Metode RK-4 ini
memberikan hasil penyelesaian yang lebih baik dibandingkan Euler eksplisit (yang hanya
menggunakan slope pada nilai awalnya).
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 VII-3
MODUL 7 – Persamaan Diferensial Biasa dengan Persoalan Nilai Awal
k 1 ,i f(x i , y i )
1 1
k 2,i f x i x , y i k 1,i x
2 2
1 1
k 3,i f x i x , yi k2,i x
2 2
k 4 ,i f x i x , y i k 3,i x
Algoritma penyelesaian PDB-IVP orde satu (persamaan tunggal) dengan metode RK-4
disajikan pada Gambar 7.2.
Misalkan, untuk sistem PDB-IVP orde satu dengan 2 (dua) buah persamaan [dengan variabel
bebas x serta variabel tak-bebas y dan z] berikut ini:
dy
f1 (x , y ,z)
dx
dz
dan f2 (x , y ,z)
dx
dengan nilai awal: x = x0; y = y0; z = z0
Dari nilai awal xi, yi, dan zi, maka nilai x, y, dan z selanjutnya dapat ditentukan dengan cara:
xi+1 = xi + x
1
yi1 yi
6
k1,i 2 k2 ,i 2 k 3,i k 4 ,i x
1
zi1 z i l1,i 2 l2 ,i 2 l3,i l4 ,i x
6
di mana: x = h merupakan step size (lebar langkah).
k 1 ,i f1 (x i , y i , z i )
l1 ,i f2 (x i , y i , zi )
1 1 1
k 2,i f1 x i x , yi k1,i x , zi l1,i x
2 2 2
1 1 1
l2,i f2 x i x , yi k1,i x , zi l1,i x
2 2 2
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 VII-4
MODUL 7 – Persamaan Diferensial Biasa dengan Persoalan Nilai Awal
1 1 1
k 3,i f1 x i x , y i k 2,i x , zi l2,i x
2 2 2
1 1 1
l3,i f2 x i x , yi k 2,i x , z i l2,i x
2 2 2
k 4 ,i f1 x i x , y i k 3,i x , zi l3,i x
l4,i f2 x i x , y i k 3 ,i x , zi l3,i x
Algoritma penyelesaian sistem PDB-IVP orde satu yang terdiri dari dua buah persamaan
dengan metode RK-4 disajikan pada Gambar 7.3.
Untuk sejumlah n buah PDB-IVP orde satu yang harus diselesaikan secara simultan
dengan metode RK-4, maka cara yang sama seperti langkah-langkah tersebut di atas dapat
ditempuh.
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 VII-5
MODUL 7 – Persamaan Diferensial Biasa dengan Persoalan Nilai Awal
MULAI
NILAI AWAL:
yi = y0 & zi = z0 ;
xi = x0 = x awal
xn = x akhir
n = jumlah segmen (langkah)
∆x = h = (xn – x0)/n
xi+1 = xi + x
xi = xakhir yi+1 = yi + f1(xi,yi,zi).x
yi = yakhir
zi+1 = zi + f2(xi,yi,zi).x
zi = zakhir
xakhir = xi+1
yakhir = yi+1
zakhir = z i+1
tidak
xakhir > xn
ya
TULIS
yakhir
zakhir
SELESAI
Gambar 7.1. Diagram alir penyelesaian sistem PDB-IVP orde satu yang terdiri dari dua buah
persamaan dengan metode Euler
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 VII-6
MODUL 7 – Persamaan Diferensial Biasa dengan Persoalan Nilai Awal
Gambar 7.2. Penyelesaian PDB-IVP orde satu (persamaan tunggal) dengan metode RK-4
Gambar 7.3. Penyelesaian sistem PDB-IVP orde satu yang terdiri dari dua buah persamaan
dengan metode RK-4
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 VII-7
MODUL 7 – Persamaan Diferensial Biasa dengan Persoalan Nilai Awal
Bandingkanlah penggunaan metode Euler dan metode RK-4. Bandingkan juga dengan hasil
penyelesaian secara analitik (eksak). Sajikanlah hasil-hasil perhitungan (yang Anda peroleh)
dalam bentuk tabel dan grafik.
2. Reaksi fasa cair: A P dilangsungkan dalam reaktor tangki berpengaduk dengan mode
operasi semi batch. Profil mol A (nA) sebagai fungsi waktu (t) dinyatakan dalam persamaan:
dnA k nA 2
q0 C A 0 dengan: nA = 0 pada t = 0.
dt q0 t V0
Diketahui: CA0 = 1 molar; k = 0,1 molar -1.detik-1; q0 = 10 liter.detik -1; V0 = 50 liter
Selesaikan persamaan diferensial ini hingga t = 100 detik, untuk mengetahui unjuk kerja
reaktor. Bandingkan penggunaan metode Euler dan metode RK-4. Sajikanlah hasil
perhitungan dalam bentuk tabel dan grafik.
dz/dx = (1/2) y z2
Tentukanlah nilai y dan z pada x = 1, jika diambil step size sebesar x = 0,1.
Kondisi awal: y(0) = 2 dan z(0) = 4. Bandingkan hasil perhitungan antara metode Euler dan
metode RK-4. Gunakanlah beberapa step size yang berbeda.
4. Reaksi konsekutif (= seri) orde satu: A B C dilaksanakan di dalam reaktor batch secara
isotermal dalam waktu 60 menit. Dari neraca massa diperoleh:
dC A
k 1C A
dt
dC B
k1C A k 2C B
dt
E1 E 2
RT RT
di mana: k1 A1e dan k2 A 2e
Jika reaktor beroperasi pada suhu 370 K, tentukan konsentrasi A (C A) dan B (C B) pada waktu
t = 60 menit. Gambarkanlah grafik hubungan antara CA dan CB terhadap waktu (t)!
Diketahui: A1 = 0,145 menit–1; A2 = 0,05 menit –1; E1 = 1167,8 kal/mol; E2 = 1580,8 kal/mol
R = 1,987 kal/(mol.K); CA0 = 2 gmol/l; CB0 = 0
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 VII-8
MODUL 8
APLIKASI FINITE-DIFFERENCE UNTUK
MENYELESAIKAN PERSAMAAN DIFERENSIAL
DENGAN PERSOALAN NILAI BATAS
MODUL 8
APLIKASI FINITE-DIFFERENCE UNTUK MENYELESAIKAN PERSAMAAN
DIFERENSIAL DENGAN PERSOALAN NILAI BATAS
8.1. Tujuan
Menerapkan penggunaan finite-(divided)-difference untuk menyelesaikan persamaan
diferensial biasa dengan persoalan nilai batas (boundary value problem, BVP).
Menerapkan penggunaan finite-(divided)-difference untuk menyelesaikan persamaan
diferensial parsial (tipe parabolik) dengan persoalan nilai batas (boundary value
problem, BVP).
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 VIII-1
MODUL 8 – Aplikasi Finite-Difference untuk Menyelesaikan Persamaan
Diferensial dengan Persoalan Nilai Batas
Di dalam sebuah tube (dengan panjang 4 cm) senyawa A terdifusi (yang disertai dengan
reaksi). Profil konsentrasi A (A) di sepanjang tube (x) dapat dinyatakan dalam persamaan
d2A
diferensial: D k A 0
dx2
Salah satu ujung tube terhubung dengan tangki yang berisi A dengan konsentrasi sangat
besar (yang dianggap tetap, yaitu 0,1 M). Salah satu ujung lainnya terhubung dengan
wadah berisi adsorben yang mengabsorpsi A dengan sangat cepat (sehingga
mengakibatkan konsentrasinya menjadi 0 M). Jika: D = 1,5 x 10-6 cm2/detik dan
k = 5 x 10-6 detik-1, berapakah konsentrasi A di sepanjang tube?
Turunan pada persamaan (1.1) dapat dinyatakan melalui pendekatan terpusat (centered finite-
d2 A Ai1 2 A i A i1
difference) sebagai berikut: … (1.2)
dx2 x 2
L0
dengan: lebar inkremen x sebesar: x dan n [=] jumlah inkremen x.
n
Substitusikan (1.2) ke (1.1) sehingga diperoleh profil konsentrasi A sepanjang tube (Ai) sebagai
Ai1 2 Ai Ai1
berikut: D k Ai 0
x 2
D 2D D … (1.3)
A i1 2 k Ai
2 A i1 0
x 2 x x
dengan: i = 1, 2, …, n-1
Jika i = 1, maka: D 2D D
2 A2
2 k
A 1 x 2 A 0 0
x x
dengan: A0 = 0,1 (sesuai dengan BC-1)
Jika i = 2, maka: D 2D D
2 A3
2 k
A2 A 0
x x x 2 1
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 VIII-2
MODUL 8 – Aplikasi Finite-Difference untuk Menyelesaikan Persamaan
Diferensial dengan Persoalan Nilai Batas
Misal, tube sepanjang L dibagi menjadi 10 bagian/ inkremen/ segmen (n = 10), maka:
L 4 cm
x 0,4 cm
10 10
Dengan demikian, nilai-nilai A1, A2, A3, … A9 dapat ditentukan secara simultan (serempak)
berdasarkan sistem persamaan aljabar linier sebagai berikut:
2D D
2 k 2 0 0 0 0 0 0 0
x x
D
D 2D D A0
2
2
k 0 0 0 0 0 0 A 1 x 2
x x x 2 A 2
0
D 2D D
0 2
2
k 0 0 0 0 0 A 3 0
x x x 2 A 4
0
...
... A 5 0
A 0
... 6
A 7 0
... A
D 2D D 8 0
0 0 0 0 0 0 k D
x 2 x 2
x 2 A 9 x2 A 10
D 2D
0 0 0 0 0 0 0 k
x 2 x
2
… (1.4)
Berdasarkan nilai D, k, dan x tersebut di atas, dalam hal ini:
D 1,5 x 106
2
2
9,375 x 106
x 0,4
2D 2 x 1,5 x 10 6
k 5 x 10 6 2,375 x 10 5
x 2 0,4 2
8.2.2. Contoh Kasus-2: Penerapan Metode Eksplisit dan Implisit untuk Menyelesaikan
Persamaan Diferensial Parsial Dua-Dimensi (Dua-Variabel) dengan Tipe Parabolik
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 VIII-3
MODUL 8 – Aplikasi Finite-Difference untuk Menyelesaikan Persamaan
Diferensial dengan Persoalan Nilai Batas
Berdasarkan persamaan (2.1), jarak x dan waktu t merupakan variabel bebas (independent
variable) dalam kasus ini, sedangkan Y merupakan variabel tak bebas (dependent variable).
Dimisalkan: Indeks i untuk menyatakan variabel x dan indeks j untuk variabel t.
Y Yi 1, j Yi1, j
… (2.3, centered difference)
x i, j 2 x
2Y Yi 1, j 2 Yi , j Yi 1, j
… (2.4, centered difference)
x 2 i, j
(x )2
Substitusikan (2.2), (2.3), dan (2.4) ke dalam persamaan diferensial semula (persamaan (2.1)):
t t 2 t t t
Yi , j 1 Yi 1, j 1 Yi , j Yi 1, j … (2.5)
(x )
2
2 x (x )
2
(x )
2
2 x
Persamaan (2.5) merupakan formula eksplisit hasil penjabaran untuk kasus ini.
Y Yi 1, j 1 Yi 1, j 1
… (2.7, centered difference)
x i , j 1 2 x
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 VIII-4
MODUL 8 – Aplikasi Finite-Difference untuk Menyelesaikan Persamaan
Diferensial dengan Persoalan Nilai Batas
2Y Yi1, j 1 2 Yi , j 1 Yi 1, j 1
… (2.8, centered difference)
x 2 i , j 1
( x) 2
Substitusikan (2.6), (2.7), dan (2.8) ke dalam persamaan diferensial semula (persamaan (2.1)):
sehingga diperoleh:
t t 2 t t t
Yi 1, j 1 1 Y
2 i , j 1
Yi 1, j 1 Yi , j … (2.9)
(x )
2
2 x (x ) (x )
2
2 x
Persamaan (2.9) merupakan formula implisit hasil penjabaran untuk kasus ini. Dalam hal ini,
Yi+1,j+1, Yi,j+1, dan Yi-1,j+1 hanya dapat ditentukan melalui perhitungan secara simultan
(serempak/ bersamaan).
Keterangan:
Selain menggunakan metode eksplisit (yang penyelesaiannya bersifat less stable dan less
accurate) dan metode implisit (yang more stable dan less accurate), persamaan diferensial
parsial tipe parabolik ini juga dapat diselesaikan dengan metode Crank-Nicolson (yang bersifat
more stable dan more accurate, dengan menggunakan pendekatan pada titik acuan: i,j+1/2).
2. Selesaikan Contoh Kasus-2 (pada subbab 8.2.2. tersebut di atas), misalnya: dengan
mengambil masing-masing 8 inkremen (untuk variabel bebas x) dan 10 inkremen (untuk
variabel bebas t).
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 VIII-5
MODUL 8 – Aplikasi Finite-Difference untuk Menyelesaikan Persamaan
Diferensial dengan Persoalan Nilai Batas
3. Profil konsentrasi suatu zat (M) sebagai fungsi jarak (z) dan waktu (t) dalam suatu vessel
dapat dinyatakan dalam persamaan diferensial parsial:
M 2M M
125 2 2 0,15 M
t z z
dengan: nilai awal (initial condition) : M (z, 0) = 0,5 pada t = 0
nilai batas (boundary condition) : M (0, t) = 10 pada z = 0
M (L, t) = 85 pada z = L = 20
Bagilah jarak z (L) menjadi sekurang-kurangnya 4 segmen dan ambillah nilai: t = 0,05.
Selesaikanlah persamaan tersebut di atas dengan metode eksplisit dan implisit untuk
menentukan nilai-nilai M pada berbagai jarak z dan pada: t = 0,1; t = 0,5; t = 2; t = 10; dan
hingga tercapai keadaan steady. Sajikan hasil perhitungan dalam bentuk tabel.
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 VIII-6
MODUL 9
OPTIMASI SATU VARIABEL
MODUL 9
OPTIMASI SATU VARIABEL
9.1. Tujuan
Menentukan nilai variabel optimum agar menghasilkan fungsi maksimum atau
minimum dengan metode golden section dan metode Newton pada suatu persamaan
dengan variabel tunggal.
Membandingkan hasil-hasil optimasi yang diperoleh (dengan metode yang berbeda).
Optimasi merupakan proses untuk mencari atau menentukan nilai variabel optimum
agar diperoleh fungsi maksimum atau minimum. Fungsi yang akan dibuat maksimum atau
minimum disebut fungsi obyektif (objective function). Secara umum, jika Y didefinisikan
sebagai berikut:
Y = f(X)
maka pada X tertentu (Xopt = Xoptimum) akan diperoleh Y maksimum atau Y minimum.
Metode golden section dapat digunakan untuk melakukan optimasi variabel tunggal, di
mana metode ini tergolong sebagai metode pengurung (dan non-gradient method) yang
mensyaratkan bahwa fungsi obyektifnya harus bersifat unimodal dalam rentang variabel yang
ditinjau. Pertama, kita harus menentukan rentang variabel: XL (XLow) dan XH (Xhigh), di mana Xopt
berada di antara XL dan XH. Selanjutnya, tentukanlah dua titik baru (yaitu X1 dan X2) untuk
mengeliminasi sebagian interval.
X2 = XL + G( XH XL ) Y2 = f(X2)
5 1
dengan: G = = 0,618034 angka emas (golden number).
2
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 IX-1
MODUL 9 – Optimasi Satu Variabel
Algoritma proses optimasi variabel tunggal dengan metode golden section untuk kasus
minimasi ditunjukkan dalam diagram alir pada Gambar 9.1. Metode golden section untuk
kasus maksimasi dapat dilakukan dengan prosedur yang serupa.
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 IX-2
MODUL 9 – Optimasi Satu Variabel
MULAI
Tentukan
XL , XH , dan tol
G = (-1 + 5)/2
X1 = XL + (1 G)( XH XL) Y1 = f(X1)
X2 = XL + G(XH XL) Y2 = f(X2)
XL YL= f(XL)
XH YH = f(XH)
ya tidak
abs( X H XL) < tol ?
TULIS
Xopt dan Yopt XL = X1 ; YL = Y1 XH = X2 ; YH = Y2
X1 = X2 ; Y1 = Y2 X2 = X1 ; Y2 = Y1
X2 = XL + G(XH X L) X1 = XL + (1 G)(XH XL)
Y2 = f(X2) Y1 = f(X1)
SELESAI
Keterangan:
Pendefinisian error yang berupa abs(XH - XL) dapat juga disajikan dalam bentuk
lain, misalnya approximate error (ea).
Gambar 9.1. Diagram alir prosedur optimasi variabel tunggal dengan metode golden section
(obyektif: minimasi f(X))
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 IX-3
MODUL 9 – Optimasi Satu Variabel
Di sisi lain, ditinjau dari nilai fungsi turunan keduanya, fungsi Y = f(X) akan bernilai:
maksimum jika: f’’(X) < 0 (atau bernilai negatif), dan
minimum jika: f’’(X) > 0 (atau bernilai positif).
f' (X i )
Secara iteratif, nilai X optimum dapat ditentukan melalui: X i1 X i
f'' (Xi )
Proses iterasi akan dihentikan jika error yang diperoleh sudah tidak melebihi batasan nilai
toleransi yang telah ditentukan. Dalam hal ini, nilai fungsi turunan pertama dan kedua (f’(X)
dan f’’(X)) dapat ditentukan secara analitik (jika memungkinkan) ataupun numerik (melalui
pendekatan finite-divided difference).
X i 1 X i
Hitung nilai ‘beda’, misalnya: beda x 100 %
X i 1
Dengan demikian, nilai X optimum dan f(X) maksimum atau minimum dapat diperoleh. Untuk
melakukan pengecekan (terhadap kriteria kasus optimasi yang dijumpai), maka nilai-nilai f’(X)
dan f’’(X) dapat ikut serta disajikan dalam hasil-hasil perhitungan secara iteratif.
Sebagai review, berikut ini disajikan contoh-contoh sederhana dari perumusan fungsi
turunan pertama dan kedua untuk persamaan dengan variabel tunggal melalui pendekatan
finite-divided difference (atau diferensiasi secara numerik).
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 IX-4
MODUL 9 – Optimasi Satu Variabel
x2
2. Tentukan nilai x optimum yang memaksimumkan fungsi: f(x) 2 sin(x)
10
di dalam interval: x = 0 dan x = 4,5. Selesaikan dengan metode golden section dan
metode Newton, serta bandingkan hasil-hasilnya. Sajikanlah hasil-hasil iterasinya
dalam bentuk tabel. Perlihatkanlah bahwa fungsi ini bersifat unimodal.
3. A will be converted into B in a stirred tank reactor. The product B and un-reacted A are
purified in a separation unit. Un-reacted A is recycled to the reactor. A process engineer
has found that the initial cost of the system is a function of the conversion, xA. Find the
conversion that will result in the lowest cost system. C is a proportionality constant.
0 ,6 0 ,6
1 1
Cost C 5
2
1 x A xA
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 IX-5
MODUL 9 – Optimasi Satu Variabel
E 1 E 2
RT RT
di mana: k1 A1e dan k 2 A 2e
n
SSE (CA 0 e k t i C Ai )2 f (k ) minimum
i 1
(a) Lakukan proses optimasi dengan metode golden section dan metode Newton.
(b) Sajikanlah hasil-hasil iterasi dalam bentuk tabel.
(c) Selanjutnya, plotkan grafik CA versus t (antara data dengan hasil optimasi).
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 IX-6
MODUL 10
OPTIMASI MULTI VARIABEL
MODUL 10
OPTIMASI MULTI VARIABEL
10.1. Tujuan
Tahap Eksplorasi
Tahapan ini dimulai dengan menebak nilai variabel X1, X2, … ,Xn dan menghitung nilai
Yopt = Y sebagai acuan nilai optimum awal. Kemudian, variabel X1 ditambahkan atau
dikurangkan dengan suatu bilangan kecil (delta variabel), dan variabel X2, … ,Xn tetap.
Jika input yang baru: X1 = X1 + dX1 menghasilkan Y < Y opt maka eksplorasi dinyatakan
SUKSES, dan kesuksesan ini ditandai dengan suatu variabel “tanda”, tanda1 = +1;
Namun jika input yang baru: X1 = X1 + dX1 menghasilkan Y > Yopt maka eksplorasi
dinyatakan TIDAK SUKSES, dan mencoba input yang baru: X1 = X1 – dX1, jika
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 X-1
MODUL 10 – Optimasi Multi Variabel
menghasilkan Y < Yopt maka eksplorasi dinyatakan SUKSES, dan kesuksesan ini ditandai
dengan suatu variabel tanda1 = –1;
Karena Y < Y opt, maka nilai Y opt diperbarui menjadi: Yopt = Y dan X1opt = X1.
Ulangi langkah-langkah tersebut di atas untuk variabel input yang lain (X2, … ,Xn).
Prosedur optimasi multi variabel dengan metode Hooke-Jeeves untuk kasus minimasi disajikan
dalam diagram alir pada Gambar 10.1.
Jeeves. Namun demikian, fungsi obyektif yang digunakan sebagai acuan dibalik, yaitu: Y > Yopt.
Kriteria SUKSES ditunjukkan melalui nilai Y yang selalu bertambah (lebih besar) dibandingkan
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 X-2
MODUL 10 – Optimasi Multi Variabel
MULAI
Tentukan
X1 , X2 , … , Xn
dX1, dX2, …, dXn
tol1, tol2, …, toln dan rasio
Tahap Eksplorasi
(menambah/mengurang Xi
dengan dXi)
tidak
ya
TULIS
X1opt , X2opt , … , X nopt
Yopt
SELESAI
Gambar 10.1. Diagram alir prosedur optimasi multi variabel dengan metode Hooke-Jeeves
(obyektif: minimasi f(X))
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 X-3
MODUL 10 – Optimasi Multi Variabel
Sebagai ilustrasi, untuk sebuah fungsi multi-variabel (misalnya berupa 2 buah variabel): f(x,y)
yang ingin di-MAKSIMUM-kan atau ingin di-MINIMUM-kan (yaitu: Untuk menentukan nilai-
nilai variabel: xoptimum dan yoptimum), maka:
konsep dasar metode ini:
“Mengubah multi-dimensional function: f(x,y) menjadi one-dimensional function: F = g(h)”
Nilai: F = g(h) akan mencapai MAKSIMUM atau MINIMUM, jika: g’(h) = 0
Selanjutnya, akan diperoleh nilai h yang memenuhi: g’(h) = 0.
Algoritma:
1. Mulai
2. Ambil nilai tebakan awal: x, y, h
3. Ambil nilai-nilai delta (untuk menentukan turunan secara numerik): x, y, h
4. Ambil nilai-nilai awal untuk melakukan iterasi: iter = 0; beda = 1; tol
5. Melakukan iterasi (proses perhitungan secara berulang-ulang):
a. Menghitung nilai fungsi: f(x,y)
b. Menghitung nilai-nilai turunan parsial fungsi: f/x, f/y
c. Menghitung nilai h: (Mengubah fungsi f(x,y) menjadi: F = g(h), dan
kemudian membuat: g’(h) = 0)
xb = x + f/x . h
yb = y + f/y . h
Menghitung nilai: f(xb,yb) = F = g(h)
Membentuk fungsi baru, yaitu: g’(h) = dF (yang akan di-NOL-kan)
Menghitung nilai hbaru (misal, dengan metode: Newton-Raphson):
g' (h) dF
hbaru h h
g' ' (h) dF '
Mengembalikan atau memperbarui nilai h: h = hbaru
f
d. Menghitung nilai xbaru dan ybaru: x baru x h
x
f
ybaru y h
y
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 X-4
MODUL 10 – Optimasi Multi Variabel
x baru x
beda1 x 100%
x baru
y baru y
beda2 x 100%
y baru
beda1 beda2
beda
2
f. Memperbarui nilai-nilai x dan y: x = xbaru
y = ybaru
6. Jika nilai: beda > tol, maka: kembali ke langkah (5).
Jika: “tidak”, maka: proses iterasi selesai.
7. Diperoleh nilai: x, y (sebagai hasil akhirnya)
8. Selesai
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 X-5
MODUL 10 – Optimasi Multi Variabel
4. Hubungan antara tekanan uap murni suatu cairan (Po, cm Hg) dengan suhu mutlak (T, K)
B
didekati dengan persamaan Clausius-Clapeyron: Po exp A
T
Jika tersedia data sebagai berikut:
T 280 300 320 340 360 380 400
Po 2 5 12 25 49 89 148
berapakah nilai A dan B yang memberikan hasil persamaan empirik yang paling mendekati
trendline data? Selanjutnya, plotkan grafik Po versus T (antara data dengan hasil optimasi).
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 X-6
MODUL 10 – Optimasi Multi Variabel
// Mengecek Delta
chekdel=(['if delx(1)<=tol(1)&delx(2)<=tol(2) then';
'disp([xopt Fopt])';'disp(delx)'
'else'
'del=delx*rasio';
'delx=del';
'execstr(eksplorasi)'
'end']);
// Melakukan Eksplorasi
eksplorasi=(['for ep=1:n';
'tanda(ep)=0';
'x(ep)=xopt(ep)+delx(ep)'; 'Fd=fungsi(x(1),x(2))';
'if Fd<=Fopt then'
'xopt(ep)=x(ep); Fopt=Fd; tanda(ep)=1';
'else'
'x(ep)=xopt(ep)-delx(ep)';'Fd=fungsi(x(1),x(2))';
'if Fd<=Fopt then'
'xopt(ep)=x(ep);Fopt=Fd; tanda(ep)=-1';'end'
'end'
'end '
'disp([xopt Fopt])';
'if abs(tanda(1))>0|abs(tanda(2))>0 then';
'execstr(ulsuk)'
'else'
'execstr(chekdel)'
'end']);
execstr(eksplorasi);
// Hasilnya
printf('X1 = %3.2f X2 = %3.2f Fopt = %4.2f\n',x(1),x(2),Fopt)
===================================
OUTPUT:
X1 = 2.99 ; X2 = 4.97 ; Fopt = 7.50
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 X-7
DAFTAR PUSTAKA dan
TENTANG PENULIS
DAFTAR PUSTAKA
1. Chapra, Steven C. and Canale, Raymond P., 2015, “Numerical Methods for Engineers”,
7th ed., New York: McGraw-Hill Education.
2. Chapra, S. C. and Canale, R. P., 2009, “Numerical Methods for Engineers”, 6th ed., New
York: McGraw-Hill Book, Inc.
3. Chapra, S. C., 2005, “Applied Numerical Methods with Matlab for Engineers and
Scientists”, Singapore: McGraw-Hill, Inc.
4. Chapra, S. C. and Canale, R. P., 2003, “Numerical Methods for Engineers: With Software
and Programming Applications”, 4th ed., New York: McGraw-Hill Book, Inc.
5. Davis, M. E., 1984, “Numerical Methods and Modeling for Chemical Engineers”, New
York: John Wiley & Sons, Inc., USA.
7. Raman, R., 1985, “Chemical Process Computations”, London and New York: Elsevier
Applied Science Publishers.
8. Riggs, James B., 1988, “An Introduction to Numerical Methods for Chemical Engineers”,
Texas: Tech. University Press.
9. Tjukup Marnoto, 2010, “Analisa Numerik dan Pemrograman dengan Bahasa Scilab”,
Yogyakarta: Wimaya Press.
10. Wahyudi Budi Sediawan & Agus Prasetya, 1997, “Pemodelan Matematis dan
Penyelesaian Numeris dalam Teknik Kimia”, Yogyakarta: Penerbit Andi.
11. http://www.scilab.org
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 DP-1
TENTANG PENULIS
TENTANG PENULIS
Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 TP-1