buku komprostek

126

Click here to load reader

Upload: m-helmy-aditya

Post on 19-Jan-2016

90 views

Category:

Documents


30 download

DESCRIPTION

jkbkjb jbkbkbkbkbklmlmlmlm.

TRANSCRIPT

Page 1: Buku Komprostek

KOMPUTASI PROSES TEKNIK KIMIA MENGGUNAKAN MATLAB Teguh Kurniawan, ST.

Jurusan Teknik Kimia Fakultas Teknik Universitas Sultan Ageng Tirtayasa 2006

-3-2

-10

12

3

-2

0

2

-10

-5

0

5

XY

F(X

,Y)

Page 2: Buku Komprostek

i

Kata Pengantar

Segala rasa syukur saya panjatkan pada Allah SWT yang telah memberikan segala daya sehingga terwujudlah buku ajar dihadapan para pembaca. Momen bulan Ramadhan 1427 H telah memberikan kekuatan tersendiri bagi saya untuk memberikan karya yang sebaik-baiknya. Meskipun demikian, saya sadar tiada karya manusia yang sempurna. Oleh karena itu, diawal halaman pengantar saya ungkapkan harapan yang sangat besar kepada para pembaca seluruhnya untuk memberikan saran demi perbaikan buku ajar.

Perkembangan perangkat keras (hardware-microprocessor) yang amat cepat, membuat teknologi perangkat lunak (software) menjadi cepat pula berkembang. Berbagai macam perangkat lunak untuk mendukung penyelesaian persoalan keteknikan (engineering) bermunculan. Di mulai dengan Basic, Pascal, FORTRAN sebagai program pendahulu. Bahkan FORTRAN sempat menjadi primadona “senjata ampuh” bagi orang teknik. Belakangan muncul POLYMATH, MATHCAD dan MATLAB sebagai generasi baru perangkat lunak bidang teknik dan MIPA. Perangkat lunak yang terakhir disebut, saat ini sudah sangat banyak penggunanya baik dari kalangan akademisi maupun praktisi karena berbagai keunggulannya dalam menyelesaikan persoalan numerik dan simulasi proses.

Salah satu bidang keteknikan yang sarat dengan perhitungan numerik, pemodelan serta simulasi fenomena proses adalah bidang teknik kimia. Penggunaan paling banyak di jurusan teknik kimia adalah pada bagian teknik reaktor, pengendalian proses, kinetika katalisis, termodinamika, operasi perpindahan kalor, peristiwa perpindahan dan tentunya komputasi kroses teknik kimia. Seiring dengan makin luasnya penggunaan MATLAB di kalangan industri, maka sebagai langkah untuk mempersiapkan para mahasiswa agar siap terjun di dunia kerja sudah saatnya bagi setiap kampus yang berorientasi pada kebutuhan pasar untuk mengajarkan MATLAB.

Materi buku ajar disusun dengan pendekatan penyelesaian kasus-kasus persoalan numerik teknik kimia dengan menggunakan subrutin MATLAB versi 7.0 seperti roots, fzero, fsolve, quad, ode23, fminsearch dll. Namun demikian dalam buku ajar ini juga tetap dimasukkan berbagai materi asas numerik untuk mencegah terjadinya pengetahuan semu (black box) seperti pemrograman Gauss, Newton-Raphson, bisection dalam bahasa MATLAB.

Harapan penulis dengan hadirnya buku ajar ini dapat membantu memperkenalkan MATLAB sekaligus menjadi acuan praktis untuk memahami MATLAB sebagai alat untuk menyelesaikan persoalan-persoalan dalam dunia teknik, khususnya teknik kimia. Akhir kata saya ucapkan terima kasih kepada Universitas Sultan Ageng Tirtayasa (UNTIRTA) atas segala dukungannya.

Cilegon, 30 Oktober 2006

Teguh Kurniawan, ST Staf Pengajar Komputasi Proses Teknik Kimia

Jurusan Teknik Kimia-Fakultas Teknik Universitas Sultan Ageng Tirtayasa

Page 3: Buku Komprostek

ii

DAFTAR ISI

Halaman

Kata Pengantar..........................................................................................................i

Daftar Isi..................................................................................................................ii

Daftar Tabel............................................................................................................iii

Daftar Gambar........................................................................................................iv

Bab 1 Pengenalan MATLAB...................................................................................1

Bab 2 Sistem Persamaan Linier.............................................................................27

Bab 3 Persamaan Tak Linier..................................................................................40

Bab 4 Optimisasi....................................................................................................62

Bab 5 Regresi Linier dan Non Linier.....................................................................65

Bab 6 Integrasi.......................................................................................................78

Bab 7 Persamaan Diferensial Biasa.......................................................................83

Bab 8 Persamaan Diferensial Parsial...................................................................109

Daftar Pustaka.........................................................................................................v

Page 4: Buku Komprostek

Bab 1 Pengenalan MATLAB &Pengantar Pemrograman

Halaman 1 dari 101

Bab 1 Pengenalan Matlab & Pengantar Pemrograman

1.1 Perangkat Lunak MATLAB

MATLAB merupakan perangkat lunak produk dari The MathWorks,Inc

yang memadukan kemampuan perhitungan, pencitraan, dan permograman dalam

satu paket. MATLAB merupakan bahasa komputasi teknik yang lebih mudah dan

lebih canggih dalam penggunaannya dibandingkan dengan bahasa teknik

pendahulunya seperti FORTRAN, BASIC, PASCAL. Sebetulnya MATLAB

tidaklah berbeda dengan kalkulator scientific yang sehari-hari kita (orang teknik)

kenal. Bedanya MATLAB adalah kalkulator super canggih, karena MATLAB

memiliki keunggulan sbb:

1. Menghitung sampai dengan ketelitian 16 angka dibelakang koma,

sehingga perhitungan lebih akurat.

2. Menyediakan fasilitas untuk membuat program sesuai dengan kebutuhan

kita.

3. Mampu menampilkan data-data dalam grafik 2-D hingga 3-D dengan

pewarnaan yang akan memudahkan interpretasi data yang kita miliki.

4. Menyediakan perintah-perintah praktis untuk menyelesaikan berbagai

macam persoalan matematis seperti persamaan pangkat tinggi

(polinomial), persamaan linier, persamaan tak linier, optimasi fungsi,

persamaan diferensial biasa, persamaan diferensial parsial, fungsi integral,

interpolasi data, operasi aljabar, operasi matrik, korelasi data-data dan

masih banyak lagi.

5. Memiliki kemudahan dalam mengelola data-data yang sangat banyak

dalam bentuk vektor/matrik.

6. Memiliki fasilitas toolbox yang berisi subrutin untuk menyelesaikan

persoalan tertentu dan dapat dengan mudah dimodifikasi serta ditambah

untuk pengembangan lebih lanjut.

Page 5: Buku Komprostek

Bab 1 Pengenalan MATLAB &Pengantar Pemrograman

Halaman 2 dari 101

Secara garis besar lingkungan kerja MATLAB terdiri atas beberapa unsur,

yaitu:

1. Command window (layar kendali)

2. Workspace (rak data)

3. Command history (layar pengingat)

4. M-file (editor ) akan dibahas pada bagian khusus.

Gambar 1.1 Lingkungan kerja MATLAB 7.0

Untuk lebih jelas mengenai lingkungan kerja MATLAB perhatikan contoh

berikut ini (lihat gambar 1.2). Pada command window ketikkan a = 2 dan b = 4,

maka secara otomatis MATLAB akan menyimpan variabel a dengan harga 2 dan

variabel b dengan harga 4 pada workspace. Variabel a dan b dapat dipanggil

setiap saat dibutuhkan. Misalkan kita ingin menghitung perkalian a dan b,

kemudian menyimpannya dengan nama variabel c. Pada command window

ketikkan c = a*b, maka MATLAB akan memanggil harga a dan b kemudian

melakukan operasi perkalian dan menyimpan hasilnya dengan nama variabel c.

Segala sesuatu yang telah diketikkan pada command window disimpan dalam

command history dan dapat dipanggil kembali dengan menggunakan key arrow

atas dan bawah (↑↓).

Command window merupakan jendela utama MATLAB. Tempat untuk mengeksekusi perintah menampilkan masukan dan hasil

Workspace berfungsi sbg tempat menyimpan secara ototmatis segala variabel masukan dan hasil

Command history adalah tempat menyimpan secara otomatis segala perintah yang telah dituliskan pada command windows.

Page 6: Buku Komprostek

Bab 1 Pengenalan MATLAB &Pengantar Pemrograman

Halaman 3 dari 101

Gambar 1.2 Sistem kerja MATLAB

Sekali kita mendefinisikan sebuah variabel, MATLAB akan menyimpan

dalam workspace untuk “selamanya”. Untuk menghapus seluruh variabel yang

telah dibuat dapat menggunakan perintah clear. Variabel a, b, dan c yang telah

tersimpan akan hilang. Jika ingin membersihkan layar command window tanpa

menghapus variabel-variabelnya kita dapat menggunakan perintah clc. Beberapa

nama variabel yang telah didefinisikan oleh MATLAB sebagai berikut:

Tabel 1.1 Variabel terdefinisi dalam MATLAB

Var Keterangan

eps Bilangan yang jika ditambahkan dengan suatu bilangan lain tidak

mengubah besar bilangan lain itu. Epsilon berharga 2.2204e-016

pi 3.1416....

inf Tak berhingga (Infinity). Simbol matematika = ~

NaN Bilangan tak tentu (Not a Number) contoh 0/0, ~ - ~

i,j Bilangan imajiner (akar dari -1)

Perintah memasukan data variabel a

Perintah memasukan data variabel b

Perintah menghitung harga variabel c

Menyimpan secara otomatis harga variabel a, b , dan c

Menyimpan secara otomatis perintah-perintah yang telah diketikkan di command window

Page 7: Buku Komprostek

Bab 1 Pengenalan MATLAB &Pengantar Pemrograman

Halaman 4 dari 101

Untuk menamakan sebuah variabel sebaiknya tidak memakai nama-nama

yang telah didefinisikan oleh MATLAB.

1.2 Matrik, Vektor dan MATLAB

MATLAB adalah singkatan dari matrix laboratory. Oleh karena itu

pemahaman terhadap konsep matrik harus memadai agar dapat memanfaatkan

MATLAB sebagai bahasa komputasi dengan maksimal. Vektor merupakan matrik

yang hanya terdiri atas satu kolom atau satu baris saja.

Penulisan matrik di MATLAB

Tanda pisah antar elemen matrik

Tanda koma (,) atau spasi digunakan untuk memisahkan elemen-elemen satu

baris. Tanda titik koma(;) digunakan untuk memisahkan elemen-elemen satu

kolom. >> a=[1,2,3]

a =

1 2 3

>> b=[1;2;3]

b =

1

2

3

>> A=[1 2 3;4 5 6;7 8 9]

A =

1 2 3

4 5 6

7 8 9

Matrik transposisi >> A'

ans =

1 4 7

2 5 8

3 6 9

Page 8: Buku Komprostek

Bab 1 Pengenalan MATLAB &Pengantar Pemrograman

Halaman 5 dari 101

Menentukan ukuran matrik >> size(A)

ans =

3 3

Menentukan determinan matrik >> det(A)

ans =

0

Menentukan invers matrik >> inv(A)

Warning: Matrix is close to singular or badly scaled.

Results may be inaccurate. RCOND = 1.541976e-018.

ans =

1.0e+016 *

-0.4504 0.9007 -0.4504

0.9007 -1.8014 0.9007

-0.4504 0.9007 -0.4504

Perhitungan invers matrik A menggunakan MATLAB ternyata

memunculkan peringatan yang menyatakan bahwa matrik A adalah singular (tak

wajar). Hal ini bisa diketahui lebih awal dengan melihat harga determinan A.

Apabila determinan A berharga nol dapat dipastikan matrik A adalah matrik

singular.

Vektor baris adalah matrik yang terdiri atas satu baris saja. >> B=[2:6]

B =

2 3 4 5 6

Penulisan seperti di atas akan menghasilkan vektor baris dengan selisih 1

>> C=[2:2:6]

C =

2 4 6

Penulisan seperti di atas akan menghasilkan vektor baris dengan selisih 2

Page 9: Buku Komprostek

Bab 1 Pengenalan MATLAB &Pengantar Pemrograman

Halaman 6 dari 101

Vektor kolom adalah matrik yang terdiri atas satu kolom saja >> V=[2:0.5:4]'

V =

2.0000

2.5000

3.0000

3.5000

4.0000

Penulisan seperti di atas akan menghasilkan vektor kolom dengan selisih 0.5

Menentukan ukuran vektor >> length(V)

ans =

5

Matrik kerancang

Matrik kerancang adalah matrik berdimensi besar yang sebagian besar

elemennya adalah nol. Misalnya:

1 0 0 0 3 0 60 0 8 0 0 0 00 0 0 7 9 0 00 0 0 0 0 0 01 0 0 0 0 0 07 7 0 0 0 0 00 0 0 0 0 9 0

⎡ ⎤⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎣ ⎦

Matrik segitiga atas

Matriks segitiga atas (disimbolkan U atau R) Adalah matriks bujur sangkar

yang semua elemen di bawah diagonalnya nol

4

1 2 3 40 5 6 70 0 8 90 0 0 10

U

⎡ ⎤⎢ ⎥⎢ ⎥ =⎢ ⎥⎢ ⎥⎣ ⎦

Page 10: Buku Komprostek

Bab 1 Pengenalan MATLAB &Pengantar Pemrograman

Halaman 7 dari 101

Matrik segitiga bawah

Matrik segitiga bawah (disimbolkan L) Adalah matriks bujur sangkar yang

semua elemen di atas diagonalnya nol.

Matrik identitas

Matrik identitas adalah matrik yang elemen diagonalnya bernilai 1 dan

elemen lainnya bernilai nol.

4

1 0 0 00 1 0 00 0 1 00 0 0 1

I

⎡ ⎤⎢ ⎥⎢ ⎥ =⎢ ⎥⎢ ⎥⎣ ⎦

Perhatikan cara membuat matrik identitas tanpa harus mengetik elemen

per elemen anggota matrik sbb: >> diag(ones(4,1))

ans =

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

atau >> eye(4)

ans =

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

Matriks diagonal

Matrik diagonal adalah matrik yang elemen selain diagonalnya bernilai nol.

4

1 0 0 02 5 0 03 6 8 04 7 9 10

L

⎡ ⎤⎢ ⎥⎢ ⎥ =⎢ ⎥⎢ ⎥⎣ ⎦

Page 11: Buku Komprostek

Bab 1 Pengenalan MATLAB &Pengantar Pemrograman

Halaman 8 dari 101

4

1 0 0 00 2 0 00 0 3 00 0 0 4

D

⎡ ⎤⎢ ⎥⎢ ⎥ =⎢ ⎥⎢ ⎥⎣ ⎦

Perhatikan cara membuat matrik diagonal tanpa harus mengetik elemen per

elemen sbb: >> diag(1:4)

ans =

1 0 0 0

0 2 0 0

0 0 3 0

0 0 0 4

Matrik Tridiagonal

Perhatikan cara membuat matrik diagonal tanpa harus mengetik elemen per

elemen sbb: >> diag(-2*ones(9,1))+diag(ones(8,1),1)+diag(ones(8,1),-1)

ans =

-2 1 0 0 0 0 0 0 0

1 -2 1 0 0 0 0 0 0

0 1 -2 1 0 0 0 0 0

0 0 1 -2 1 0 0 0 0

0 0 0 1 -2 1 0 0 0

0 0 0 0 1 -2 1 0 0

0 0 0 0 0 1 -2 1 0

0 0 0 0 0 0 1 -2 1

0 0 0 0 0 0 0 1 -2

2 1 0 0 0 0 0 0 01 2 1 0 0 0 0 0 00 1 2 1 0 0 0 0 00 0 1 2 1 0 0 0 00 0 0 1 2 1 0 0 00 0 0 0 1 2 1 0 00 0 0 0 0 1 2 1 00 0 0 0 0 0 1 2 10 0 0 0 0 0 0 1 2

−⎡ ⎤⎢ ⎥−⎢ ⎥⎢ ⎥−⎢ ⎥−⎢ ⎥⎢ ⎥−⎢ ⎥

−⎢ ⎥⎢ ⎥−⎢ ⎥

−⎢ ⎥⎢ ⎥−⎢ ⎥⎣ ⎦

Page 12: Buku Komprostek

Bab 1 Pengenalan MATLAB &Pengantar Pemrograman

Halaman 9 dari 101

Aljabar Matrik

Operasi aljabar matrik maupun skalar menggunakan simbol yang tidak jauh

berbeda. Berikut ini hirarki operasi aljabar dalam MATLAB. Pertama ^ kedua *

ketiga / atau \ dan terakhir + dan -. Keterangan:

^ Pangkat

* Perkalian

/ Pembagian matrik kanan (mis: B/A = B*inv(A))

\ Pembagian matrik kiri (mis: A\B = inv(A)*B)

+ Penambahan

- Pengurangan

Penjumlahan dan pengurangan

Hanya dapat dilakukan jika matrik-matrik yang akan dijumlahkan dan

dikurangkan memiliki orde sama.

2 3 1 6 2 3 1 6 4 6 2 121 4 5 2 1 4 5 2 2 8 10 4⎡ ⎤ ⎡ ⎤ ⎡ ⎤

+ =⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦ ⎣ ⎦

2 3 1 6 2 3 1 6 0 0 0 01 4 5 2 1 4 5 2 0 0 0 0⎡ ⎤ ⎡ ⎤ ⎡ ⎤

− =⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦ ⎣ ⎦

>> A =[2 3 1 6;1 4 5 2]

A =

2 3 1 6

1 4 5 2

>> A+A

ans =

4 6 2 12

2 8 10 4

>> A-A

ans =

0 0 0 0

0 0 0 0

Page 13: Buku Komprostek

Bab 1 Pengenalan MATLAB &Pengantar Pemrograman

Halaman 10 dari 101

Perkalian matrik

AB Syarat jumlah kolom A = jumlah kolom baris B

AB BA≠

Misal

[ ]1 2 3A = 123

B⎡ ⎤⎢ ⎥= ⎢ ⎥⎢ ⎥⎣ ⎦

[ ]1

1 2 3 2 1 4 9 143

AB⎡ ⎤⎢ ⎥= = + + =⎢ ⎥⎢ ⎥⎣ ⎦

(1 x 3) (3 x 1)=(1 x 1)

[ ]1 1 2 32 1 2 3 2 4 63 3 6 9

BA⎡ ⎤ ⎡ ⎤⎢ ⎥ ⎢ ⎥= =⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦

Operasi perkalian matrik dalam MATLAB dilakukan dengan simbol * >> A=[1,2,3]

A =

1 2 3

>> B=[1;2;3]

B =

1

2

3

>> A*B

ans =

14

>> B*A

ans =

1 2 3

2 4 6

3 6 9

Page 14: Buku Komprostek

Bab 1 Pengenalan MATLAB &Pengantar Pemrograman

Halaman 11 dari 101

Pembagian matrik kanan

1

/

xA cx cAx c A

=

==

Misalkan:

[ ]1 2 32 5 4 20 15 84 3 1

x⎡ ⎤⎢ ⎥ = −⎢ ⎥⎢ ⎥⎣ ⎦

>> A=[1 2 3;2 5 4;4 3 1]

A =

1 2 3

2 5 4

4 3 1

>> c=[20 15 -8]

c =

20 15 -8

>> x=c/A

x =

-8.6667 3.0952 5.6190

Pembagian matrik kiri

1

\

Ax cx A cx A c

=

==

Misalkan:

1 2 3 202 5 4 154 3 1 8

x⎡ ⎤ ⎡ ⎤⎢ ⎥ ⎢ ⎥=⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥−⎣ ⎦ ⎣ ⎦

>> A=[1 2 3;2 5 4;4 3 1]

A =

1 2 3

2 5 4

4 3 1

Page 15: Buku Komprostek

Bab 1 Pengenalan MATLAB &Pengantar Pemrograman

Halaman 12 dari 101

>> c=[20;15;-8]

c =

20

15

-8

>> x=A\c

x =

-1.0000

-4.7143

10.1429

Beberapa fungsi built in matrik -perintah yang telah terdefinisi dalam

MATLAB- akan sangat berguna untuk mempermudah pekerjaan perhitungan

matrik, disajikan sebagai berikut.

expm eksponensial dari sebuah matrik

logm logaritma dari sebuah matrik

sqrtm akar kuadrat dari sebuah matrik

Operasi elemen matrik

Seringkali dibutuhkan operasi antar elemen-elemen matrik, oleh karena itu

MATLAB telah menyediakan perintah untuk melakukan operasi elemen matrik

dengan simbol .* (titik diikuti dengan bintang). Perkalian elemen hanya dapat

dilakukan untuk orde matrik yang sama.

1. .* perkalian antar elemen matrik. A.*B adalah perkalian antar elemen per

elemen matrik A dengan B. A dan B harus memiliki ukuran yang sama

kecuali jika salah satunya adalah skalar (bilangan tunggal).

2. ./ Pembagian elemen kanan. A./B adalah matrik dengan elemen-elemen

A(i,j)/B(i,j). A dan B harus memiliki ukuran yang sama, kecuali jika salah

satunya adalah skalar.

Page 16: Buku Komprostek

Bab 1 Pengenalan MATLAB &Pengantar Pemrograman

Halaman 13 dari 101

3. .\ Pembagian elemen kiri. A.\B adalah matrik dengan elemen-elemen

B(i,j)/A(i,j). A dan B harus memiliki ukuran yang sama, kecuali jika salah

satunya adalah skalar.

4. .^ Pangkat elemen. A.^B is adalah matrik dengan elemen-elemen A(i,j)

pangkat B(i,j). A dan B harus memiliki ukuran yang sama, kecuali jika

salah satunya adalah skalar.

Berikut ini masing-masing contoh operasi elemen matrik. >> A=[1 2;3 4]

A =

1 2

3 4

>> A.*A

ans =

1 4

9 16

>> A./A'

ans =

1.0000 0.6667

1.5000 1.0000

>> A.\A'

ans =

1.0000 1.5000

0.6667 1.0000

>> A.^A

ans =

1 4

27 256

Page 17: Buku Komprostek

Bab 1 Pengenalan MATLAB &Pengantar Pemrograman

Halaman 14 dari 101

1.3 Membuat Grafik

Grafik 2 Dimensi

Perintah menggambar grafik 2D

plot(x,y) Misalkan:

x 1 2 3 4 5

y 2.7 7.4 20.1 54.6 148.4

>> x=[1,2,3,4,5]

x =

1 2 3 4 5

>> y=[2.7,7.4,20.1,54.6,148.4]

y =

2.7000 7.4000 20.1000 54.6000 148.4000

>> plot(x,y)

>> xlabel('x')

>> ylabel('y')

Gambar 1.3 Grafik 2 Dimensi

Grafik 3 Dimensi

Perintah menggambar grafik 3D

surf(x,y,z) Misalkan:

x y z(x=1) z(x=2) z(x=3)

1 1 2 5 10

2 2 5 8 13

3 3 10 13 18

4 17 20 25

1 1.5 2 2.5 3 3.5 4 4.5 50

50

100

150

x

y

Page 18: Buku Komprostek

Bab 1 Pengenalan MATLAB &Pengantar Pemrograman

Halaman 15 dari 101

>> x=[1 2 3]

x =

1 2 3

>> y=[1 2 3 4]

y =

1 2 3 4

>> z=[2 5 10;5 8 13;10 13 18;17 20 25]

z =

2 5 10

5 8 13

10 13 18

17 20 25

>> surf(x,y,z)

>> xlabel('x')

>> ylabel('y')

>> zlabel('z')

Gambar 1.4 Grafik 3 Dimensi

Untuk mempercantik tampilan dan mempermudah penafsiran grafik dengan

menambah legenda warna ketikkan perintah berikut ini. >> shading interp

>> colorbar

11.5

22.5

3

1

2

3

40

5

10

15

20

25

xy

z

Page 19: Buku Komprostek

Bab 1 Pengenalan MATLAB &Pengantar Pemrograman

Halaman 16 dari 101

Gambar 1.5 Grafik 3 Dimensi yang diperhalus

Grafik 3 Dimensi Semu

Apabila penafsiran grafik 3D seperti tercetak di muka masih dirasakan

sulit, MATLAB telah menyediakan perintah untuk membuat grafik 3D menjadi

grafik 2D. >> pcolor(x,y,z)

>> xlabel('x')

>> ylabel('y')

>> zlabel('z')

>> shading interp

>> colorbar

Gambar 1.6 Grafik 3 Dimensi semu

1.4 Algoritma & Pemrograman

Algoritma adalah urutan langkah-langkah logis yang dibutuhkan untuk

melakukan suatu tugas spesifik. Algoritma dapat dituliskan dalam bentuk kalimat,

namun lebih umum dituliskan dalam bentuk diagram alir (flow chart).

Page 20: Buku Komprostek

Bab 1 Pengenalan MATLAB &Pengantar Pemrograman

Halaman 17 dari 101

Tabel 1.2 Simbol algoritma pemrograman

Simbol Nama Fungsi

Garis alir

Menyatakan aliran logika

Terminal

Menyatakan awal atau

akhir suatu program.

Proses

Menyatakan perhitungan

atau manipulasi data.

Masukan/keluaran

Menyatakan masukan

atau keluaran data dan

informasi

Kondisi/keputusan

Menyatakan sebuah

perbandingan, pertanyaan

atau keputusan yang

menentukan lintasan

mana yang akan diikuti.

Konektor Menyatakan perpindahan

halaman.

M-file

Sampai saat ini kita masih menjalankan perintah-perintah serta masukan

data dengan mengetikkannya secara langsung dalam command window. Tentunya

akan sangat merepotkan jika kita dihadapkan pada persoalan yang menuntut

pembuatan program yang sangat panjang berpuluh-puluh bahkan beratus-ratus

baris perintah. Untuk kemudahan dalam membuat program, MATLAB

menyediakan fasilitas m-file atau editor sebagai tempat untuk mengetikkan

perintah dan menyimpan program-program yang dibuat. Penulisan program dalam

Page 21: Buku Komprostek

Bab 1 Pengenalan MATLAB &Pengantar Pemrograman

Halaman 18 dari 101

m-file dapat dilakukan dengan dua cara, yaitu skrip m-file dan fungsi m-file.

Berikutnya akan dibahas satu per satu.

Gambar 1.7 Membuka m-file

Aturan penamaan m-file

Penamaan m file baik untuk skrip maupun fungsi memiliki aturan tertentu

yang harus dipatuhi. Berikut ini aturan penamaan m-file pada MATLAB 7.

1. Penamaan harus dimulai dengan huruf latin (a-z atau A-Z) baru kemudian

boleh diikuti dengan angka. Huruf kapital dengan huruf kecil tidaklah

sama (FILE ≠ file)

2. Tidak boleh ada spasi, titik, koma, titik koma, dan segala macam tanda

baca lainnya kecuali underscore ( _ ).

3. Nama sebuah fungsi m-file sebaiknya disamakan dengan nama fungsinya.

4. Sebaiknya tidak menggunakan nama yang telah didefinisikan sebagai

fungsi MATLAB tertentu, contoh roots, fzero,zeros dll.

Cara membuka M-File: File/New/M-File

Page 22: Buku Komprostek

Bab 1 Pengenalan MATLAB &Pengantar Pemrograman

Halaman 19 dari 101

Skrip m-file

Skrip adalah file sederhana yang tidak memiliki input argumen dan output

argumen. Definisi lain yang mudah diingat, skrip adalah penulisan program

MATLAB dalam m-file dengan bentuk bukan fungsi. Sebagai contoh berikut ini

adalah penulisan perintah-perintah dalam m-file untuk membuat grafik 3D yang

telah dituliskan sebelumnya secara langsung pada command window. File ini

disimpan dengan nama coba_m_file.m

Gambar 1.7 Skrip coba_m_file.m

Untuk memberikan komentar dalam m-file dapat dilakukan dengan

menambahkan % sebelum mengetikkan komentar atau keterangan yang

diperlukan seperti terlihat pada coba_m_file di atas.

Eksekusi atau menjalankan skrip tersebut dapat dilakukan dengan berbagai

cara yang berbeda sbb:

Page 23: Buku Komprostek

Bab 1 Pengenalan MATLAB &Pengantar Pemrograman

Halaman 20 dari 101

1. Tekan tombol F5 pada keyboard, atau

2. Klik debug kemudian run, atau

3. Aktifkan command window. Ketikkan nama file yang akan dieksekusi. >>coba_m_file.

Fungsi m-file

Seperti yang telah dijelaskan sebelumnya selain dengan skrip kita dapat

juga melakukan pemrograman dalam bentuk lain yaitu fungsi m-file. Penjelasan

mengenai cara membuat fungsi m-file dilakukan dengan pendekatan contoh soal

kasus 1. Namun sebelum menginjak pada pembahasan cara membuat m-file, saya

akan mengajak untuk melihat beberapa fungsi yang telah ada dalam MATLAB

sebagai fungsi built in sebagai berikut.

Tabel 1.3 Fungsi built in MATLAB

Fungsi Keterangan

sin(x) harga sinus dari x, radian sind(x) harga sinus dari x, derajat cos(x) harga kosinus dari x, radian cosd(x) harga kosinus dari x, derajat tan(x) harga tangen dari x, radian tand(x) harga tangen dari x, derajat log(x) logaritma dengan basis bilangan natural e dari x log10(x) logaritma dengan basis bilangan 10 dari x log2(x) logaritma dengan basis bilangan 2 dari x exp(x) eksponensial dari x sqrt(x) akar kuadrat dari x

Kasus 1 [volume tangki penyimpan]

Senyawa kimia yang mudah menguap pada temperatur kamar biasa disimpan

dalam fasa cair pada tekanan uapnya. Dalam kasus ini n-butana (C4H10) di simpan

pada tekanan 2,581 bar dan temperatur 300 K. Penyimpanan skala besar (bulk>50

m3) n-butana seringkali dilakukan dalam tangki yang berbentuk bola (spherical).

Sebuah tangki penyimpan n-butana berbentuk bola. Hitunglah volume tangki jika

bola memiliki jari-jari 2,3,……9,10 m!.

Page 24: Buku Komprostek

Bab 1 Pengenalan MATLAB &Pengantar Pemrograman

Halaman 21 dari 101

Jawaban:

343bolaV rπ=

Algoritma pemrograman

Penulisan program untuk kasus 1 kita dilakukan dengan dua cara, yaitu

dalam bentuk skrip dan fungsi .

Mulai

Masukan harga Jari-jari, r (m)

Hitung harga Volume bola V = 4/3*π*r^3

Harga Volume Bola (m3)

Selesai

Page 25: Buku Komprostek

Bab 1 Pengenalan MATLAB &Pengantar Pemrograman

Halaman 22 dari 101

Penulisan program dalam bentuk skrip % kasus_1.m clc clear r = 2:10 V =4/3*pi*r.^3 % Membuat grafik V terhadap r plot(r,V) xlabel('jari-jari [m]') ylabel('Volume [m^3 ]')

Eksekusi kasus_1.m dalam command window >>kasus_1 r = 2 3 4 5 6 7 8 9 10 V = 1.0e+003 * Columns 1 through 5 0.0335 0.1131 0.2681 0.5236 0.9048 Columns 6 through 9 1.4368 2.1447 3.0536 4.1888

2 3 4 5 6 7 8 9 100

500

1000

1500

2000

2500

3000

3500

4000

4500

jari-jari [m]

Vol

ume

[m3 ]

Gambar 1.8 Volume vs jari-jari tangki penyimpan [skrip]

Page 26: Buku Komprostek

Bab 1 Pengenalan MATLAB &Pengantar Pemrograman

Halaman 23 dari 101

Penulisan program dalam bentuk fungsi %kasus1.m function V = kasus1(r) V = 4/3*pi*r.^3 % Membuat gambar plot(r,V) xlabel('jari-jari [m]') ylabel('volume [m^3 ]')

Eksekusi fungsi kasus1.m di command window >> kasus1(2:10) ans = 1.0e+003 * Columns 1 through 5 0.0335 0.1131 0.2681 0.5236 0.9048 Columns 6 through 9 1.4368 2.1447 3.0536 4.1888 Eksekusi sebuah fungsi dapat pula dilakukan dengan perintah berikut ini.

feval(‘fungsi’,x1,...,xn) x1,....,xn adalah varibel bebas yang akan dievaluasi. >> feval('kasus1',[2:10])

ans =

1.0e+003 *

Columns 1 through 5

0.0335 0.1131 0.2681 0.5236 0.9048

Columns 6 through 9

1.4368 2.1447 3.0536 4.1888

2 3 4 5 6 7 8 9 100

500

1000

1500

2000

2500

3000

3500

4000

4500

jari-jari [m]

Vol

ume

[m3 ]

Gambar 1.8 Volume vs jari-jari tangki penyimpan [fungsi]

Page 27: Buku Komprostek

Bab 1 Pengenalan MATLAB &Pengantar Pemrograman

Halaman 24 dari 101

Kontrol aliran

MATLAB memiliki kontrol aliran yang berguna dalam menentukan

berbagai keputusan selanjutnya sebuah program, diantaranya adalah for, if, while,

dan switch. Pernyataan relasi yang sering digunakan dalam kontrol aliran adalah

sebagai berikut: == sama dengan > lebih besar dari

<= kurang dari sama dengan ~ operator logika tidak

>= lebih dari sama dengan & operator logika dan

~= tidak sama dengan | operator logika atau

< kurang dari

for % ideal.m

clear

clc

R = 8.314; %J/mol.K

T =[310:10:400]; %K

P =1e5; %Pa

for i = 1:10

V(i)=R*T(i)/P; %m3/mol

end

V

if %nilai.m

x = input('masukkan nilai ujian=');

if x >= 80

disp('Nilai A')

elseif x >= 65

disp('Nilai B')

elseif x >= 55

disp('Nilai C')

elseif x >= 45

disp('Nilai D')

else

disp('Nilai E')

end

Page 28: Buku Komprostek

Bab 1 Pengenalan MATLAB &Pengantar Pemrograman

Halaman 25 dari 101

While %diff.m

dif=1;

x2=7

while dif > 0.0005

x1=x2-cos(x2)/(1+x2);

dif=abs(x2-x1);

x2=x1

end

Switch %pilih.m

method = 'Bilinear';

switch lower(method)

case {'linear','bilinear'}

disp('Method is linear')

case 'cubic'

disp('Method is cubic')

case 'nearest'

disp('Method is nearest')

otherwise

disp('Unknown method.')

end

1.5 Manfaatkan fasilitas help!

Masih sangat banyak sekali bahasan MATLAB yang berlum tercakup

dalam buku ajar ini. Semua hal yang berkaitan dengan operasional MATLAB

sudah ada dalam help MATLAB. Kita tinggal membuka dan mempelajarinya

sendiri. Apabila menemukan kesulitan dalam melakukan pemrograman

menggunakan MATLAB, kita dapat memanfaatkan fasilitas help. Caranya dengan

mengetikkan help kemudian ketikan topik yang kita cari.

Page 29: Buku Komprostek

Bab 1 Pengenalan MATLAB &Pengantar Pemrograman

Halaman 26 dari 101

Tugas 1: Pengenalan MATLAB dan Membuat Program Sederhana

Nomor 1 (Tutorial MATLAB)

Baca tutorial “Cepat Mahir MATLAB”, Bab 1 Memulai Menggunakan

MATLAB dan Bab 5 Fungsi M-File.

Nomor 2 (Persamaan Antoine)

Buat sebuah algoritma dan program dalam M-file untuk menghitung tekanan uap

murni n-heksana dalam rentang temperatur 25 - 100 oC, dengan menggunakan

persamaan Antoine sbb:

ln /( )P A B T C= − +

Dengan

A = 14.0568 T = Temperatur (K)

B = 2825.42 P = Tekanan uap murni (kPa)

C = -42.7089

Buat pula grafik P terhadap T-nya menggunakan rutin plot dalam MATLAB.

Nomor 3 (Equimolar Counterdiffusion)

Gas amoniak (A) berdifusi melalui pipa sepanjang 0,10 m yang berisi gas N2 (B)

pada tekanan 1,0132 x 105 Pa dan temperatur 298 K. Tekanan pada titik 1 PA,1 =

1,013 x 104 Pa dan pada titik 2 PA,2 = 0,507 x 104 Pa. Diffusivitas DAB = 0,230

x 10-4 m2/s. Laju diffusi gas amoniak (A) dapat dievaluasi menggunakan Hukum

Fick’s berikut ini:

* 21 2( ) [ . /( . )]AB A AA

D P PJ kmol A s mRT z

−=

Δ R = 8314 J/(kmol.K)

Buat sebuah algoritma dan program MATLAB berupa suatu fungsi dalam M-file

untuk menghitung laju diffusi gas amoniak. Petunjuk : program terdiri atas 2 buah m-file. 1 buah untuk menulis fungsi, 1 buah untuk mengeksekusi fungsi. _____________________________________o0o_____________________________________

Page 30: Buku Komprostek

Bab 2 Sistem Persamaan Linier

Halaman 27 dari 101

Bab 2 Sistem Persamaan Linier

2.1 Definisi Vektor-Vektor TSL (Terhubung Secara Linier)

Sehimpunan vektor x1, x2, ......, xn yang masing-masing berukuran m

disebut terhubung secara linier (TSL) jika dapat ditemukan sehimpunan

konstanta 1 2, ,...., nk k k dengan harga tidak semuanya nol, sehingga:

1 1 2 2 .... 0n nk x k x k x+ + + =

Catatan:

0 adalah vektor yang semua elemennya nol berukuran m.

Contoh himpunan vektor TSL

1 2 3

1 2 32 , 4 , 63 6 9

x x x⎡ ⎤ ⎡ ⎤ ⎡ ⎤⎢ ⎥ ⎢ ⎥ ⎢ ⎥= = =⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦ ⎣ ⎦

2.2 Definisi Vektor-Vektor TTSL

Sehimpunan vektor x1, x2, ......, xn yang masing-masing berukuran m

disebut tak terhubung secara linier (TTSL) jika TIDAK dapat ditemukan

sehimpunan konstanta seperti pada vektor TSL.

Penentuan keterhubungan linier dari vektor-vektor dengan cara yang telah

didefinisikan diatas tidaklah praktis karena hanya mengandalkan prinsip coba-

coba. Metode praktis yang dapat diterapkan untuk menentukan keterhubungan

linier dari vektor-vektor adalah ortogonalisasi Gram Schmidt.

1 2 3 0( 2) 2 (1) 4 +(0) 6 0

3 6 9 0

⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥− + =⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦ ⎣ ⎦ ⎣ ⎦

1k 2k 3k

Page 31: Buku Komprostek

Bab 2 Sistem Persamaan Linier

Halaman 28 dari 101

2.3 Konsep Keortogonalan

Sehimpunan dari n buah vektor berdimensi m (x1, x2, ......, xn) disebut

himpunan ortogonal/saling tegak lurus jika kedua syarat di bawah ini terpenuhi.

( )( )

0 dan

0 dengan , 1, 2,...,

Ti j

Ti j

x x untuk i j

x x untuk i j i j n

= ≠

≠ = =

Sehimpunan vektor-vektor yang ortogonal pasti TTSL, namun TTSL belum tentu

ortogonal. Diagram vennya sbb:

Contoh:

(1) 1 2

3 0.6,

1 1.8x x⎡ ⎤ ⎡ ⎤= =⎢ ⎥ ⎢ ⎥−⎣ ⎦ ⎣ ⎦

Pada praktek komputasi seringkali ditemukan ( ) 0Ti jx x ≈ hampir ortogonal.

Untuk ( ) 510Ti jx x −≤ secara praktis bisa dikatakan ortogonal.

Ortogonalisasi Gram-Schmidt

Menegakkan sehimpunan vektor-vektor ortogonal y1,y2,....,yn dari suatu

himpunan vektor-vektor x1, x2,....,xn.

Ortogonal

TTSLS

[ ]1 2

0.63 1 1.8 1.8 0

1.8Tx x ⎡ ⎤

= − = − =⎢ ⎥⎣ ⎦

[ ]1 1

33 1 9 1 10

1Tx x

⎡ ⎤= − = + =⎢ ⎥−⎣ ⎦

ortogonal

Page 32: Buku Komprostek

Bab 2 Sistem Persamaan Linier

Halaman 29 dari 101

( )( )

( )( )

( )( )

( )( )

( )( )

1 1

1 22 2 1

1 1

1 3 2 33 3 1 2

1 1 2 2

1 11 1

1 1 1 1

1.

2.

3.

.

T

T

T T

T T

T Ti i i

i i iT Ti i

y x

y xy x y

y y

y x y xy x y y

y y y y

y x y xi y x y y

y y y y−

− −

=

⎡ ⎤= − ⎢ ⎥

⎢ ⎥⎣ ⎦⎡ ⎤ ⎡ ⎤

= − −⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦⎡ ⎤ ⎡ ⎤

= − − −⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦

KK

Vektor-vektor 1 2, , , ny y yK saling tegak lurus satu sama lain dan y1 juga tegak

lurus pada 1 2 1, , , jx x x −K .

Pengujian Keterhubungan Linier Vektor-Vektor

Konstruksi vektor-vektor yang saling tegak lurus (ortogonal) dengan

metode Gram-Schmidt dari vektor-vektor yang akan diuji. Jika ( ) 0T

j jV V = (atau

mendekati nol), maka himpunan vektor yang diuji TSL.

Contoh:

Ortogonalisasikan vektor-vektor kolom dari matrik A berikut ini.

1 2 34 5 67 8 9

A⎡ ⎤⎢ ⎥= ⎢ ⎥⎢ ⎥⎣ ⎦

Jawaban:

x1 x2 x3

1 2 34 5 67 8 9

A⎡ ⎤⎢ ⎥= ⎢ ⎥⎢ ⎥⎣ ⎦

Menghitung y1

[ ]1 1 1 4 7 Ty x= =

Page 33: Buku Komprostek

Bab 2 Sistem Persamaan Linier

Halaman 30 dari 101

Menghitung y2

( ) [ ]1 1

11 4 7 4 1 16 49 66

7

Ty y⎡ ⎤⎢ ⎥= = + + =⎢ ⎥⎢ ⎥⎣ ⎦

( ) [ ]1 2

21 4 7 5 2 20 56 78

8

Ty x⎡ ⎤⎢ ⎥= = + + =⎢ ⎥⎢ ⎥⎣ ⎦

( )( )

[ ] [ ] [ ]1 22 2 1

1 1

782 5 8 1 4 7 0.8182 0.2727 -0.2727 66

TT T

T

y xy x y

y y

⎡ ⎤= − = − =⎢ ⎥

⎢ ⎥⎣ ⎦

Menghitung y3

( ) [ ]1 3

31 4 7 6 3 24 63 90

9

Ty x⎡ ⎤⎢ ⎥= = + + =⎢ ⎥⎢ ⎥⎣ ⎦

( ) [ ]2 3

30.8182 0.2727 -0.2727 6 1.6364

9

Ty x⎡ ⎤⎢ ⎥= =⎢ ⎥⎢ ⎥⎣ ⎦

( ) [ ]2 2

0.81820.8182 0.2727 -0.2727 0.2727 0.8182

-0.2727

Ty y⎡ ⎤⎢ ⎥= =⎢ ⎥⎢ ⎥⎣ ⎦

( )( )

( )( )

[ ] [ ] [ ] [ ]

1 3 2 33 3 1 2

1 1 2 2

390 1.63643 6 9 1 4 7 0.8182 0.2727 0.2727 0 0 066 0.8182

T T

T T

T

y x y xy x y y

y y y y

y

⎡ ⎤ ⎡ ⎤= − −⎢ ⎥ ⎢ ⎥

⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦

= − − − =

Dapat disimpulkan bahwa banyaknya vektor-vektor kolom A yang TTSL

adalah 2.

Page 34: Buku Komprostek

Bab 2 Sistem Persamaan Linier

Halaman 31 dari 101

2.4 Norma vektor dan matrik

Misalkan x adalah vektor kolom/baris berdimensi n

A adalah matrik bujursangkar berdimensi n x n

Norma ke-1

1 211

...n

i ni

x x x x x=

= = + + +∑

11

(norma kolom)n

ijj iA maks a

=

= ∑

Norma ke-2

( )1

22

21

Panjang Vektor

n

ii

x x=

⎡ ⎤= ⎢ ⎥⎣ ⎦⇒

2Norma spektralA ≡ Memiliki sifat yang lebih baik daripada

1A dan

A∞

, sayangnya tidak mempunyai ungkapan matematis yang sederhana sehingga

jarang digunakan dalam komputasi numeris sebagai gantinya digunakan norma

frobenius.

Norma Frobenius

( )1

22

1 1

n n

ijFi j

A a= =

⎡ ⎤= ⎢ ⎥⎣ ⎦∑∑

Norma ke-∞

1

norma baris

iin

iji j

x maks x

A maks a

∞=

=

=

Page 35: Buku Komprostek

Bab 2 Sistem Persamaan Linier

Halaman 32 dari 101

Contoh:

[ ]1 2 3x = −

3

1 2 311

1 2 3 6ii

x x x x x=

= = + + = + − + =∑

( )1

232 2 2 2 2 2 2

1 2 321

(1) ( 2) (3) 1 4 9 14ii

x x x x x=

⎡ ⎤= = + + = + − + = + + =⎢ ⎥⎣ ⎦∑

3 3iix maks x

∞= = =

2.5 Martabat matrik

Martabat sebuah matrik adalah jumlah maksimum kolom-kolom TTSL

dari matrik yang bersangkutan. Banyak maksimum kolom TTSL sama dengan

banyak maksimum baris TTSL. Perintah dalam MATLAB untuk menentukan

martabat suatu matrik adalah rank.

Contoh: >> A=[1 2 3;4 5 6;7 8 9]

A =

1 2 3

4 5 6

7 8 9

1 2 34 5 6

7 8 9A

−⎡ ⎤⎢ ⎥= −⎢ ⎥⎢ ⎥−⎣ ⎦

1 4 7 12+ − + =

2 5 8 15− + + − =

3 6 9 18+ + =

1 2 3 6+ − + =

4 5 6 15− + + =

7 8 9 24+ − + =

118A =

24A∞=

1 4 9 16 25 36 49 64 81 285F

A = + + + + + + + + =

Page 36: Buku Komprostek

Bab 2 Sistem Persamaan Linier

Halaman 33 dari 101

>> rank(A)

ans =

2

Tugas 2 Ortogonalisasi Gram-Schmidt (pilihlah salah satu soal berikut ini!)

Nomor 1

Konstruksi sekumpulan vektor kolom yang saling tegak lurus dari vektor-vektor

kolom matrik A di bawah ini, dengan menggunakan ortogonalisasi Gram-Schmdt.

1 0 1 1 11 1 0 2 2

1 1 2 0 43 1 2 4 00 1 1 1 3

A

− − − −⎡ ⎤⎢ ⎥− − −⎢ ⎥⎢ ⎥= −⎢ ⎥⎢ ⎥⎢ ⎥− −⎣ ⎦

Nomor 2

Buatlah sebuah program ortogonalisasi Gram-Schmidt dalam bahasa

pemrograman MATLAB. Jangan lupa untuk menyertakan algoritma

pemrogramannya.

2.6 Metode eliminasi Gauss

1 2 3

1 2 3

1 2 3

3 18 9 182 3 3 1174 2 283

x x xx x xx x x

+ + =+ + =+ + =

Matrik perbesarannya adalah sebagai berikut:

3 18 9 | 182 3 3 |1174 1 2 |283

A⎡ ⎤⎢ ⎥= ⎢ ⎥⎢ ⎥⎣ ⎦

Langkah 1 Buat elemen di bawah a11 menjadi nol

Hitung:

2121

11

23

ala

= =

Page 37: Buku Komprostek

Bab 2 Sistem Persamaan Linier

Halaman 34 dari 101

3131

11

43

ala

= =

Hitung:

Baris ke-2 baru = baris ke-2 lama – l21 x baris ke-1

[ ] [ ][ ]

232 3 3 |117 x 3 18 9|18

0 9 3 |105

= −

= − −

Baris ke-3 baru = baris ke-3 lama – l31 x baris ke-1

[ ] [ ][ ]

434 1 2 | 283 x 3 18 9 |18

0 23 10 | 259

= −

= − −

3 18 9 | 180 9 3 | 1050 23 10 | 259

A⎡ ⎤⎢ ⎥= − −⎢ ⎥⎢ ⎥− −⎣ ⎦

Langkah 2

Hitung:

3232

22

239

ala

= =

Hitung:

Baris ke-3 baru = baris ke-3 lama – l32 x baris ke-2

[ ] [ ][ ]

239

7 283 3

0 23 10 |105 0 9 3 | 259

0 0 |

x= − − − − −

= − −

3 18 9 | 180 9 3 | 1050 0 7 / 3 | 28 / 3

⎡ ⎤⎢ ⎥− −⎢ ⎥⎢ ⎥− −⎣ ⎦

1 2 3

2 37 28

33 3

3 18 9 18 9 3 105

x x xx x

x

+ + =− − =

− = −

3 4x =

Page 38: Buku Komprostek

Bab 2 Sistem Persamaan Linier

Halaman 35 dari 101

2 13x = −

1 72x =

Berikut ini permrograman metode Gauss dalam bahasa MATLAB 7

function x = Gauss(A , c) %GAUSS Solves a set of linier algebraic equations by the Gauss % elimination method. % GAUSS(A,C) finds unknowns of a set of linier algebraic % equations. A is the matrix of coefficients and C is the % vector of constants. % % See also JORDAN, JACOBI. %(c) by N. Mostoufi & A. Constantinides %January 1,1999 c = (c(:).’)’ ; %Make sure it's a column vector n = length(c); [nr nc] = size(A); % Check coefficient matrix and vector of constants if nr ~= nc

error('Coefficient matrix is not square.') end if nr ~= n error('Coefficient matrix and vector of constants do not have the same length') end % Check if the coefficient matrix is singular if det(A) == 0 fprintf('\n Rank = %7.3g\n',rank(A)) error('The coefficient matrix is singular.') end unit = eye(n); % Unit matrix order = [1 : n]; % Order of unknowns aug = [A c]; % Augmented matrix % Gauss elimination for k = 1 : n-1 pivot = abs(aug(k , k)); prow = k; pcol = k;

Page 39: Buku Komprostek

Bab 2 Sistem Persamaan Linier

Halaman 36 dari 101

Kasus1

Kukus lewat jenuh bertemperatur 130 oC mengalir dalam sebuah pipa yang

memiliki diameter dalam 20 mm (D1), dan diameter luar 25 mm (D2). Pipa

diinsulasi setebal 40 mm [(D3 – D2)/2]. Koefisien konveksi kukus (hi) = 1700

% Locating the maximum pivot element for row = k : n for col = k : n if abs(aug(row , col)) > pivot pivot = abs(aug(row , col)); prow = row; pcol = col; end end end % Interchanging the rows pr = unit; tmp = pr(k , :); pr(k , :) = pr(prow , :); pr(prow , :) = tmp; aug = pr * aug; % Interchanging the columns pc = unit; tmp = pc(k , :); pc(k , :) = pc(pcol , :) ; pc(pcol , :) = tmp; aug(1 : n, 1 : n) = aug(1 : n , 1 : n) * pc; order = order * pc; % Keep track of the column interchanges % Reducing the elements below diagonal to zero in the column k lk = unit; for m = k + 1 : n lk(m , k) = - aug(m , k) / aug(k , k); end aug = lk * aug; end x = zeros(n , 1);

% Back substitution t(n) = aug(n , n + 1) / aug(n , n); x(order(n)) = t(n); for k = n - 1 : -1 : 1 t(k) = (aug(k,n+1) - sum(aug(k,k+1:n).*t(k+1:n))) / aug(k,k); x(order(k)) = t(k); end

Page 40: Buku Komprostek

Bab 2 Sistem Persamaan Linier

Halaman 37 dari 101

W/m2.K, dan koefisien konveksi udara (ho) = 3 W/m2.K. Konduktivitas termal

pipa (ks) = 45 W/m.K, dan insulasi (ki) = 0,064 W/m.K. Temperatur udara di luar

insulasi = 25 oC. Perkirakan temperatur T1, T2, dan T3.

Perpindahan panas dari kukus ke pipa.

( ) ( )( ) ( )

1 21 1

2 1ln / / 2i Ss

T Th D T T

D D kπ

π−

− =

Perpindahan panas dari pipa ke insulasi

( )( ) ( )

( )( ) ( )

1 2 2 3

2 1 3 2ln / / 2 ln / / 2s i

T T T TD D k D D kπ π

− −=

Perpindahan panas dari insulasi ke udara

( )( ) ( ) ( )2 3

3 33 2ln / / 2 O a

i

T Th D T T

D D kπ

π−

= −

Ada tiga persamaan linier yang berhasil dirumuskan dari peneracaan energi

tersebut.

( ) ( )

( ) ( ) ( ) ( )

( ) ( )

1 1 2 12 1 2 1

1 2 32 1 2 1 3 2 3 2

2 3 3 33 2 3 2

2 2ln / ln /

0ln / ln / ln / ln /

2 2ln / ln /

s si i S

s s i i

i iO O a

k kh D T T h D TD D D D

k k k kT T TD D D D D D D D

k kT h D T h D TD D D D

⎡ ⎤ ⎡ ⎤+ − =⎢ ⎥ ⎢ ⎥

⎣ ⎦ ⎣ ⎦

⎡ ⎤ ⎡ ⎤ ⎡ ⎤− + + =⎢ ⎥ ⎢ ⎥ ⎢ ⎥

⎣ ⎦ ⎣ ⎦ ⎣ ⎦

⎡ ⎤ ⎡ ⎤− + = −⎢ ⎥ ⎢ ⎥

⎣ ⎦ ⎣ ⎦

Ubah sistem persamaan linier menjadi bentuk matrik Ax = c, menjadi sbb:

Kukus, TS Udara, Ta

T1 T2 T3

Page 41: Buku Komprostek

Bab 2 Sistem Persamaan Linier

Halaman 38 dari 101

( ) ( )

( ) ( ) ( )

( ) ( )

12 1 2 1

1 1

22 1 2 1 3 2 3 2

3 3

33 2 3 2

2 2 0ln / ln /

0ln / ln / ln( / ) ln /

2 20ln / ln /

s si

i Ss s i i

O a

i iO

k kh DD D D D

T h D Tk k k k T

D D D D D D D DT h D T

k k h DD D D D

⎡ ⎤⎡ ⎤ ⎡ ⎤+ −⎢ ⎥⎢ ⎥ ⎢ ⎥

⎢ ⎥⎣ ⎦ ⎣ ⎦⎡ ⎤ ⎡ ⎤⎢ ⎥⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎢ ⎥ ⎢ ⎥⎢ ⎥− + =⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎢ ⎥⎣ ⎦ ⎣ ⎦ ⎣ ⎦ ⎢ ⎥ ⎢ ⎥⎢ ⎥ −⎣ ⎦ ⎣ ⎦

⎢ ⎥⎡ ⎤ ⎡ ⎤− +⎢ ⎥⎢ ⎥ ⎢ ⎥

⎢ ⎥⎣ ⎦ ⎣ ⎦⎣ ⎦Berikut ini pemrograman MATLAB-nya.

Eksekusi persamaan di command window

>>kasus2 T = 129.7858 129.7678 48.1191

%kasus2.m clc clear % Input data Ts = 130; % oC Ta = 25; % oC D1 = 20e-3; % Diameter dalam pipa, m D2 = 25e-3; % Diameter luar pipa, m Ith = 40e-3; % Tebal insulasi, m D3 = (D2 + 2*Ith); % Diameter pipa + insulasi hi = 1700; % Koefisien transfer panas bagian dalam (W/m2.K) ho = 3 ; % koefisien transfer panas bagian luar (W/m2.K) ks = 45; % Konduktivitas panas baja (W/m.K) ki = 0.064; % Konduktivitas panas insulasi (W/m.K) % Matriks koefisien variabel A = [2*ks/log(D2/D1)+hi*D1 , -2*ks/log(D2/D1) , 0 ks/log(D2/D1) , -(ks/log(D2/D1)+ki/log(D3/D2)) , ki/log(D3/D2) 0 , 2*ki/log(D3/D2) , -(2*ki/log(D3/D2)+ho*D3)]; % Matriks konstanta c = [hi*D1*Ts ; 0 ; -ho*D3*Ta]; % Menyelesaikan sis pers. linier dengan fungsi invers MATLAB T = inv(A)*c

Page 42: Buku Komprostek

Bab 2 Sistem Persamaan Linier

Halaman 39 dari 101

Tugas 3: Menyelesaikan Sistem Persamaan Aljabar Linier Secara Simultan Suatu Sistem Distribusi Uap Dalam Sebuah Pabrik Kimia. Nomor 1

Sebuah sistem persamaan linier dirumuskan dari Neraca massa & energi distribusi

uap pabrik (ditampilkan di bawah). Sistem tersebut terdiri dari 14 buah variabel xi

dengan i = 3,...,16 belum diketahui, dan yi adalah parameter yang telah diketahui.

xi dan yi dalam 1000 lb/h. Dengan menggunakan MATLAB hitunglah 14 variabel

(xi, i=3,…,16) yang belum diketahui itu.

3 4 5 1 2 5 4

3 6

7

5 7 8 9 10 15 7 8 3

8 9 10 11 12 13 7

6 15 6 5

3 6 12 16 1 9

181.60 132.57 5.11.17 0132.57 0.745 61.2

99.18.4

24.21.15(181.60) 1.15 0.4 19.7

181.

x x x y y y yx x

xx x x x x x y y yx x x x x x yx x y y

x x x x y y

− − − − = − − + + =

− =

− =

+ − − − + = + − =

+ + + − − = − = −

− = − =

− + − + + = − + = −

12 16 1 9

11 1

4

8 16

5 14

9

12 14 16 9

60 4.594 0.11 1.0235 2.45 35.050.0423(181.60) 0.0423 2.880.016(181.60) 0

0.147 00.07 0

0.0805(181.60) 00.4 97.9

x x y yx y

xx xx x

xx x x y

− − = − + + =

− + = =− + =− =

− =

− + =

− + = − = −

Nomor 2

Ketik ulang program Gauss.m pada m-file MATLAB. Gunakan fungsi gauss itu

untuk menyelesaikan sistem persamaan linier pada nomor 1.

________________________________o0o_______________________________

Page 43: Buku Komprostek

Bab 3 Persamaan Tak Linier

Halaman 40 dari 101

Bab 3 Persamaan Tak Linier

Persamaan Linier cmxy +=

Gambar 3.1 Kurva linier

Persamaan Tak Linier

Contoh:

Gambar 3.2 Kurva tak linier

y x=y

x LINIER

exp( )y x=y

x NON-LINIER

Page 44: Buku Komprostek

Bab 3 Persamaan Tak Linier

Halaman 41 dari 101

Berikut ini beberapa contoh Persamaan Tak Linier

Tabel 3.1 Contoh Persamaan Tak linier

Jenis Pers.

Tak Linier Contoh

Persamaan Kuadrat 2 4 3 0x x− + =

Persamaan Polinomial 4 3 26 7 6 8 0x x x x+ + − − =

Persamaan Transenden 2sin 2exp( ) 0x x− − =

Persamaan Logaritmik 2 2ln(1 ) 2exp( ) 0x x+ − − =

Dalam aplikasinya di bidang teknik kimia, persamaan tak linier memiliki peranan

yang sangat penting.

Tabel 3.2 Aplikasi Persamaan Tak Linier dalam bidang teknik kimia

Aplikasi Pers. Tak Linier Contoh

Neraca Massa dan Energi,

0 , , 0out inT T

o out out in inP i P i

To To

H N C dT N CεΔ + − =∫ ∫

Termodinamika

Persamaan gas nyata/kubik,

Kesetimbangan reaksi

kimia,

(1

2

RT aPV b V

= −−

0 0

0 0 0

0

1ln 0o oT To o op p

T T

C CG H H dTK dTRT RT T R R T

Δ ΔΔ −Δ Δ+ + + − =∫ ∫

Operasi Teknik Kimia, dll.

(2

1

(1 ) 0 n

j jF

j j

z FF q

αα φ=

⎛ ⎞− − =⎜ ⎟⎜ ⎟−⎝ ⎠

1) Persamaan kubik tersebut diusulkan oleh Johannes Diderik van der Waals (1873), Fisikawan Belanda, peraih nobel Fisika pada tahun 1910.

2) Persamaan Underwood untuk distilasi multikomponen.

Page 45: Buku Komprostek

Bab 3 Persamaan Tak Linier

Halaman 42 dari 101

Klasifikasi persamaan tak Linier

Berdasarkan jumlah banyaknya persamaan tak linier dibagi menjadi dua

1. Persamaan Tunggal

Persamaan tak linier hanya satu buah.

Contoh: 0322 =−+ xx

2. Persamaan Serentak/Sistem Persamaan

Persamaan tak linier terdiri atas minimal dua buah.

Contoh : ( ){ }( ){ } 02/cos2

02/sin2=−−=+−

yxxyxx

Solusi Persamaan Tak Linier Tunggal

Mencari akar-akar x yang membuat harga y atau f(x) menjadi nol.

?....0)( =→= xxf

Ada berbagai metode numerik yang dapat digunakan untuk menyelesaikan

persaman tak linier tunggal, diantaranya:

Metode Penyetengahan Interval

Metode Substitusi Berurut

Metode Wegstein

Metode Interpolasi Linear

Metode Newton-Raphson,dll.

Dalam diktat ini hanya akan diterangkan metode penyetengahan interval dan

metode Newton-Raphson..

0)( =xf

( )( )

( ) 0,...,,...

0,...,,0,...,,

21

212

211

=

==

NN

N

N

xxxf

xxxfxxxf

Page 46: Buku Komprostek

Bab 3 Persamaan Tak Linier

Halaman 43 dari 101

Metode penyetengahan interval

Tabel 3.3 Karakteristik metode penyetengahan interval

No Keunggulan Kelemahan

1. Sederhana Tebakan awal terdiri atas dua buah [a,b]

dan harus memenuhi f(a)*f(b)<0

2. Pasti konvergen Laju konvergensi relatif lebih lambat

daripada metode Newton-Raphson

Algoritma metode penyetengahan interval

1. Mulai

2. Definisikan persamaan tak linier yang akan dicari akarnya dan tetapkan

toleransinya.

Misalkan: f(x) = log(x) . Tol = 1e-5

3. Tetapkan dua buah tebakan awal a dan b.

Misalkan: a = 0.1 dan b = 10.

4. Hitung harga f(a) dan f(b)

Hitung: f(0.1) = log(0.1) = -1

f(10) = log(10) = 1

5. Periksa apakah syarat f(a) * f(b) < 0 terpenuhi. Jika syarat terpenuhi proses

dilanjutkan ke langkah berikutnya. Jika tidak kembali ke langkah 2.

Periksa: f(0.1) * f(10) = -1*1 = -1 < 0. Syarat terpenuhi proses berlanjut ke

langkah berikutnya.

6. Hitung harga 2/)( bam +=

Hitung: m = (0.1 + 10)/2 = 5.05

7. Hitung harga f(m)

Hitung: f(5.05) = log(5.05) = 0.7033

8. Periksa apakah f(a) * f(m) > 0 terpenuhi. Jika terpenuhi, harga a diganti

dengan m. Jika tidak terpenuhi harga b yang diganti dengan m.

Periksa: f(0.1) * f(5.05) = -1*0.7033 = -0.7033 < 0. Syarat tidak terpenuhi

harga b diganti dengan m, sehingga b yang baru = 5.05.

Page 47: Buku Komprostek

Bab 3 Persamaan Tak Linier

Halaman 44 dari 101

9. Periksa kriteria iterasi, |(a - b)/a| > Tol. Jika kriteria iterasi terpenuhi proses

kembali ke langkah 5. Jika tidak dilanjutkan ke langkah berikutnya..

Periksa: |(0.1 – 5.05)/0.1| = 49.5 > 1e-5. Kriteria iterasi terpenuhi, maka

kembali ke langkah 5.

10. Hitung harga akar pembuat nol, 2/)( bax +=

11. Selesai

Algoritma yang telah disusun dimuka, dapat juga dituliskan dalam bentuk

diagram Alir (flow chart) sebagai berikut:

Gambar 3.3 Algoritma metode penyengahan interval

mulai

Definisikan f(x) dan toleransi

Hitung harga: f(a), f(b)

Tetapkan harga a dan b

f(a)*f(b)<

0

1

ya

tidak

1

m=(a+b)/2

Hitung harga: f(m)

f(a)*f(m)

a=m f(a)=f(m)

yb=m

f(b)=f(m)

tid

tidak

ya

x*=(a+b)/2

Selesai

|(a-b)/a|>tol

Page 48: Buku Komprostek

Bab 3 Persamaan Tak Linier

Halaman 45 dari 101

Pemrograman metode penyetengahan interval dengan menggunakan bahasa

MATLAB.

Contoh:

Carilah akar-akar persamaan kuadrat 2 4 3 0x x+ + = dengan menggunakan metode

penyetengahan interval!.

Perintah pada command window sbb: >>biseksi(‘kuadrat’,-2,1,1e-6)

ans =

-1.0000

>> biseksi('kuadrat',-2,-4,1e-6)

ans = -3.0000

Dari perhitungan menggunakan metode bisection diperoleh akar-akar dari

persamaan kuadrat adalah [-1,-3].

biseksi.m

function x = biseksi(fungsi,a,b,tol) % a = tebakan awal pertama, b = tebakan awal kedua % tol = toleransi while abs((a - b)/a) > tol fa = feval(fungsi,a); fb = feval(fungsi,b); if fa*fb > 0 error('masukan tebakan a dan b yang berbeda') end m = (a + b)/2; fm = feval(fungsi,m); if fm*fa > 0; a = m; else b = m; end end x=(a+b)/2;

%kuadrat.m function y = kuadrat(x) y = x^2+4*x+3;

Page 49: Buku Komprostek

Bab 3 Persamaan Tak Linier

Halaman 46 dari 101

Metode Newton-Raphson

Tabel 4.3 Karakteristik metode penyetengahan interval

No Keunggulan Kelemahan

1. Hanya butuh satu tebakan

awal.

Kekonvergenan adakalanya gagal

dicapai.

2. Laju konvergensi cepat

Gambar 3.4 Metode newton-Raphson

1

1 1

( ) ( ) 0 ( )'( ) n n nn

n n n n

f x f x f xf x gradienx x x x+

+ +

− −= = =

− −

1( )'( )

nn n

n

f xx xf x+ = −

Metode Newton-Raphson.

Algoritma Metode Newton-Raphson

1. Mulai

2. Definisikan persamaan tak linier dan turunannya.

Misalkan: f(x) = log(x).

)10ln/(1)(' xxf =

3. Tetapkan harga tebakan awal ( 0x ) dan besar toleransinya

Misalkan: 1.00 =x . Tol = 1e-5

4. Nyatakan 0xx = dan 10 += xx .

nx

( )nf x

1nx +0 x

y

1( )'( )

nn n

n

f xx xf x+ = −

Page 50: Buku Komprostek

Bab 3 Persamaan Tak Linier

Halaman 47 dari 101

x = 0.1

x0=0.1+1=1.1

5. Periksa kriteria iterasi |(x – x0)/x| > Tol. Jika kriteria iterasi terpenuhi

proses dilanjutkan. Jika kriteria iterasi tidak terpenuhi proses dihentikan.

Akar pembuat nol diperoleh.

6. Nyatakan x0 = x.

x0 = 0.1

7. Hitung harga f(x0) dan f’(x0).

f(0.1) = -1

f’(0.1) = 1/(0.1*ln10) = 4.343

8. Hitung harga )(')(

0

00 xf

xfxx −=

3303.0343.4

)1(1.0 =−

−=x

9. Kembali ke langkah 5

10. Selesai.

Page 51: Buku Komprostek

Bab 3 Persamaan Tak Linier

Halaman 48 dari 101

Gambar 3.5 Algoritma metode Newton-Raphson

Mulai

Nyatakan: x = x0

x0 = x + 1

tidak

ya

Selesai

Nyatakan: x0 = x

Hitung harga: f(x0) dan f’(x0)

Hitung harga: x=x0-f(x0)/f’(x0)

Definisikan f(x) dan f’(x),

x0, tol

Tampilkan x* = x

Page 52: Buku Komprostek

Bab 3 Persamaan Tak Linier

Halaman 49 dari 101

Kita gunakan contoh kasus yang sama dengan contoh pada metode bisection. 2 4 3 0

2 4

y x xdy xdx

= + + =

= +

>> [x iter]=NewRap('kuadrat','dkuadrat',2,1e-6)

x =

-1.0000

%kuadrat.m function y = kuadrat(x) y = x^2+4*x+3;

%NewRap.m

function [x iter] = NewRap(fungsi,dfungsi,x0,tol) % fungsi = fungsi yang akan dicari akar-akarnya % dfungsi = turunan pertama fungsi % x0 = tebakan awal % tol = toleransi itermax = 100; iter = 0; x = x0; x0 = x + 1; % loop iterasi while abs((x - x0)/x) > tol & iter <= itermax iter = iter + 1; x0 = x; fx= feval(fungsi,x); df= feval(dfungsi,x); % Rumus Newton-Raphson x = x0 - fx/df; end

%dkuadrat.m function dy = dkuadrat(x) dy = 2*x+4;

Page 53: Buku Komprostek

Bab 3 Persamaan Tak Linier

Halaman 50 dari 101

iter =

6

>> [x iter]=NewRap('kuadrat','dkuadrat',-4,1e-6)

x =

-3.0000

iter =

5

Dari perhitungan menggunakan metode Newton Raphson diperoleh akar-akar dari

persamaan kuadrat adalah [-1,-3].

Subrutin dalam MATLAB untuk persamaan tak linier tunggal

MATLAB telah menyediakan program untuk menyelesaikan persamaan linier

tunggal yang telah menyatu dengan program MATLAB itu sendiri. Ada dua

subrutin yang umum digunakan, yaitu roots dan fzero.

Tabel 4.4 Perbandingan subrutin roots terhadap fzero

Rutin Keunggulan Kelemahan

roots.m 1. Seluruh akar dapat diketahui

dengan hanya sekali

menjalankan rutin.

2. Tidak membutuhkan tebakan

mula.

1. Hanya untuk pers. kuadrat

dan polinomial.

fzero.m 1. Solusi bagi segala jenis pers

tak linier.

1. Hanya satu buah akar

yang dapat diketahui

sekali menjalankan rutin.

2. Membutuhkan tebakan

mula.

Penggunaan roots:

Penulisan perintah roots di Command window MATLAB

C(1)*X^N + ... + C(N)*X + C(N+1)

Page 54: Buku Komprostek

Bab 3 Persamaan Tak Linier

Halaman 51 dari 101

C = [C(1) C(2)........C(N) C(N+1)

roots(C)

Contoh persamaan kuadrat 2 4 5 0x x+ − = maka C(1)=1, C(2)=4, C(3)= -5.

Carilah akar-akar persamaan kuadrat di bawah ini. 2 4 5 0x x+ − =

MATLAB Command window >> C=[1 4 -5] C = 1 4 -5 >> roots(C) ans = -5 1

Penggunaan fzero:

Penulisan fzero di MATLAB Command window

x =fzero(‘fungsi’,x0) Contoh penggunaan fzero:

2 4 3 0x x+ + = Penulisan contoh di MATLAB Command window >> fzero('x^2+4*x+3',0) ans = -1

Page 55: Buku Komprostek

Bab 3 Persamaan Tak Linier

Halaman 52 dari 101

Untuk keteraturan dan kemudahan pemanggilan akan lebih baik mendefinisikan

fungsi pada m-file.

Baru kemudian kita panggil fungsi dari MATLAB Command window >> x = fzero('kuadrat',0)

x =

-1

Untuk mencari akar lainnya, ubah tebakan awalnya. >> x = fzero('kuadrat',-4)

x =

-3.0000

Jawaban:

Persamaan Van der Waals

2

RT aPV b V

= −−

2 227 1 dan

64 8c c

c c

R T RTa bP P

= =

Kasus 3 Aplikasi subrutin roots

%kuadrat.m

function y = kuadrat(x) y = x^2+4*x+3

Kasus 3 Tekanan uap n-butana pada temperatur 350 K adalah 9.4573 bar. Hitunglah volume molar uap jenuh dan cair jenuh n-butana pada Kondisi tersebut dengan menggunakan persamaan gas Van der Waals. (R=8.314j/mol.K ;Tc=425.1 K; Pc=37.96 bar)

Transformasi ke dalam bentuk umum

pers.polinomial

Page 56: Buku Komprostek

Bab 3 Persamaan Tak Linier

Halaman 53 dari 101

2 2

3 2 2

3 2

( )( ) ( )( )

( ) 0

P V b V RTV a V bP V bV RTV aV abPV Pb RT V aV ab

− = − −

− = − +

− + + − =

Eksekusi program kasus3.m. Masukan dan hasil di Command Window

>>kasus3 masukan tekanan, Pa = 9.4573e5 masukan temperatur, K = 350 vol = 2.6669 0.3354 0.1910

% kasus3.m

clear clc % Masukan kondisi operasi P = input('masukan tekanan, Pa = '); T = input('masukan temperatur, K = '); R = 8314 ; %J/(kmol.K) Pc = 37.96e5; %Pa Tc = 425.1; %K % Hitung konstanta a & b a = (27/64)*R^2*Tc^2/Pc; b = (1/8)*R*Tc/Pc; % Definisikan koefisien polinomial VdW=[P, -(P*b + R*T), a, -a*b]; vol = roots(VdW) %liter/mol

Kasus 4 Aplikasi subrutin fzero

Diketahui sebuah persamaan kapasitas panas sbb. Tentukan temperatur pada saat Cp = 1 kJ/kg.K !

6 15.040.716 4.257.

kJCp E Tkg KT

− ⎡ ⎤= − + ⎢ ⎥

⎣ ⎦

Page 57: Buku Komprostek

Bab 3 Persamaan Tak Linier

Halaman 54 dari 101

Langkah 1 Membuat program fungsi yang akan dinolkan.

Langkah 2 Membuat program pengeksekusi

Langkah 3 Eksekusi program kasus4.m

Masukan dan hasil di Command Window

Tugas 4 Menyelesaikan persamaan tak linier tunggal dengan menggunakan subrutin MATLAB

Tekanan uap n-butana pada temperatur 350 K adalah 9.4573 bar. Volume molar

uap jenuh dan cair jenuh n-butana pada kondisi tersebut dapat dihitung dengan

menggunakan persamaan kubik Redlich-Kwong-Soave sebagai berikut:

( )RT aP

V b V V bα

= −− +

Dalam bentuk persamaan polinomial menjadi sebagai berikut::

%KapPns.m

function f = KapPns(T,cp) %Persamaan tak linier yang akan dinolkan f = cp - 0.716 + 4257e-6*T - 15.04/T^0.5;

% kasus4.m

clear clc cp = input('masukan kapasitas panas,kJ/kg.K = '); T = fzero(@(T) KapPns(T,cp),100)

>> kasus4 masukan harga kapasitas panas,kJ/kg.K = 1 T = 189.7597

Page 58: Buku Komprostek

Bab 3 Persamaan Tak Linier

Halaman 55 dari 101

3 2 2( ) 0Z Z A B B Z AB− + − − − =

Dengan:

bPBRT

= 2 2

aPAR Tα

=PVZRT

=

2 20.4278 C

C

R TaP

= ; 0.0867 C

C

RTbP

=

2

1 1C

TST

α⎡ ⎤⎛ ⎞

= + −⎢ ⎥⎜ ⎟⎜ ⎟⎢ ⎥⎝ ⎠⎣ ⎦; 20.48508 1.55171 0.15613S ω ω= + −

(R=8.314j/mol.K ;Tc=425.1 K; Pc=37.96 bar; ω = 0.1931). Hitunglah volume

molar uap jenuh dan cair jenuh n-butana pada kondisi itu !!.

Sistem Persamaan Tak Linier

Sistem persamaan tak linier merupkan persamaan tak linier yang terdiri atas lebih

dari satu buah persamaan tak linier.

Solusi Sistem Persamaan Tak Linier

Metode Newton

1 2

1 2

( , ) 0( , ) 0

f x xf x x

==

(1) (1)1 1(1) (1)

1 2 1 1(1) (1)

(1) (1)2 2 2 2

1 2

| |

| |

f fx xx x ff f fx xx x

δ∂ ∂⎡ ⎤⎢ ⎥∂ ∂ ⎡ ⎤ ⎡ ⎤⎢ ⎥ = −⎢ ⎥ ⎢ ⎥∂ ∂⎢ ⎥ ∂⎣ ⎦ ⎣ ⎦⎢ ⎥∂ ∂⎣ ⎦

J fδ = −( 1) ( )n nx x ρδ+ = +

Page 59: Buku Komprostek

Bab 3 Persamaan Tak Linier

Halaman 56 dari 101

function [xnew , iter] = Newton(fnctn,x0,rho,tol,varargin) %(c) by N. Mostoufi & A. Constantinides,January 1, 1999 %Initialization if nargin < 4 | isempty(tol) tol = 1e-6; end if nargin < 3 | isempty(rho) rho = 1; end x0 = (x0(:).')'; % Make sure it's a column vector nx = length(x0); x = x0*1.1; xnew = x0; iter = 0; maxiter = 100; while max(abs(x-xnew)) > tol & iter < maxiter iter = iter + 1; x = xnew; fnk = feval(fnctn,x,varargin{:}); % Set dx for derivation for k = 1:nx if x(k) ~= 0 dx(k) = x(k) / 100; else dx(k) = 1/100; end end % Calculation of the Jacobian matrix a = x; b = x; for k = 1 : nx a(k) = a(k) - dx(k); fa = feval(fnctn,a,varargin{:}); b(k) = b(k) + dx(k); fb = feval(fnctn,b,varargin{:}); jacob(:,k) = (fb - fa) / (b(k) - a(k)); a(k) = a(k) + dx(k); b(k) = b(k) - dx(k); end % Next approximation of the roots if det(jacob) == 0 xnew = x + max([abs(dx), 1.1*tol]); else xnew = x - rho * inv(jacob) * fnk; end end if iter >= maxiter disp('Warning : Maximum iterations reached.') end

Page 60: Buku Komprostek

Bab 3 Persamaan Tak Linier

Halaman 57 dari 101

Contoh sistem persamaan tak linier. 3 2

1

2 32

( , ) 3 1/ 2 0

( , ) 3 3 / 2 0

f x y x xy

f x y x y y

= − − =

= − − =

Langkah 1 Buat terlebih dahulu fungsi sistem persamaan taklinier dalam m-file.

Langkah 2 Buat program pengeksekusi menggunakan Newton.m pada m-file yang

berbeda atau dapat juga langsung di command window.

Langkah 3 Jalankan program pengeksekusi. Klik debug/run

Langkah 2 dapat di loncat dengan menuliskan langsung perintah eksekusi pada

Command window >> [x iter] = Newton('sistem',[1 2])

x =

2.5198

1.5874

iter =

7

Subrutin dalam MATLAB untuk sistem persamaan taklinier

Solusi sistem persamaan taklinier dapat menggunakan fsolve pada MATLAB.

Contoh: 3 2

2 3

3 1/ 2

3 3 / 2

x xy

x y y

− =

− =

Langkah 1 Buat terlebih dahulu fungsi sistem persamaan taklinier dalam m-file.

%run_sistem.m [x iter] = Newton('sistem',[1 2])

%sistem.m function f = sistem(x) f=[x(1)^3-3*x(1)*x(2)^2-0.5 3*x(1)^2*x(2)-x(2)^3-sqrt(3)/2]

Page 61: Buku Komprostek

Bab 3 Persamaan Tak Linier

Halaman 58 dari 101

Langkah 2 Buat program pengeksekusi menggunakan fsolve pada m-file yang

berbeda atau dapat juga langsung di command window.

Langkah 3 Jalankan program pengeksekusi.

Kasus 5

Reaksi reformasi kukus berlangsung menurut rangkaian reaksi kesetimbangan

berikut:

4( ) 2 ( ) ( ) 2( )

( ) 2 ( ) 2( ) 2

3 R-1

R-2g g g g

g g g

CH H O CO H

CO H O CO H

+ +

+ +

Pada suhu 2000 K harga konstanta kesetimbangan untuk masing-masing reaksi

adalah 1,930x10-4 dan 5,528. Tentukan komposisi kesetimbangan komponen-

komponen apabila Gas umpan berkomposisi 20% CH4(g) dan 80% H2O(g)

berada pada kondisi suhu 2000 K dan tekanan 1 atm.

function f = sistem(x) f=[x(1)^3-3*x(1)*x(2)^2-0.5 3*x(1)^2*x(2)-x(2)^3-sqrt(3)/2]

>>[X,FVAL] = fsolve('sistem',[1 2]) Optimization terminated: first-order optimality is less than options.TolFun. X = 2.5198 1.5874 FVAL = 1.0e-010 * 0.1930

0.0966

Page 62: Buku Komprostek

Bab 3 Persamaan Tak Linier

Halaman 59 dari 101

Jawaban

Misal ditetapkan basis perhitungan 10 mol gas umpan

1

2

derajat reaksi dari reaksi pertamaderajat reaksi dari reaksi kedua

ee==

Fraksi mol kesetimbangan setiap komponen dapat dinyatakan sebagai berikut:

1 2

110 2COe eY

e−

=+

2

1 2

1

310 2H

e eYe

+=

+

2

1 2

1

810 2H O

e eYe

− −=

+

2

2

110 2COeY

e=

+

4

1

1

210 2CH

eYe

−=

+

Persamaan konstanta kesetimbangan dinyatakan sebagai berikut:

2 2 2

4 2 2

3 2

1 2 CO H CO H

CH H O CO H O

Y Y P Y YK K

Y Y Y Y= =

Berikut ini pemrograman MATLAB-nya.

function y = KsT(e,K1,K2) %Sistem Pers.tak linier yang akan dinolkan y = [(e(1)-e(2))*(3*e(1)-e(2))^3 /((2-e(1))*(8-e(1)… - e(2))*(10+2*e(1))^2) - K1 e(2)*(3*e(1)+e(2)) / ((e(1)-e(2))*(8-e(1)-e(2))) - K2];

clear clc K1 = input(‘Masukan konstanta kst. reaksi 1 = '); K2 = input(‘Masukan konstanta kst. reaksi 2 = '); %Pencari nol fungsi KsT.m e = fsolve(@(e) KsT(e,K1,K2),[1 0.5])

( )( )( )( )( )

31 2 1 2

121 1 2 1

32 8 10 2

e e e eK

e e e e− −

=− − − +

( )( )( )

2 1 22

1 2 1 2

38

e e eK

e e e e+

=− − −

Page 63: Buku Komprostek

Bab 3 Persamaan Tak Linier

Halaman 60 dari 101

Eksekusi di MATLAB command window

Tugas 5 Menyelesaikan sistem persamaan tak linier dengan menggunakan subrutin MATLAB Suatu reaksi elementer A → B + C berlangsung dalam sebuah reaktor tangki

berpengaduk kontinu. Laju umpan murni A, 12 mol/s pada temperatur 25 oC.

Reaksi bersifat eksotermik, untuk itu digunakan air pendingin bertemperatur 50

oC untuk menyerap kalor yang dibebaskan reaksi. Asumsi konstanta kapasitas

panas sama baik di sisi reaktan maupun produk, neraca energi untuk sistem ini

dirumuskan sebagai berikut:

, 0( ) ( )Ao R Ao P A aF X H F C T T UA T T− Δ = − + −

FA0 = laju molar umpan, mol/s.

X = konversi

∆HR = Kalor reaksi, J/(mol.K)

CP,A = kapasitas panas A, J/(mol.K)

T = temperatur reaktor, oC

T0 = temperatur referensi, 25 oC

Ta = temperatur air pendingin, oC

U = koefisien pindah panas total, W/(m2.K)

>>kasus5 Masukan harga konstanta kst. reaksi 1 = 1.93e-4 Masukan harga konstanta kst. reaksi 2 = 5.528 Optimization terminated: first-order optimality is less than options.TolFun. e = 0.7480 0.6920

Page 64: Buku Komprostek

Bab 3 Persamaan Tak Linier

Halaman 61 dari 101

A = luas pindah panas, m2

Untuk reaksi orde pertama konversi dirumuskan sebagai berikut:

1kX

kττ

=+

Dengan τadalah waktu tinggal dalam sekon, dan k adalah laju reaksi spesifik

dalam s-1 dihitung dengan menggunakan persamaan Arrhenius:

650 exp[ 3800 /( 273)]k T= − +

Hitunglah harga temperatur reaktor dan konversinya!.

(∆HR=-1500 kJ/mol; τ=10 s; CP,A = 4500 J/(mol.K); UA/FA0 =700

W.s/(mol.K).

_______________________________o0o________________________________

Page 65: Buku Komprostek

Bab 4 Optimisasi

Halaman 62 dari 101

Bab 4 Optimisasi

Optimisasi Menggunakan MATLAB

Untuk mencari harga minimum dan maksimum kita dapat menggunakan perintah

fminsearch. Berikut ini cara penulisannya.

[x,fval,exitflag] = fminsearch(fun,x0) keterangan:

fun = Fungsi yang akan diminimumkan atau dimaksimumkan

x0 = Tebakan awal

x = Harga x yang menyebabkan fungsi minimum atau maksimum

fval = Nilai maksimum atau minimum.

exitflag = Kriteria penghentian proses iterasi. Harga x mencapai kekonvergenan

jika exitflag bernilai 1.

-3-2

-10

12

3

-2

0

2

-10

-5

0

5

XY

F(X

,Y)

Titik maksimum

Titik minimum

Page 66: Buku Komprostek

Bab 4 Optimisasi

Halaman 63 dari 101

Optimisasi Variabel Tunggal

Carilah titik minimum 2 4 3 0x x+ + = dengan menggunakan subrutin fiminsearch

dalam MATLAB. >> [x fval exitflag]=fminsearch('kuadrat',2)

x =

-2.0000

fval =

-1

exitflag =

1

Optimisasi Variabel Jamak

Kasus12

Carilah titik minimum dari persamaan multivariabel berikut ini. 2 2

1 2( 3) 0.5( 4) 3y x x= − + − +

Jawaban

>> kasus12

x =

3.0000 4.0000

fval =

3.0000

exitflag =

1

%multivaribel.m function y = multivariabel(x); y = (x(1)-3)^2 + 0.5*(x(2)-4)^2 + 3;

%kasus12.m [x,fval,exitflag] = fminsearch('multivariabel',[1,16])

Page 67: Buku Komprostek

Bab 4 Optimisasi

Halaman 64 dari 101

Tugas 11 Optimisasi

Nomor 1: Temperatur Optimal Dalam Reaktor kf

krA P⎯⎯→←⎯⎯ Diselenggarakan dalam reactor batch. Diketahui kf = 108e-5000/T detik-

1 dan kr = 1016e-10000/T detik-1, dimana T dalam K Neraca massa P dalam

reaktor partaian:

( )

( )

Pf A r P f Ao P r P

Pf r P f Ao

dC k C k C k C C k Cdt

dC k k C k Cdt

= − = − −

+ + =

Hasil integrasi persamaan ini adalah:

( )( )1 f rk k tf

P

Ao f r

k eCC k k

− +−=

+

CA0 = konsentrasi A mula-mula

Hitung temperatur optimal yang menyebabkan perolehan maksimal produk P

pada waktu reaksi 1 detik.

Nomor 2: Rosenbrock

Carilah titik minimum dari fungsi multidimensional Rosenbrock berikut. 2 2 2

2 1 1( ) 100( ) (1 )f x x x x= − + −

________________________________o0o_______________________________

Page 68: Buku Komprostek

Bab 5 Regresi Linier dan Non Linier

Halaman 65 dari 101

Bab 5 Regresi Linier dan Non Linier

5.1 Regresi Linier

Misalkan kita memiliki sekumpulan data-data sbb

1 1 2 2( , ), ( , ),....., ( , )n nx y x y x y

Kemudian diperoleh suatu persamaan matematik untuk merepresentasikan data-

data eksperimental tersebut berupa persamaan linier.

0 1y a x a= +

Jumlah kuadrat terkecil dari selisih antara model dengan data sbb

[ ] [ ]2 2model 0 1

1 1( )

n n

i i i ii i

S y x y a x a y= =

= − = + −∑ ∑

Turunan terhadap parameter 0a

( )0 110

2 0n

i i ii

S x a x a ya =

∂= + − =

∂ ∑

( )0 11

0n

i i ii

x a x a y=

+ − =∑

20 1

1 1 1

n n n

i i i ii i i

x a x a x y= = =

+ =∑ ∑ ∑ ............................................(i

Turunan terhadap parameter 1a

( )0 111

2 0n

i ii

S x a a ya =

∂= + − =

∂ ∑

( )0 11

0n

i ii

a x a y=

+ − =∑

0 11 1

n n

i ii i

x a na y= =

+ =∑ ∑ .............................................................(ii

Persamaan (i dan (ii dapat dijelmakan dalam bentuk matrik sbb:

2

1 1 10

1

1 1

n n n

i i i ii i i

n n

i ii i

x x x yaa

x n y

= = =

= =

⎡ ⎤ ⎡ ⎤⎢ ⎥ ⎢ ⎥⎡ ⎤⎢ ⎥ ⎢ ⎥=⎢ ⎥⎢ ⎥ ⎢ ⎥⎣ ⎦⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦

∑ ∑ ∑

∑ ∑

Page 69: Buku Komprostek

Bab 5 Regresi Linier dan Non Linier

Halaman 66 dari 101

Harga paramter a0 dan parameter a1 dapat diperoleh dengan menyelesaikan sistem

persamaan linier di atas.

Kasus 1

Harga konduktivitas alumunium pada berbagai temperatur sbb

T (K) 300 400 500 600 800

k (Btu/(h×ft2)(°F/ft) 273 240 237 232 220 Model matematik dapat diwakili dengan menggunakan persamaan linier

0 1k a T a= +

Untuk mencari harga a0 dan a1 dapat menggunakan metode jumlah selisih kuadrat

terkecil seperti yang telah dijelaskan sebelumnya. %konduktivitas.m clear clc T=[4,5,6,8]*100; % Absis k=[240,237,232,220]; % Ordinat n=length(k); A = [sum(T.^2),sum(T) sum(T), n]; c = [sum(k.*T) sum(k)]; a = A\c kmod = a(1)*T +a(2); S = sum((k-kmod).^2)

Hasil pada command window >>konduktivitas a = -0.0511 261.6571 S = 3.8857

Subrutin MATLAB untuk regresi persamaan linear dan polinomial dapat

menggunakan perintah sbb:

[P,S] = polyfit(x,y,n)

Kasus 1 merupakan persamaan linier, maka n yang digunakan dalam subrutin

polyfit adalah 1. Berikut ini pemrograman MATLAB-nya.

data-data n=orde polinom

Page 70: Buku Komprostek

Bab 5 Regresi Linier dan Non Linier

Halaman 67 dari 101

%konduktivitas2

T = [4,5,6,8]*100; % Absis

K = [240,237,232,220]; % Ordinat

[P,S] = polyfit(T,k,1)

>>konduktivitas2

P =

-0.0511 261.6571

S =

R: [2x2 double]

df: 2

normr: 1.9712

5.2 Linierisasi

Seringkali ditemukan persamaan tak linier dalam permasalah real teknk kimia.

Tentunya kita tak dapat begitu daja mengalurkan data-data dengan menggunakan

pemodelan linier. Agar dapat dimodelkan dengan pemodelan linier, maka

persamaan tak linier itu harus dilinierisasi terlebih dahulu. Berikut ini

pemaparannya.

bxy ae= ln ln( )ln ln

bxy aey bx a== +

Tabel 5.1 Hasil linearisasi persamaan-persamaan tak linier

Tipe persamaan absis ordinat slope intersep

y ax b= + x y a b

bxy ae= x ln(y) b ln(a)

( )xy

ax b=

+ x x/y a b

/y a x b= + 1/x y a b

LINIERISASI

Page 71: Buku Komprostek

Bab 5 Regresi Linier dan Non Linier

Halaman 68 dari 101

by ax c= + ln(x) ln(y-c) b ln(a)

Kasus

Suatu reaksi berorde n memiliki laju reaksi sbb:

nAr kC=

Apabila volume reaktor partaian (batch) konstan, persamaan laju reaksi menjadi

sbb:

nAA

dC kCdt

= −

Tentukan orde laju reaksi tersebut jika diketahui data-data eksperimen sbb:

Tabel 5.2 Konsentrasi, waktu, dan laju perubahannya

Waktu (s) CA (mol/liter) dCA/dt (mol/liter.s)

0 1.0 -0.10000

10 0.50 -0.02500

20 0.33 -0.01110

30 0.25 -0.00625

40 0.20 -0.00400

Jawaban:

nAA

dC kCdt

= −

ln ln lnAA

dC n C kdt

⎛ ⎞− = +⎜ ⎟⎝ ⎠

%linierisasi

t = [0:10:40]; % waktu

CA = [1,0.50,0.33,0.25,0.20]; %konsentrasi A

dCAdt = -[0.1,0.025,0.0111,0.00625,0.00400]; %Laju

y = log(-dCAdt);

Page 72: Buku Komprostek

Bab 5 Regresi Linier dan Non Linier

Halaman 69 dari 101

x = log(CA);

[P S] = polyfit(x,y,1);

n = P(1) %orde reaksi

k = exp(P(2)) %konstanta laju reaksi

Hasil pada command window n = 1.9982 k = 0.1002

5.3 Regresi Linier Peubah Banyak

1 2 0 1 1 2 2( , )y x x a x a x a= + +

20 1, 1 2, 2

1( )

n

i i ii

S y a x a x a=

= − − −∑

1, 0 1, 1 2, 210

2 ( ) 0n

i i i ii

S x y a x a x aa =

∂= − − − − =

∂ ∑

1,

21, 0 1, 2, 1 1, 2

1( ) 0

i

n

i i i i ii

x y x a x x a x a=

− − − =∑

1,

20 1, 2, 1 1, 2 1,

1 1 1 1i

n n n n

i i i i ii i i i

x a x x a x a x y= = = =

+ + =∑ ∑ ∑ ∑

2, 0 1, 1 2, 211

2 ( ) 0n

i i i ii

S x y a x a x aa =

∂= − − − − =

∂ ∑

2,

22, 1, 2, 0 1 2, 2

1( ) 0

i

n

i i i i ii

x y x x a x a x a=

− − − =∑

2,

21, 2, 0 1 2, 2 2,

1 1 1 1i

n n n n

i i i i ii i i i

x x a x a x a x y= = = =

+ + =∑ ∑ ∑ ∑

0 1, 1 2, 212

2 ( ) 0n

i i ii

S y a x a x aa =

∂= − − − − =

∂ ∑

1, 0 2, 1 21 1 1

n n n

i i ii i i

x a x a na y= = =

+ + =∑ ∑ ∑

Page 73: Buku Komprostek

Bab 5 Regresi Linier dan Non Linier

Halaman 70 dari 101

Ketiga buah persamaan linier tersebut dapat dijelmakan dalam matrik sbb:

21, 1, 2, 1, 1,

1 1 1 10

21, 2, 2, 2, 1 2,

1 1 1 12

1, 2,1 1 1

n n n n

i i i i i ii i i i

n n n n

i i i i i ii i i i

n n n

i i ii i i

x x x x x ya

x x x x a x ya

x x n y

= = = =

= = = =

= = =

⎡ ⎤ ⎡ ⎤⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎡ ⎤⎢ ⎥ ⎢ ⎥⎢ ⎥ =⎢ ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥⎣ ⎦⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦

∑ ∑ ∑ ∑

∑ ∑ ∑ ∑

∑ ∑ ∑

Kasus

Perhatikan data-data reaksi non-isotermal suatu reaksi reversibel berikut ini: rA P⎯⎯→

Tabel 5.3 Data laju reaksi

CA(mol/liter) Temperatur (K) Laju reaksi (mol/liter.s)

1

0.023

1.15

0.87

1.05

0.75

0.55

0.65

373

395

365

400

405

388

410

380

1.508

2.936

1.293

3.242

4.566

1.899

2.780

1.255

Anggap reaksi tersebut memenuhi model persamaan laju sbb:

0 expn Er k CRT−⎛ ⎞= ⎜ ⎟

⎝ ⎠

Perkirakan harga k0, E dan n dari data-data yang tersedia.

Jawaban.

01ln ln lnr n C E k

RT−⎛ ⎞= + +⎜ ⎟

⎝ ⎠

lni iy r= 1, lni ix C= 2,1

ii

xRT

= −

Page 74: Buku Komprostek

Bab 5 Regresi Linier dan Non Linier

Halaman 71 dari 101

% multivariabel

clear

clc

CA = [1,0.023,1.15,0.87,1.05,0.75,0.55,0.65]; %mol/liter

T = [373,395,365,400,405,388,410,380]; %K

r = [1.508,2.936,1.293,3.242,4.566,1.899,2.780,1.255];%mol/liter.s

y = log(r);

x1 = log(CA);

x2 =-1./(0.082*T);

A = [sum(x1.^2),sum(x1.*x2), sum(x1)

sum(x1.*x2),sum(x2.^2),sum(x2)

sum(x1),sum(x2),length(r)];

c = [sum(x1.*y)

sum(x2.*y)

sum(y)];

a = A\c

Hasil pada Command window

a =

-0.0108

320.9052

10.8467

5.4 Regresi Non Linier

Pada bagian sebelumnya kita telah mempelajari regresi persamaan tak

linier dengan terlebih dahulu melakukan linierisasi. Namun tidak semua

persamaan tak linier dapat memberikan parameter yang akurat dengan linierisasi.

Pada bagian ini kita akan mempelajari regresi persamaan tak linier sehingga kita

tidak lagi harus melinierisasikan persamaan tak linier. Perhatikan fungsi tak linier

sbb:

10

2

exp( )

ay ax a

⎛ ⎞= +⎜ ⎟+⎝ ⎠

a0, a1, dan a2 merupakan parameter.

Persamaan Antoine

Page 75: Buku Komprostek

Bab 5 Regresi Linier dan Non Linier

Halaman 72 dari 101

2

10

1 2

exp( )

n

ii i

aS y ax a=

⎛ ⎞⎛ ⎞= − +⎜ ⎟⎜ ⎟⎜ ⎟+⎝ ⎠⎝ ⎠∑

Turunan parsial terhadap a0

1 10 0

10 2 2

2 exp exp 0( ) ( )

n

ii i i

a aS y a aa x a x a=

⎛ ⎞⎛ ⎞ ⎛ ⎞∂= − − + + =⎜ ⎟⎜ ⎟ ⎜ ⎟⎜ ⎟∂ + +⎝ ⎠ ⎝ ⎠⎝ ⎠

Turunan parsial terhadap a1

1 10 0

11 2 2 2

12 exp exp 0( ) ( )

n

ii i i i

a aS y a aa x a x a x a=

⎛ ⎞⎛ ⎞⎛ ⎞ ⎛ ⎞⎛ ⎞∂= − − + + =⎜ ⎟⎜ ⎟⎜ ⎟ ⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟∂ + + +⎝ ⎠ ⎝ ⎠⎝ ⎠⎝ ⎠⎝ ⎠

Turunan parsial terhadap a2

( )1 10 0 1 2

12 2 2

2 exp exp ln( ) 0( ) ( )

n

i ii i i

a aS y a a a x aa x a x a=

⎛ ⎞⎛ ⎞⎛ ⎞ ⎛ ⎞∂= − − + + + =⎜ ⎟⎜ ⎟⎜ ⎟ ⎜ ⎟⎜ ⎟⎜ ⎟∂ + +⎝ ⎠ ⎝ ⎠⎝ ⎠⎝ ⎠

Pada akhirnya diperoleh sistem persamaan tak linier yang terdiri atas 3 buah

persamaan tak linier. Sistem persamaan tak linier dapat diselesaikan secara

simultan menggunakan metode Newton seperti yang telah dibahas pada bab 3

persamaan tak linier.

5.5 Subrutin MATLAB: nlinfit

[beta,R] = nlinfit(x,y,modelfun,beta0)

Kasus

Tabel 3.3 Tekanan uap dari Benzena (Perry)

Temperatur, T Tekanan, P oC (mmHg) -36.7 1 -19.6 5 -11.5 10 -2.6 20 7.6 40 15.4 60 26.1 100

Page 76: Buku Komprostek

Bab 5 Regresi Linier dan Non Linier

Halaman 73 dari 101

42.2 200 60.6 400 80.1 760

Persamaan polynomial 2 3

0 1 2 3( ) ... nnP x a a x a x a x a x= + + + + +

Persamaan Clapeyron

log( ) BP AT

= +

Persamaan Riedel

log( ) log( )BP A C T DTT

β= + + +

dengan harga 2β = .

a. Korelasikan data dengan berbagai orde persamaan polynomial dengan

menganggap temperatur absolut (Kelvin) adalah variabel bebas dan P

adalah variabel terikat.

b. Korelasikan data dengan menggunakan persamaan Clapeyron

c. Korelasikan data menggunakan persamaan Riedel

d. Diskusikan persamaan manakah yang terbaik mewakili data-data

eksperimental tersebut.

Jawab:

a. Polynom orde 2, 3, 4, 5 %polynom clear clc T =[-36.7,-19.6,-11.5,-2.6,7.6,15.4,26.1,42.2,60.6,80.1]+273;%K P = [1 5 10 20 40 60 100 200 400 760];%mmHg N =length(P); P2 = polyfit(T,P,2) Pmod2 = polyval(P2,T); R2 = Pmod2-P; Var2 = sum(R2.^2)/(N-2) P3 = polyfit(T,P,3) Pmod3 = polyval(P3,T); R3 = Pmod2-P; Var3 = sum(R3.^2)/(N-3) P4 = polyfit(T,P,4) Pmod4 = polyval(P4,T); R4 = Pmod2-P; Var4 = sum(R4.^2)/(N-4) P5 = polyfit(T,P,5) Pmod5 = polyval(P5,T); R5 = Pmod2-P; Var5 = sum(R5.^2)/(N-5) Hasil di Command Window

Page 77: Buku Komprostek

Bab 5 Regresi Linier dan Non Linier

Halaman 74 dari 101

P2 =

1.0e+003 *

0.0001 -0.0450 5.8560

Var2 =

1.0647e+003

Warning: Polynomial is badly conditioned. Remove repeated data

points

or try centering and scaling as described in HELP

POLYFIT.

> In polyfit at 81

In polinom at 9

P3 =

1.0e+004 *

0.0000 -0.0001 0.0146 -1.2519

Var3 =

1.2168e+003

Warning: Polynomial is badly conditioned. Remove repeated data

points

or try centering and scaling as described in HELP

POLYFIT.

> In polyfit at 81

In polinom at 11

P4 =

1.0e+004 *

0.0000 -0.0000 0.0001 -0.0248 1.5881

Var4 =

1.4196e+003

Warning: Polynomial is badly conditioned. Remove repeated data

points

or try centering and scaling as described in HELP

POLYFIT.

> In polyfit at 81

In polinom at 13

P5 =

1.0e+004 *

-0.0000 0.0000 -0.0000 0.0002 -0.0339 2.1109

Var5 =

Page 78: Buku Komprostek

Bab 5 Regresi Linier dan Non Linier

Halaman 75 dari 101

1.7035e+003

b. Persamaan Clapeyron %clapeyron.m function logP = clapeyron(a,T); logP = a(1)+a(2)./T; %Persamaan Clapeyron

clear clc T =[-36.7,-19.6,-11.5,-2.6,7.6,15.4,26.1,42.2,60.6,80.1]; P = [1 5 10 20 40 60 100 200 400 760]; logP = log10(P); a0 = [0.1 0.3]; [a R]=nlinfit(T,logP,'clapeyron',a0) N = length(P); z = length(a0); Variance = sum(R.^2)/(N-z)

Hasil di Command Window a =

1.6667 1.9173

R =

Columns 1 through 8

-1.6145 -0.8699 -0.5000 0.3718 -0.3169 -0.0131

0.2598 0.5889

Columns 9 through 10

0.9037 1.1902

Variance =

0.8124

c. Persamaan Riedel

%riedel.m

function logP = riedel(a,T)

logP = a(1)+a(2)./T+a(3)*log10(T)+a(4)*T.^2;

%run_riedel.m

clear

clc

T =[-36.7,-19.6,-11.5,-2.6,7.6,15.4,26.1,42.2,60.6,80.1]+273;%K

P =[1 5 10 20 40 60 100 200 400 760];%mmHg

Page 79: Buku Komprostek

Bab 5 Regresi Linier dan Non Linier

Halaman 76 dari 101

logP = log10(P); a0 = [1 1 1 1];

[a R] = nlinfit(T,logP,'riedel',a0)

N = length(P); z = length(a0);

Variance = sum(R.^2)/(N-4)

Hasil di command window a =

1.0e+003 *

0.2162 -9.2955 -0.0756 0.0000

R =

Columns 1 through 6

0.0107 -0.0236 -0.0113 0.0080 0.0251 0.0081

Columns 7 through 10

-0.0065 -0.0112 -0.0046 0.0054

Variance =

2.9689e-004

d. Pembahasan

Tugas

Nomor 1

Harga viskositas air (centipoise) telah diukur pada berbagai temperatur. Hasil dari

eksperimen disajikan dibawah ini. Menggunakan regresi linier ganda (multiple

regresi linier), carilah konstanta-konstanta yang sesuan dengan persamaan

berikut:

21 2 3

1 k k T k Tμ= + +

T(oC) 10 20 30 40 50 60 70

μ (cp) 1.308 1.005 0.801 0.656 0.549 0.469 0.406

Nomor 2

Sebuah reaksi heterogen diketahui terjadi pada laju yang dapat digambarkan oleh

model Langmuir-Hinshelwood berikut ini:

Page 80: Buku Komprostek

Bab 5 Regresi Linier dan Non Linier

Halaman 77 dari 101

12(1 )

A

A A R R

k PrK P K P

=+ +

Dari pengukuran laju awal, k1 ditentukan sebagai 0.015 mol/s.g-cat.atm, pada 400

K. Dengan menggunakan data laju reaksi pada 400 K, perkirakan nilai dari KA

dan KR.

PA 1 0.9 0.8 0.7 0.6 0.5 0.4

PR 0 0.1 0.2 0.3 0.4 0.5 0.6

r 3.4x10-5 3.6x10-5 3.7x10-5 3.9x10-5 4.0x10-5 4.1x10-5 4.2x10-5

________________________________o0o______________________________

Page 81: Buku Komprostek

Bab 6 Integrasi

Halaman 78 dari 101

Bab 6 Integrasi

(Under construction)

6.1 Metode Trapesium

Gambar 5.1 Metode trapesium

( ) ( )( ) ( )2

b

a

f a f bf x dx b a += −∫

6.2 Metode Simpson

( )2

0 1 20

( ) ( ) 4 ( ) ( )3

x

x

hf x dx f x f x f x= + +∫

6.3 Metode Romberg

6.4 Metode Gauss

f(x)

x

f(a)

f(b)

a b

Page 82: Buku Komprostek

Bab 6 Integrasi

Halaman 79 dari 101

6.5 Subrutin MATLAB: trapz

Subrutin trapz menghitung harga integral dari nilai-nilai diskrit x dan y

dengan menggunakan metode Trapezoidal.

Z = trapz(x,y) Keterangan:

x dan y adalah vektor

Kasus 1

Dua buah besaran yang sangat penting dalam pembelajaran proses-proses

fermentasi adalan laju pembebasan CO2 dan laju pengambilan O2. Hal tersebut

dihitung dari analisis eksperimental dari gas masuk dan gas keluar fermentor, dan

laju alir, temperatur dan tekanan dari gas-gas ini. Rasio pembebasan CO2 terhadap

pengambilan O2 menghasilkan RQ (Respiratory Quotient) yang merupakan

barometer aktivitas metabolik dari mikroorganisme. Laju di atas dapat

dintegrasikan untuk memperoleh jumlah keseluruhan dari CO2 yang diproduksi

dan oksigen yang dikonsumsi selama fermentasi. Tabel berikut menunjukan laju

respirasi dihtung dari fermentasi Penicillium chrysogenum yang menghasilkan

antibiotik penicilin.

Tabel 5.1 Laju pembebasan CO2 dan laju pengambilan O2

Waktu fermentasi Laju Pembebasan CO2 Laju pengambilan O2 (jam) (g/jam) (g/jam) 140 15.72 15.49 141 15.53 16.16 142 15.19 15.35 143 16.56 15.13 144 16.21 14.20 145 17.39 14.23 146 17.36 14.29 147 17.42 12.74 148 17.60 14.74 149 17.75 13.68 150 18.95 14.51

Page 83: Buku Komprostek

Bab 6 Integrasi

Halaman 80 dari 101

Hitunglah jumlah keseluruhan CO2 yang dihasilkan dan Oksigen yang dikonsumsi

selama fermentasi berlangsung.

%Respiratory_Quotient

clear

clc

t = [140:150]; % Waktu fermentasi

dCO2dt = [15.72,15.53,15.19,16.56,16.21,17.39,17.36,17.42,...

17.60,17.75,18.95]; % Laju pembebasan CO2

dO2dt = [15.49,16.16,15.35,15.13,14.20,14.23,14.29,12.74,...

14.74,13.68,14.51]; % Laju pengambilan O2

CO2 = trapz(t,dCO2dt)

O2 = trapz(t,dO2dt)

RQ = CO2/O2

6.6 Subrutin MATLAB: quad

Q = quad(fungsi,A,B)

Kasus 2

Harga kapasitas panas suatu material dapat dievaluasi dengan menggunakan

persamaan sbb:

4 7 2( ) 0.132 1.56x10 2.64x10pc T T T− −= + + cal/goC

Hitunglah besar entalpi material sebanyak 1 gram pada rentang temperatur -100 oC s.d 200 oC dengan rumus sbb:

2

1

( )T

T

H m c T dTΔ = ∫

Page 84: Buku Komprostek

Bab 6 Integrasi

Halaman 81 dari 101

%kapasitas.m

function cp = kapasitas(T)

cp=0.132+1.56e-4.*T+2.64e-7*T.^2;

%runkapasitas.m

Q = quad('kapasitas',-100,200)

>> runkapasitas

Q =

42.7320

6.7 Subrutin MATLAB: dblquad

Subrutin dblquad digunakan untuk menghitung integral lipat dua.

q = dblquad(fun,xmin,xmax,ymin,ymax)

%integrnd.m

function z = integrnd(x, y)

z = y*sin(x)+x*cos(y);

%run_integrnd.m

Q = dblquad(@integrnd,pi,2*pi,0,pi);

6.8 Subrutin MATLAB: triplequad

Subrutin triplequad digunakan untuk menghitung integral lipat tiga.

triplequad(fun,xmin,xmax,ymin,ymax,zmin,zmax)

%intgrnd3

function f = integrnd3(x,y,z)

f = y*sin(x)+z*cos(x);

%run_integrnd3

Q = triplequad('integrnd3', 0, pi, 0, 1, -1, 1)

Page 85: Buku Komprostek

Bab 6 Integrasi

Halaman 82 dari 101

Tugas

Nomor 1

Lakukan komputasi yang sama seperti pada kasus 1, namun dengan massa

material 2000 gram dan temperatur -200 s.d 100 oC.

Nomor 2

Profil kecepatan dari partikel pasir unggun terfluidakan dengan udara pada

kecepatan 1 m/s diberikan pada tabel Tabel 1 dan Tabel 2. Hitunglah kecepatan

gradien aksial ( /zV z∂ ∂ , /rV z∂ ∂ ). Plot rata-rata gradien z versus posisi radial dan

bandingkanlah besar ordenya.

Posisi radial (mm) 4.7663 14.2988 23.8313 33.3638 42.8962 52.4288 61.9612 71.4938

25 -13.09 -37.66 -52.41 -54.44 -58.21 -41.35 -23.97 -7.2175 -15.81 -15.99 -27.81 -25.37 -22.3 -11.1 -2.26 1.63

125 1.77 1.17 3.45 5.5 1.63 -1.79 -0.26 1.09175 1.43 -0.57 4.86 2.44 0.2 -0.65 0.35 2.21225 -5.07 -7.26 -18.43 -18.17 -17.3 -10 -2.65 0.29275 13.11 16.51 19.32 21 20.29 15.64 0.98 -9.81325 11.7 34.5 58.3 71.44 73.49 64.88 50.91 19.14375 8.18 25.29 31.18 37.07 30.05 2.61 -17.06 -15.88425 3.35 -0.39 -18 -42.22 -57.42 -82.36 -69.34 -17.35

Posisi aksial, mm

475 -27.05 -22.25 -49.45 -79.45 -110.08 -116.62 -128.25 -76.49

Posisi radial (mm) 4.7663 14.2988 23.8313 33.3638 42.8962 52.4288 61.9612

25 93.33 74.12 69.35 43.68 18.8 -6.9 -21.5675 244.73 217.07 177.09 103.79 16.87 -39.74 -74.91

125 304.34 260.58 201.15 118.82 22.76 -52.23 -82.86175 308.81 281.67 209.18 133.9 53.88 -51.92 -98.47225 379.66 328.52 279.3 165.61 53.25 -65.97 -133.92275 416.08 366.96 314.09 203.08 44.97 -76.93 -160.04325 184.46 157.25 111.99 63.23 1.03 -63.66 -71.23375 55.74 -12.28 -18.74 -47.26 -42.1 -9.95 125.57425 -67.81 -118.77 -108.46 -89.68 9.24 61.78 175.43

Posisi aksial, mm

475 -136.25 -32.33 -65.5 -111.72 38.74 115.6 84.88

Page 86: Buku Komprostek

Bab 7 Persamaan Diferensial Biasa

Halaman 83 dari 101

Bab 7 Persamaan Diferensial Biasa (PDB)

Definisi PDB

Persamaan diferensial biasa adalah persamaan diferensial yang terdiri atas fungsi

turunan satu buah variabel bebas.

Contoh:

Persamaan gaya geser (shear stress) pada aliran fluida dirumuskan sbb.

xzd gdxτ ρ=

Perhatikan PDB hanya memiliki satu buah variabel bebas yaitu x dan satu variabel

terikat yaitu τxz.

Aplikasi PDB

PDB banyak ditemukan pada pemodelan-pemodelan teknik reaktor, kinetika

reaksi kimia, peristiwa-peristiwa perpindahan dll.

Klasifikasi PDB

Berdasarkan ordenya PDB terdiri atas tiga jenis (paling umum ditemukan dalam

permasalahan teknik kimia).

Orde 1 dy y kxdx

+ =

Orde 2 2

2

d y dyy kxdx dx

+ =

Orde 3 23 2

3 2

d y d y dya b kxdx dx dx

⎛ ⎞+ + =⎜ ⎟⎝ ⎠

Berdasarkan ordenya PDB terdiri atas dua jenis.

1. Linier

Persamaan umum PDB linier dirumuskan sbb:

Page 87: Buku Komprostek

Bab 7 Persamaan Diferensial Biasa

Halaman 84 dari 101

( ) ( ) ( ) ( ) ( )1

1 11 ...n n

o n nn n

d y d y dyb x b x b x b x y R xdx dx dx

−−+ + + + =

2. Taklinier

PDB yang tidak memenuhi persamaan umum PDB linier di muka

dikelompokan ke dalam PDB tak linier.

Berdasarkan kondisi batasnya PDB terdiri atas dua jenis.

1. PDB bernilai awal 2

2

(0) 2, (0) 1

y yxx

yyx

∂= −

∂∂

= =∂

harga samax

2. PDB bernilai batas 2

2

(0) 2, (1) 1

y yxx

y y

∂= −

∂= =

harga x berbeda

Transformasi ke Dalam Bentuk Kanonikal

Persamaan diferensial biasa linier orde 1 bernilai awal dapat diselesaikan dengan

menggunakan metode matrik eksponensial dan metode eigen yang akan dibahas

di depan nanti. PDB linier orde 2, 3 bernilai awal dapat pula diselesaikan dengan

metode-metode tersebut, asalkan PDB tersebut ditransformsikan terlebih dahulu

ke dalam PDB orde 1. Berikut ini penjelasan teknik transformasi dari PDB

berorde tinggi menjadi PDB berorde 1.

Contoh 1: 4 3 2

4 3 25 2 6 3 0d z d z d z dz zdt dt dt dt

+ − − + =

Page 88: Buku Komprostek

Bab 7 Persamaan Diferensial Biasa

Halaman 85 dari 101

Transformasi PDB orde 4 linier tersebut akan menghasilkan 4 buah PDB linier

orde 1.

Misalkan:

1

12

22

32

33

43

44

4

z ydydz y

dt dtdyd z y

dt dtdyd z y

dt dtdyd z

dt dt

=

= =

= =

= =

=

12

23

34

41 2 3 43 6 2 5

dy ydtdy ydtdy ydtdy y y y ydt

=

=

=

= − + + −

Contoh 2: 4 3 2

4 3 25 2 6 3 td z d z d z dz z edt dt dt dt

−+ − − + =

Transformasi PDB orde 4 linier tersebut akan menghasilkan 5 buah PDB linier

orde 1.

Misalkan:

1

12

22

32

33

43

44

4

5

55

t

t

z ydydz y

dt dtdyd z y

dt dtdyd z y

dt dtdyd z

dt dty edy e ydt

=

= =

= =

= =

=

=

= − = −

12

23

34

41 2 3 4 5

55

3 6 2 5

dy ydtdy ydt

dy ydtdy y y y y ydt

dy ydt

=

=

=

= − + + − +

= −

Maka PDB orde 4 dapat dituliskan sbb:

Penulisan dalam bentuk matrik sbb:

1

2

3

4

1

2

3

4

0 1 0 00 0 1 00 0 0 13 6 2 5

dydt

dydt

dydt

dydt

yyyy

⎡ ⎤ ⎡ ⎤⎡ ⎤⎢ ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥=⎢ ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥− − ⎢ ⎥⎢ ⎥ ⎣ ⎦ ⎣ ⎦⎣ ⎦

Maka PDB orde 4 dapat dituliskan sbb:

Penulisan dalam bentuk matrik sbb:

Page 89: Buku Komprostek

Bab 7 Persamaan Diferensial Biasa

Halaman 86 dari 101

Contoh 3: 33 2

23 2 2 0d z d z dzz z

dx dx dx⎛ ⎞+ − − =⎜ ⎟⎝ ⎠

Transformasi PDB orde 3 taklinier.

Misalkan:

1

12

22

32

33

3

z ydydz y

dx dxdyd z y

dx dxdyd z

dx dx

=

= =

= =

=

12

23

2 331 1 3 22

dy ydxdy ydxdy y y y ydx

=

=

= − +

PDB taklinier tidak dapat dituliskan dalam bentuk matrik.

1

2

3

4

5

1

2

3

4

5

0 1 0 0 00 0 1 0 00 0 0 1 03 6 2 5 1

0 0 0 0 1

dydt

dydt

dydt

dydt

dydt

yyyyy

⎡ ⎤ ⎡ ⎤⎡ ⎤⎢ ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥=⎢ ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥ − − ⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥−⎣ ⎦ ⎣ ⎦⎢ ⎥⎣ ⎦

Maka PDB orde 3 taklinier dituliskan sbb:

Page 90: Buku Komprostek

Bab 7 Persamaan Diferensial Biasa

Halaman 87 dari 101

Contoh 4:

3 2

3 23 2 5 0d z d z dzt t z

dt dt dt+ − + =

Transformasi PDB orde 3 taklinier.

Misalkan:

1

12

22

32

33

3

4

4 1

z ydydz y

dt dtdyd z y

dt dtdyd z

dt dty tdydt

=

= =

= =

=

=

=

12

23

2 331 4 2 4 3

4

5

1

dy ydtdy ydt

dy y y y y ydtdydt

=

=

= − + −

=

PDB taklinier tidak dapat dituliskan dalam bentuk matrik.

Nilai dan Vektor Eigen

( )

[ ] [ ]

[ ] [ ]

[ ]

0

0

k kk

k kk

kk

Aw w

Aw w

A I w

λ

λ

λ

=

− =

− =

( ) 0kA Iλ− = atau [ ] 0kw ≠

( )det 0kA Iλ− =

Keterangan:

A adalah sebuah matrik kubus

kλ adalah nilai eigen

[ ]kw adalah vektor eigen

Maka PDB orde 3 taklinier dituliskan sbb:

Vektor eigen tidak bernilai nol

Page 91: Buku Komprostek

Bab 7 Persamaan Diferensial Biasa

Halaman 88 dari 101

Berikut ini akan dipaparkan cara menghitung nilai dan vektor eigen secara

analitik.

Kasus 6

Tentukanlah vektor dan nilai eigen dari matrik A berikut ini dengan menggunakan

cara analitik.

1 0 30 2 13 1 1

A⎡ ⎤⎢ ⎥= ⎢ ⎥⎢ ⎥−⎣ ⎦

Jawaban:

( )( )

[ ] 0

det 0

kk

k

A I w

A I

λ

λ

− =

− =

(1 ) 0 30 (2 ) 1 03 1 ( 1 )

λλ

λ

−− =− − −

(1 ) 0 3 (1 ) 00 (2 ) 1 0 (2 ) 03 1 ( 1 ) 3 1

λ λλ λ

λ

− −− − =− − − −

2

3 2

3 2

(1 )(2 )( 1 ) (3)(2 )(3) (1 ) 0(1 )( 2) 9(2 ) (1 ) 0

2 2 18 9 1 02 11 21 0

λ λ λ λ λ

λ λ λ λλ λ λ λ λ

λ λ λ

− − − − − − − − =

− − − − − − =

− − + − + − + =

− + + − =

Dengan menggunakan subrutin roots MATLAB diperoleh harga akar-akar

polinom pangkat 3 (nilai eigen) tersebut, yaitu:

1 2 33.4211 3.2880 1.8669λ λ λ= = − =

Kembali ke persamaan awal.

( ) [ ] 0kkA I wλ− =

1

2

3

(1 ) 0 30 (2 ) 1 03 1 ( 1 )

www

λλ

λ

−⎡ ⎤ ⎡ ⎤⎢ ⎥ ⎢ ⎥− =⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥− −⎣ ⎦ ⎣ ⎦

Page 92: Buku Komprostek

Bab 7 Persamaan Diferensial Biasa

Halaman 89 dari 101

Karena vektor eigen (w) tidak bernilai nol, maka kita misalkan harga w3 sebagai

basis bernilai 1.

1 3

2 3

(1 ) 3 0(2 ) 0

w ww w

λλ

− + =

− + =

Misalkan w3 = 1, maka system persamaan linier menjadi

1

2

(1 ) 3(2 ) 1

ww

λλ

− = −− = −

1

2

3

3(1 )

1(2 )1

w

w

w

λ

λ

−=

−−

=−

=

Masukan harga nilai eigen

Untuk:

1 3.4211 λ = 2 3.2880λ = − 3 1.8669λ =

[1]

1.23910.7037

1w

⎡ ⎤⎢ ⎥= ⎢ ⎥⎢ ⎥⎣ ⎦

[2]

0.69960.1891

1w

−⎡ ⎤⎢ ⎥= −⎢ ⎥⎢ ⎥⎣ ⎦

[3]

3.46077.5131

1w

⎡ ⎤⎢ ⎥= −⎢ ⎥⎢ ⎥⎣ ⎦

Normalisasi vektor-vektor eigen tersebut dengan menggunakan norma ke-2.

( )[1] 2 2 2

21.2391 0.7037 1 1.741w = + + =

[1]

1.23911.741 0.7117

0.7037 0.40421.7410.57441

1.741

w

⎡ ⎤⎡ ⎤⎢ ⎥⎢ ⎥⎢ ⎥= = ⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥ ⎣ ⎦

⎢ ⎥⎣ ⎦

( )[2] 2 2 2

20.6996 0.1891 1 1.235w = + + =

[2]

0.69961.235 0.5665

0.1891 0.15311.2350.80971

1.235

w

−⎡ ⎤−⎡ ⎤⎢ ⎥⎢ ⎥⎢ ⎥−= = −⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥ ⎣ ⎦

⎢ ⎥⎣ ⎦

Page 93: Buku Komprostek

Bab 7 Persamaan Diferensial Biasa

Halaman 90 dari 101

( )[3] 2 2 2

23.4607 7.5131 1 8.332w = + + =

[3]

3.46078.332 0.4153

7.5131 0.90178.3320.12001

8.332

w

⎡ ⎤⎡ ⎤⎢ ⎥⎢ ⎥⎢ ⎥−= = −⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥ ⎣ ⎦

⎢ ⎥⎣ ⎦

Jadi nilai dan vektor eigen matrik A adalah

3.42113.2880

1.8669λ

⎡ ⎤⎢ ⎥= −⎢ ⎥⎢ ⎥⎣ ⎦

0.7117 0.5665 0.41530.4042 0.1531 0.90170.5744 0.8097 0.1200

w−⎡ ⎤

⎢ ⎥= − −⎢ ⎥⎢ ⎥⎣ ⎦

Catatan: Perkalian konstanta dengan vektor eigen tidak akan mengubah esensi dari vektor eigen

tersebut. Untuk persoalan ini harga vektor eigen yang diperoleh menggunakan MATLAB (sekejap

lagi akan dibahas) adalah hasil perkalian antara -1 dengan vektor eigen yang telah diperoleh pada

perhitungan secara analitik.

MATLAB telah menyediakan rutin untuk menghitung nilai dan vektor eigen

matriks A yaitu eig.

Penulisan perintahnya pada MATLAB command window sbb:

[ , ] ( )V D eig A=

Sebagai contoh berikut ini akan ditampilkan perintah pada command window

untuk menghitung nilai dan vektor eigen dari matrik A yang telah diselesaikan

secara analitik sebelumnya.

>> [V,D]=eig(A)

V =

-0.5665 -0.4153 -0.7118

-0.1531 0.9018 -0.4042

0.8097 -0.1200 -0.5744

Vektor eigen Nilai eigen

Page 94: Buku Komprostek

Bab 7 Persamaan Diferensial Biasa

Halaman 91 dari 101

D =

-3.2880 0 0

0 1.8669 0

0 0 3.4211

Tugas 6

Transformasi kanonikal PDB dan analisis eigen

Nomor 1

Hitunglah nilai dan vektor eigen dari matrik A berikut ini. Bandingkan hasilnya

dengan menggunakan subrutin eig di MATLAB.

Nomor 2

Ubahlah persamaan differensial berikut ke dalam bentuk kanonikal.

a. 2

2 3 10 0d x dx xdt dt

− − =

b. 3 2

3 23 2 10 0d T d T dTt t T

dt dt dt+ − − =

c. 23 2

33 2 9 0d y d y dyy y

dx dx dx⎛ ⎞− − + =⎜ ⎟⎝ ⎠

1 2 32 5 13 1 4

A⎡ ⎤⎢ ⎥= ⎢ ⎥⎢ ⎥⎣ ⎦

Page 95: Buku Komprostek

Bab 7 Persamaan Diferensial Biasa

Halaman 92 dari 101

Solusi Persamaan Differensial Biasa Linier bernilai awal

1. Metode matriks eksponensial

dy Aydt

= ( ) 00y y=

A adalah matriks persegi (m x m) dan y adalah vektor kolom (m x 1)

Integrasikan persamaan diferensial linier tersebut.

0 0

y t

y

dy A dty=∫ ∫

0

ln y Aty

=

0eAty y=

Fungsi matriks eksponensial dapat dituliskan sebagai berikut: 2 2 3 3

exp(A ) ...2! 3!

t tt t= + + + +A AI A

Contoh soal:

Kasus 7

Berikut ini adalah PDB linier orde 2. 2

2 3 10 0d x dx xdt dt

− − =

Dengan nilai awal pada t = 0, sbb:

0

(0) 3

15

xdxdt

=

=

Selesaikan PDB tercetak menggunakan metode matrik eksponensial dalam

interval 0 ≤ t ≤ 1.0 (Langkah integrasi 0.1).

Page 96: Buku Komprostek

Bab 7 Persamaan Diferensial Biasa

Halaman 93 dari 101

Jawaban : 2

2

1

12

22

2 12

3 10 0

3

d x dx xdt dtx y

dydx ydt dt

dyd x y ydt dt

− − =

=

= =

= = +

dy Aydt

=

Integrasikan.

0eAty y= 0

315

y⎡ ⎤

= ⎢ ⎥⎣ ⎦

Rentang integrasi 0 ≤ t ≤ 1.0. Langkah integrasi 0.1

t 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0

0

1 3

2

3e

15

tt ty

y

⎡ ⎤⎢ ⎥⎣ ⎦

⎛ ⎞⎡ ⎤ ⎡ ⎤⎜ ⎟=⎢ ⎥ ⎢ ⎥⎜ ⎟ ⎣ ⎦⎣ ⎦ ⎝ ⎠

Dengan mensubstitusikan t = 0 s.d 1 (langkah integrasi 0.1) selesailah persoalan

ini.

Berikut ini pemrograman MATLAB-nya.

kasus7.m

1

1

22

0 11 3

dyydtydy

dt

⎡ ⎤⎢ ⎥ ⎡ ⎤⎡ ⎤

=⎢ ⎥ ⎢ ⎥⎢ ⎥⎣ ⎦ ⎣ ⎦⎢ ⎥

⎢ ⎥⎣ ⎦

dydt

A y

Page 97: Buku Komprostek

Bab 7 Persamaan Diferensial Biasa

Halaman 94 dari 101

>>kasus7a t = 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000 x = 3.0000 4.7688 7.2122 10.5945

clear clc A = [0 1 1 3]; % Nilai awal yo = [3;15]; t = [0:0.1:1]'; for i = 1:length(t) y(i,:) = expm(A*t(i))*yo; end %kurva t-x x = y(:,1) plot(t,x) xlabel('t') ylabel('x') grid on

Page 98: Buku Komprostek

Bab 7 Persamaan Diferensial Biasa

Halaman 95 dari 101

15.2839 21.7922 30.8319 43.3941 60.8578 85.1416 118.9150

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

20

40

60

80

100

120

t

x

2. Metode nilai-vektor eigen

Harga teA dapat dihitung dengan menggunakan bantuan nilai dan vektor eigen.

1V Vt Dte e −=A

Sehingga solusi PDB linier menjadi.

10V VDty e y−⎡ ⎤= ⎣ ⎦

Untuk lebih memahami metode nilai-vektor eigen berikut ini disajikan

penyelesaian kasus 7 dengan menggunakan metode nilai-vektor eigen.

Langkah awal sama dengan metode matriks eksponensial.

0 11 3

A ⎡ ⎤= ⎢ ⎥⎣ ⎦

Page 99: Buku Komprostek

Bab 7 Persamaan Diferensial Biasa

Halaman 96 dari 101

Dengan menggunakan rutin eig MATLAB diperoleh harga nilai (D) dan vektor

eigen (V).

0.9571 0.2898 0.3028 0 dan

0.2898 0.9571 0 3.3028V D

− −⎡ ⎤ ⎡ ⎤= =⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦

Substitusikan matriks V dan D ke dalam persamaan

10V VDty e y−⎡ ⎤= ⎣ ⎦

10.3028

0.3028

0.9571 0.2898 0.9571 0.2898 30

0.2898 0.9571 0.2898 0.9571 150

t

t

ee

−−⎡ ⎤− −⎡ ⎤⎡ ⎤ ⎡ ⎤ ⎡ ⎤= ⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎢ ⎥⎣ ⎦ ⎣ ⎦ ⎣ ⎦⎣ ⎦⎣ ⎦

y

Dengan mensubstitusikan t = 0 s.d 1 (langkah integrasi 0.1) selesailah persoalan

ini.

Berikut ini pemrograman MATLAB-nya.

>> A=[0 1 1 3] A = 0 1 1 3 >> [V,D]=eig(A) V = -0.9571 0.2898 0.2898 0.9571 D = -0.3028 0 0 3.3028

Page 100: Buku Komprostek

Bab 7 Persamaan Diferensial Biasa

Halaman 97 dari 101

kasus7.m

Eksekusi program kasus7.m (lanjutan) Hasil di Command Window :

clear clc A = [0 1 1 3]; % Nilai awal yo = [3;15]; a=length(yo); % Vektor dan Nilai eigen [V,D]=eig(A); % Rentang integrasi t=[0:0.1:1]' x =zeros(length(t),a); for i = 1 : length(t) y = (V*diag(exp(diag(D)*t(i)))*inv(V))*yo; x(i,:) = y; end x % kurva t-x plot(t,x(:,1)) xlabel('t') ylabel('x') grid on

>>kasus7 t = 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000

x = 3.0000 15.0000 4.7688 20.6902 7.2122 28.6127 10.5945 39.6409 15.2839 54.9901 21.7922 76.3512 30.8319 106.0768 43.3941 147.4403 60.8578 204.9959 85.1416 285.0806 118.9150 396.5110

Page 101: Buku Komprostek

Bab 7 Persamaan Diferensial Biasa

Halaman 98 dari 101

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

20

40

60

80

100

120

t

x

Tugas 7

Metode eigen untuk menyelesaikan sistem persamaan diferensial biasa linier

Suatu bahan radioaktif meluruh berdasarkan mekanisme reaksi berantai

sbb: 1 2k kA B C⎯⎯→ ⎯⎯→

k1 dan k2 adalah konstanta laju reaksi. B adalah produk intermediate dan C

adalah produk akhir. Persamaan laju reaksinya sbb:

CA, CB, dan CC adalah konsentrasi

bahan A, B, dan C.

k1= 3 s-1 , k2= 1 s-1.

Konsentrasi mula-mula bahan sbb:

CA(0)=1 mol/m3 CB(0)=0 CC(0)=0

1

1 2

2

AA

BA B

CB

dC k Cdt

dC k C k Cdt

dC k Cdt

= −

= −

=

Page 102: Buku Komprostek

Bab 7 Persamaan Diferensial Biasa

Halaman 99 dari 101

a) Menggunakan metode matriks eksponensial dan metode eigen tentukan

konsentrasi CA, CB, dan CC sebagai fungsi waktu.

b) Hitunglah konsentrasi CA, CB, dan CC saat t = 1 s dan t = 10 s.

c) Buatlah profil konsentrasi A, B, dan C.

Sistem PDB tak linier bernilai awal

Sistem PDB tak linier bernilai awal banyak ditemukan pada kajian-kajian teknik

kimia berikut ini:

1. Neraca massa dan energi yang melibatkan reaksi kimia.

2. Sistem dinamik nyata (tak ideal).

3. Hampir seluruh peristiwa perpindahan dalam teknologi proses.

Solusi PDB tak linier bernilai awal

1. Metode Euler

1 1

1

( , ) i i i i

i i

y y y ydy f x ydx x x h

+ +

+

− −= = =

1 ( , )i i i iy y hf x y+ = +

Harga baru = harga lama + ukuran langkah x slope

2. Metode Runge-Kutta orde ke-2 (Crank-Nicholson)

( ) ( )( )( )

311 1 22

1

2 1

,

,

i i

i i

i i

y y k k O h

k hf x y

k hf x h y k

+ = + + +

=

= + +

3. Metode Runge-Kutta orde ke-3

Kesalahan pemotongan lokal

( ) ( )21 ,i i i iy y hf x y O h+ = + +

Page 103: Buku Komprostek

Bab 7 Persamaan Diferensial Biasa

Halaman 100 dari 101

( ) ( )( )

( )

411 1 2 36

1

12

3 2 1

4

,

,2 2, 2

i i

i i

i i

i i

y y k k k O h

k hf x y

khk hf x y

k hf x h y k k

+ = + + + +

=

⎛ ⎞= + +⎜ ⎟⎝ ⎠

= + + −

3. Metode Runge-Kutta orde ke-4

( ) ( )( )

( )

511 1 2 3 46

1

12

23

4 3

2 2

,

,2 2

,2 2,

i i

i i

i i

i i

i i

y y k k k k O h

k hf x y

khk hf x y

khk hf x y

k hf x h y k

+ = + + + + +

=

⎛ ⎞= + +⎜ ⎟⎝ ⎠⎛ ⎞= + +⎜ ⎟⎝ ⎠

= + +

4. Metode Runge-Kutta orde ke-5

( ) ( )( )

611 1 3 4 5 690

1

12

1 23

34

32 45

3 52 46

7 32 12 32 7

,

,2 2

3,4 16 16

,2 2

63 93 ,4 16 16 16

6 84 121,7 7 7 7 7

i i

i i

i i

i i

i i

i i

i i

y y k k k k k O h

k hf x y

khk hf x y

k khk hf x y

khk hf x y

kk khk hf x y

k kk kkk hf x h y

+ = + + + + + +

=

⎛ ⎞= + +⎜ ⎟⎝ ⎠⎛ ⎞= + + +⎜ ⎟⎝ ⎠⎛ ⎞= + +⎜ ⎟⎝ ⎠⎛ ⎞= + − + +⎜ ⎟⎝ ⎠⎛= + + + + − +⎝

⎞⎜ ⎟

Page 104: Buku Komprostek

Bab 7 Persamaan Diferensial Biasa

Halaman 101 dari 101

5. Metode Runge-Kutta-Fehlberg

( )( )( )( )( )

16 6656 28561 9 21 1 3 4 5 6135 12825 56430 50 55

1

2 14 4

3 3 93 1 28 8 32

12 1932 7200 72964 1 2 313 2197 2197 2197

439 3680 8455 1 2 3216 513 41

,

,

,

,

, 8

i i

i i

h hi i

h h hi i

h h h hi i

h h hi i

y y h k k k k k

k f x y

k f x y k

k f x y k k

k f x y k k k

k f x h y k hk k

+ = + + + − +

=

= + +

= + + +

= + + − +

= + + − + −( )( )( )

404

8 3544 1859 116 1 2 3 4 52 27 2565 4104 40

128 21971 1 21 1 3 4 5 6360 4275 75240 50 55

, 2h h h h hi i

i

k

k f x y k hk k k k

d h k k k k k+

= + − + − + −

= − − + +

Algoritma dan pemrograman metode euler

Algoritma

1. Mulai

2. Definisikan fungsi f(x,y) [turunan ke-1]

3. Tetapkan nilai awal, x awal, langkah integrasi (h), dan x akhir.

4. Hitung panjang vektor x

5. Hitung 1 ( , )i i i iy y hf x y+ = − untuk i = 1 s.d (panjang vektor-1)

6. selesai

Page 105: Buku Komprostek

Bab 7 Persamaan Diferensial Biasa

Halaman 102 dari 101

Algorima dalam diagram alir

Hitung panjang vector x

1 ( , )i i i iy y hf x y+ = −

untuk i = 1 s.d (panjang vektor x -1)

Mulai

Definisikan fungsi f(x,y)

Masukan harga yo, xo, h, xn

Selesai

function [x y] = eulerku(dfungsi,yo,xo,dx,xn) x = xo:dx:xn a = length(x) y(1) = yo for i = 1 : (a-1) y(i+1)= y(i) + dx*feval(dfungsi,x(i),y(i)) end

eulerku.m

Page 106: Buku Komprostek

Bab 7 Persamaan Diferensial Biasa

Halaman 103 dari 101

>> [x y] = eulerku('dcoba',0,0,1,10) x = Columns 1 through 9 0 1 2 3 4 5 6 7 8 Columns 10 through 11 9 10 y = Columns 1 through 9 0 0 2 6 12 20 30 42 56 Columns 10 through 11 72 90

Subrutin dalam MATLAB untuk solusi PDB bernilai awal

Pada bagian ini akan dijelaskan subrutin ode23 dalam MATLAB untuk

menyelesaikan PDB bernilai awal dengan karakter linier, taklinier, tunggal

maupun jamak (sistem).

function f = dcoba(x,y) f = 2*x

dcoba.m

Page 107: Buku Komprostek

Bab 7 Persamaan Diferensial Biasa

Halaman 104 dari 101

Cara penulisan sintaks ode23

Misal:

3 22 12 20 8.5dy x x xdx

= − + − + dengan kondisi awal y = 1 pada x = 0 dan rentang

integrasi dari x = 0 s.d x = 4.

Berikut ini pemrograman MATLAB-nya.

[t,y] = ode23(‘fungsiPDB’,rentang_t,y0)

Fungsi PDB yang akan dievaluasi

Rentang integrasi

Harga awal

%pdb.m function dydx = pdb(x,y) dydx = -2*x^3+12*x^2-20*x+8.5;

%runpdb.m clear clc rentang_x = [0 4]; y0 = 1; [x,y] = ode23('pdb',rentang_x,y0) plot(x,y) xlabel('x') ylabel('y')

Page 108: Buku Komprostek

Bab 7 Persamaan Diferensial Biasa

Halaman 105 dari 101

Eksekusi di command window

0 0.5 1 1.5 2 2.5 3 3.5 41

1.5

2

2.5

3

3.5

4

4.5

5

x

y

y = 1.0000 1.0791 1.4488 2.1817 2.7701 3.1483 3.3031 3.2609 3.0709 2.7893 2.4787 2.2006 2.0131 1.9808 2.2494 2.6978 3.2901 3.8780 4.3716 4.6749 4.6862 4.3176 3.4933 3.0015

x = 0 0.0094 0.0565 0.1712 0.3046 0.4524 0.6111 0.7777 0.9511 1.1319 1.3196 1.5150 1.7217 1.9512 2.2503 2.4902 2.7301 2.9516 3.1622 3.3655 3.5614 3.7483 3.9277 4.0000

Page 109: Buku Komprostek

Bab 7 Persamaan Diferensial Biasa

Halaman 106 dari 101

Kasus 8

Studi terhadap kinetika proses fermentasi berhasil dimodelkan secara matematis

sbb:

1 11 1

2

23 1 4 2

1dy yk ydt kdy k y k ydt

⎛ ⎞= −⎜ ⎟

⎝ ⎠

= −

Dengan k1 = 0.03120; k2 = 47.70; k3 = 3.374 ;k4 = 0.01268 serta nilai pada t = 0,

y1=5, y2=0. Evaluasi harga y1 dan y2 dalam interval waktu 0 s.d 10 jam setiap

jamnya!.

Berikut ini pemrograman MATLAB-nya.

%fermen.m function dydt = fermen(t,y) k1=0.03120; k2=47.70; k3=3.374; k4=0.01268; dydt=[k1*y(1)*(1-y(1)/k2) k3*y(1)-k4*y(2)];

%kasus8 clear clc tspan = [0:1:10]; yo = [5 0]; [t,y]=ode23('fermen',tspan,yo)

Page 110: Buku Komprostek

Bab 7 Persamaan Diferensial Biasa

Halaman 107 dari 101

Eksekusi di command window

Tugas 8

Solusi PDB tak linier menggunakan subrutin MATLAB ode23

Nomor 1

Konversi glukosa menjadi asam glukonik merupakan reaksi oksidasi sederhana

dari gugus aldehid gula menjadi gugus karboksil. Enzim glukosa oksidase,

terbentuk dalam mikroorganisme untuk mengubah glukosa menjadi

glukonolaktona. Kemudian glukonolaktona bereaksi dengan air membentuk asam

glukonik. Mekanisme reaksi secara keseluruhan proses fermentasi dapat dituliskan

sbb:

Glukosa oksidase2 2 2

2

Glukosa + sel sel

Glukosa + O

Pertumbuhan sel:

Oksidasi glukosa:

Hidrolisis

Glukonolactona + H O

Glukonolactona + H O Asam gluglukonolactona:

Dekomposisi per

konik

ok

⎯⎯⎯⎯⎯→

Katalis2 2 2 2

1H O H O + O

:

2

sida

⎯⎯⎯→

Model matematika untuk fermentasi bakteri Pseudomonas ovalis yang

memproduksi asam glukonik telah dirumuskan oleh Rai dan Constantinides.

Model yang menggambarkan dinamika pertumbuhan fasa logaritmik ini dapat

dituliskan sbb:

t =

0 1 2 3 4 5 6 7 8 9 10

y =

5.0000 0 5.1414 17.0000 5.2863 34.2657 5.4347 51.8056 5.5868 69.6282 5.7425 87.7422 5.9020 106.1564 6.0652 124.8796 6.2323 143.9206 6.4033 163.2886 6.5783 182.9924

Page 111: Buku Komprostek

Bab 7 Persamaan Diferensial Biasa

Halaman 108 dari 101

1 11 1

2

3 1 425 2

4 4

35 2

3 1 44

4 4

1

0.908

Laju pertumbuhan sel:

Laju pembentukan glukonolaktona:

Laju pembentukan asam glukonik:

Laju konsumsi glukosa:

2

1.011

dy yb ydt b

b y ydy b ydt b y

dy b ydt

b y ydydt b y

⎛ ⎞= −⎜ ⎟

⎝ ⎠

= −+

=

⎛ ⎞= − ⎜ ⎟+⎝ ⎠

Keterangan:

1

2

3

4

1 5

y = konsentrasi sely = konsentrasi glukonolaktonay = konsentrasi asam glukoniky = konsentrasi glukosab s.d b = parameter, f(T,pH)

Pada kondisi operasi T=30 oC dan pH 6.6 harga dari lima parameter yang

diperoleh secara eksperimental sbb:

1

2

3

4

5

0.9493.43918.7237.511.169

bbbbb

=====

Pada kondisi tersebut buatlah profil y1,y2,y3, dan y4 terhadap waktu selama 0 ≤ t

≤ 9 jam!. Nilai-nilai awal (pada saat t=0) adalah sbb:

y1(0) = 0.5 U.O.D./mL

y2(0) = 0.0 mg/mL

y3(0) = 0.0 mg/mL

y4(0) = 50.0 mg/mL

Petunjuk: soal ini mudah….!!!

_______________________________o0o________________________________

Page 112: Buku Komprostek

Bab 8 Persamaan Diferensial Parsial

Halaman 109 dari 101

Bab 8 Persamaan Diferensial Parsial (PDP)

Definisi PDP

Persamaan diferensial parsial adalah persamaan diferensial yang terdiri

atas fungsi turunan lebih dari satu variabel bebas.

Contoh:

Persamaan konduksi tak tunak satu dimensi pada lembaran suatu material

dirumuskan dalam PDP sbb.

2

2

xT

ck

tT

p ∂∂

=∂∂

ρ

PDP tersebut terdiri dari dua buah variabel bebas, yaitu x (tebal lembaran) dan t

(waktu). Sedangkan variabel terikatnya adalah T (Temperatur). Jika digambarkan

pada koordinat kartesius akan diperoleh gambar 3 dimensi.

Aplikasi PDP

Pemodelan kimia dan fisika atas suatu fenomena dalam bidang teknik

kimia seringkali menghasilkan rumusan matematis dalam bentuk PDP khususnya

pada berbagai fenomena perpindahan (momentum, massa, dan panas).

Klasifikasi PDP

Berdasarkan ordenya PDP terdiri atas tiga jenis.

Orde 1

0u ux y

α∂ ∂− =

∂ ∂

Orde 2 2

2 0u uux y∂ ∂

+ =∂ ∂

Orde 3

Page 113: Buku Komprostek

Bab 8 Persamaan Diferensial Parsial

Halaman 110 dari 101

23 2

3 0u u ux x y y

⎛ ⎞∂ ∂ ∂+ + =⎜ ⎟∂ ∂ ∂ ∂⎝ ⎠

Umumnya PDP dalam teknik kimia berorde 2 dengan 2 sampai 4 variabel

bebas.

Berdasarkan kelinierannya PDP terdiri atas tiga jenis.

1. Linier

2. Quasilinier

3. Taklinier

Kajian PDP dalam diktat ini terbatas hanya untuk PDP orde 2 linier saja.

PDP linier orde 2 memiliki persamaan umum sbb:

Berdasarkan harga acb −2 PDP orde 2 linier terbagi atas tiga bagian, sbb:

1. Eliptik 02 <− acb

2. Parabolik 02 =− acb

3. hiperbolik 02 >− acb

Kondisi Batas

Untuk lebih memahami kondisi batas pada PDP perhatikan contoh persamaan

konduksi tak tunak satu dimensi sbb:

2

2

xT

ck

tT

p ∂∂

=∂∂

ρ

1. Kondisi Dirichlet

Nilai variabel terikat (T) diketahui pada nilai variabel bebas (x,t) tertentu

2 2 2

2 22 0u u u u ua b c d e fu gx x y y x y∂ ∂ ∂ ∂ ∂

+ + + + + + =∂ ∂ ∂ ∂ ∂ ∂

Page 114: Buku Komprostek

Bab 8 Persamaan Diferensial Parsial

Halaman 111 dari 101

0

kondisi awal( ) pada 0 dan 0 1, atau pada 0 dan 0 1

T f x t xT T t x= = ≤ ≤= = ≤ ≤

1

kondisi batas( ) pada 0 dan 0, dan pada 0 dan 0

T f t x tT T x t= = >= = >

Contoh :

( )( )( )

2

2

0

0

0

0, 120

1, 120

0 :1,0 25

T Tx t

T t C

T t C

T x C

α ∂ ∂=

∂ ∂=

=

= =

2. Kondisi Neuman

Turunan variabel terikat (T) diketahui pada nilai tertentu atau sebagai fungsi dari

variabel bebas (x,t).

0 pada 1 dan 0T x tx

∂= = ≥

3. Kondisi Robbin

( ) pada 0 dan 0fTk h T T x tx

∂= − = ≥

Turunan variabel terikat (T) diketahui sebagai fungsi dari variabel terikat itu

sendiri.

Solusi PDP

Solusi yang paling sederhana dan gampang untuk diterapkan yaitu dengang

metode penghampiran selisih terhingga (finite difference approximationi).

Page 115: Buku Komprostek

Bab 8 Persamaan Diferensial Parsial

Halaman 112 dari 101

Penghampiran Selisih Terhingga

1. Penghampiran selisih terpusat

( )

( )

( )

1 1

2

1 12 2

2,

1, 1 1, 1 1, 1 1, 1

12

1 2

14

ii i

ii i i

i ji j i j i j i j

u u ux xu u u ux xu

u u u uy x x y

+ −

+ −

+ + − + + − − −

∂= −

∂ Δ∂

= − +∂ Δ∂

= − − +∂ ∂ Δ Δ

2. Penghampiran selisih maju

( )

( )

( )

1

2

2 12 2

2,

1, 1 , 1 1, ,

1

1 2

14

ii i

ii i i

i ji j i j i j i j

u u ux xu u u ux xu

u u u uy x x y

+

+ +

+ + + +

∂= −

∂ Δ∂

= − +∂ Δ∂

= − − +∂ ∂ Δ Δ

3. Penghampiran selisih mundur

( )

( )

( )

1

2

1 22 2

2,

, , 1 1, 1, 1

1

1 2

1

ii i

ii i i

i ji j i j i j i j

u u ux xu u u ux xu

u u u uy x x y

− −

− − − −

∂= −

∂ Δ∂

= − +∂ Δ∂

= − − +∂ ∂ Δ Δ

Diskretisasi Persamaan Diferensial

Dalam menyelesaikan persamaan diferensial menggunakan penghampiran selisih

terhingga dikenal teknik diskretisasi. Penjelasannya diberikan berdasarkan contoh

soal sebagai berikut :

Kasus 9:

Selesaikan persamaan differensial di bawah ini, kemudian petakan harga x dan y

pada koordinat kartesius.

Page 116: Buku Komprostek

Bab 8 Persamaan Diferensial Parsial

Halaman 113 dari 101

2

2 6 4

0 11 1

Rentang Integrasi x = 0 s/d 1

d y xdxx yx y

= +

= → == → =

Jawaban:

Rentang integrasi x = 0 s.d 1 didiskretisasikan menjadi 10 bagian (N = 10).

Menggunakan penghampiran selisih terpusat.

( )2

1 12 2

1 2ii i i

y y y yx x + −

∂= − +

∂ Δ

Substitusikan penghampiran selisih terpusat itu ke persamaan diferensial.

0462

2

=+−∂∂ x

xy

menghasilkan

( )1 12

1 2 6 4 0i i i iy y y xx + −− + − − =

Δ

0 1 2 3 4 5 6 7 8 9 10

x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10

109 8 76543 21

∆x

101 0.1

N

xN

=

Δ = =

Page 117: Buku Komprostek

Bab 8 Persamaan Diferensial Parsial

Halaman 114 dari 101

Untuk i = 1

( )2 12

1 2 1 6(0.1) 4 0y yx

− + − − =Δ

Untuk i = 2 s.d. 8

( )1 12

1 2 6 4 0i i i iy y y xx + −− + − − =

Δ

Untuk i = 9

( )9 82

1 1 2 6(0.9) 4 0y yx

− + − − =Δ

Transformasi sistem persamaan linier di atas menjadi bentuk matrik sbb:

Harga y dapat dihitung dengan metode yang telah dipelajari pada bagian sistem

persamaan linier.

CAyCAy

1−=

=

Berikut ini kita hitung harga vektor y dalam m-file MATLAB.

A y C

SISTEM PERSAMAAN LINIER

{ }{ }

21

22

3

4

5

6

7

8

9

2 1 0 0 0 0 0 0 0 6(0.1) 4 11 2 1 0 0 0 0 0 0 6(0.2) 40 1 2 1 0 0 0 0 0 6(0.3)0 0 1 2 1 0 0 0 00 0 0 1 2 1 0 0 00 0 0 0 1 2 1 0 00 0 0 0 0 1 2 1 00 0 0 0 0 0 1 2 10 0 0 0 0 0 0 1 2

y xy xyyyyyyy

− + Δ −⎡ ⎤⎡ ⎤⎢ ⎥⎢ ⎥− + Δ⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥− +⎢ ⎥⎢ ⎥− ⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥ =−⎢ ⎥⎢ ⎥

− ⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥−⎢ ⎥⎢ ⎥

− ⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥−⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦

{ }{ }{ }{ }{ }{ }

{ }

2

2

2

2

2

2

2

46(0.4) 46(0.5) 46(0.6) 46(0.7) 46(0.8) 4

6(0.9) 4 1

xxxxxx

x

⎡ ⎤⎢ ⎥⎢ ⎥⎢ ⎥Δ⎢ ⎥

+ Δ⎢ ⎥⎢ ⎥+ Δ⎢ ⎥

+ Δ⎢ ⎥⎢ ⎥+ Δ⎢ ⎥⎢ ⎥+ Δ⎢ ⎥+ Δ −⎢ ⎥⎣ ⎦

Page 118: Buku Komprostek

Bab 8 Persamaan Diferensial Parsial

Halaman 115 dari 101

kasus9.m

>> kasus9

y =

1.0000

0.7210

0.4880

0.3070

0.1840

0.1250

0.1360

0.2230

0.3920

0.6490

1.0000

clear clc %Diskretisasi terhadap x N=10; dx=1/N; x =[0:dx:1]' %Membuat matrik A koefisien y A = diag(-2*ones(N-1,1))+diag(ones(N-2,1),1) + diag(ones(N-2,1),-1) %Vektor konstanta C C = (6*[dx:dx:x(end)-dx]+4)*dx^2 C(1)=C(1)-1 C(end)=C(end)-1 %Menghitung harga y y=inv(A)*C' y=[1;y;1] %Membuat kurva x-y plot(x,y) xlabel('x') ylabel('y') grid on

Eksekusi program kasus9.m Masukan dan hasil di Command Window :

Page 119: Buku Komprostek

Bab 8 Persamaan Diferensial Parsial

Halaman 116 dari 101

Dari hasil perhitungan MATLAB di atas dapat dibuat grafik dan hasil lengkap

untuk persoalan ini sbb:

x y

0 1

0.1 0.721

0.2 0.488

0.3 0.307

0.4 0.184

0.5 0.125

0.6 0.136

0.7 0.223

0.8 0.392

0.9 0.649

1 1

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

x

y

Page 120: Buku Komprostek

Bab 8 Persamaan Diferensial Parsial

Halaman 117 dari 101

Tugas 9

Menyelesaikan persamaan differensial dengan penghampiran selisih

terhingga (diskretisasi)

Nomor 1

Dengan menggunakan penghampiran selisih terhingga terpusat selesaikan

persamaan diferensial sbb:

2

2 2

(0) (1) 1Rentang Integrasi = 0 s/d 1

d y ydxy y

= +

= =

Sertakan pula kurva x,y diagram kartesiusnya.

Semidiskretisasi Persamaan Diferensial Parsial

Di muka telah dipaparkan penjelasan mengenai diskretisasi untuk menyelesaikan

persamaan diferensial. PDP dapat diselesaikan juga dengan menggunakan teknik

diskretisasi, sayangnya penerapan pada PDP lebih rumit dan melibatkan banyak

angka. Sebagai penyederhanaan dapat digunakan teknik semidiskretisasi.

Penjelasannya akan diberikan berdasarkan contoh soal sbb:

kasus10

Sebuah lembaran plastik dengan tebal 1 cm mula-mula bertemperatur 25 oC

diletakan diantara pelat yang bertemperatur 120 oC. Diketahui massa jenis plastik

900 kg/m3, konduktivitas termal 0.13 W/moC, dan kalor jenis 1670 J/kgoC .

Pemodelan matematis untuk kasus konduksi tak tunak adalah sbb: 2

2

T Tx t

α ∂ ∂=

∂ ∂

p

kc

αρ

=

Dengan metode numeris evaluasi temperatur rata-rata plastik 10 menit kemudian?

Page 121: Buku Komprostek

Bab 8 Persamaan Diferensial Parsial

Halaman 118 dari 101

Jawaban:

( )( )( )

2

2

0

0

0

0, 120

1, 120

0 :1,0 25

T Tx t

T t C

T t C

T x C

α ∂ ∂=

∂ ∂=

=

= =

8 2

2 2

(0.13) = 8.6494x10 /(900)(1670)

5.1896x10 /p

k m sc

cm menit

αρ

= =

=

Diskretisasi dilakukan terhadap x.

Menggunakan penghampiran selisih terpusat turunan kedua T terhadap x,

( )2

1 12 2

1 2ii i i

T T T Tx x + −

∂= − +

∂ Δ

PDP tersebut akan menjadi.

( )1 12 2i i iT T T Tt x

α+ −

∂= − +

∂ Δ

Kondisi Dirichlet

2019 18 17 1615 1413121110 9 8 7 6 5 4 3 2 1

∆x x

0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1

201 0 0.0520

N

x

=−

Δ = =

Page 122: Buku Komprostek

Bab 8 Persamaan Diferensial Parsial

Halaman 119 dari 101

Solusi sistem persamaan diferensial biasa telah dibahas pada bagian sebelumnya.

Rutin yang akan digunakan untuk sistem PDB di termaksud adalah ode23

MATLAB. Berikut ini pemrogramannya.

( )2 12 2 120T T Tt x

α∂= − +

∂ Δ

( )1 12 2i i iT T T Tt x

α+ −

∂= − +

∂ Δ

( )19 182 120 2T T Tt x

α∂= − +

∂ Δ

Untuk i = 1

Untuk i = 2 : 18

Untuk i = 19

SISTEM PERSAMAAN DIFERENSIAL

BIASA

taktunak.m Pemrograman MATLAB

function dTdt=taktunak(t,T) N=20; dx=1/N; a=5.1896e-2; %diffusivitas termal,cm2/menit % untuk i = 1 dTdt(1,:) = a/(dx^2)*(T(2)-2*T(1)+120); % untuk i = 2 s.d 18 for i = 2:18 dTdt(i,:) = a/(dx^2)*(T(i+1)-2*T(i)+T(i-1)); end % untuk i = 19 dTdt(19,:) = a/(dx^2)*(120-2*T(19)+T(18));

Page 123: Buku Komprostek

Bab 8 Persamaan Diferensial Parsial

Halaman 120 dari 101

kasus10.m Pemrograman MATLAB

clear clc % Nilai awal dan rentang integrasi. tspan=[0:1:10]; To = 25*ones(1,19); % Fungsi pengintegrasi. [t,T] = ode23(‘taktunak',tspan,To); % Menampilkan hasil perhitungan. x=[0:1/20:1]' t T0=120*ones(length(tspan),1); T0(1)=(25+120)/2 % Harga T pada t=0,x=0, diambil rata-rata. T20=120*ones(length(tspan),1); T20(1)=(25+120)/2 % Harga T pada t=0,x=1, diambil rata-rata. T=[T0 T T20] % Memetakan hasil pd diagram kartesius 3-D. figure(1) surf(x,t,T) xlabel('x') ylabel('t') zlabel('T') colorbar shading interp figure(2) pcolor(x,t,T) xlabel('x') ylabel('t') zlabel('T') colorbar shading interp % Menghitung rata-rata suhu plastik pd menit ke 10 [b k]=size(T); z=T(b,:); Tslab=mean(z)

Eksekusi program kasus10.m &runkasus10.m. Masukan dan hasil di Command Window :

>>runkasus10 Tslab = 119.5598

Page 124: Buku Komprostek

Bab 8 Persamaan Diferensial Parsial

Halaman 121 dari 101

Gambar 3-D. Profil temperatur plastik sepanjang x pada interval waktu t

Page 125: Buku Komprostek

Bab 8 Persamaan Diferensial Parsial

Halaman 122 dari 101

Tugas 10: Menyelesaikan PDP dengan penghampiran selisih terhingga

terpusat (semi diskretisasi)

Nomor 1

Suatu fenomena difusi-konveksi dapat dideskripsikan dengan PDP berikut ini: 2

2 0 1, t 0

(0, ) 1, 0

(1, ) 0, 0

( ,0) 0, 0 1

xt x x

t t

t txx x

θ θ θλ

θθ

θ

∂ ∂ ∂= − < < >

∂ ∂ ∂= >

∂= >

∂= < <

Jika harga λ = 25, selesaikan PDP diatas untuk rentang t = 0 s.d 5. Buat pula

gambar 3-D θ,t,x pada koordinat kubus (kartesius).

Gambar 3-D semu. Profil temperatur plastik sepanjang x pada interval waktu t

Page 126: Buku Komprostek

Daftar Pustaka

Daftar Pustaka

1. Chapra, Steven C. & Canale, Raymond P., “Numerical Methods for Engineers”, 1985, diterjemahkan ke dalam bahasa Indonesia dengan judul “Metode Numerik untuk Teknik” oleh UI-Press, Jakarta, 1991.

2. Constantinides A. & Mostoufi N., “Numerical Methods for Chemical

Engineers with MATLAB Applications”, Prentice Hall, New Jersey, 1983.

3. Cutlip, Michael B. & Shacham Mordechai, “Problem Solving in Chemical Engineering with Numerical Methods”, Prentice Hall, New Jersey, 1999.

4. Hanna, Owen T. & Sandal, Orville C., “Computaional Methods In Chemical

Engineering”, Prentice Hall, New Jersey, 1999.

5. Lindfield G. & Penny J., “Numerical Method Using MATLAB”, Elis Horwood, London, 1995.

6. Riggs, James B., “An Introduction to Numerical Methods for Chemical

Engineers”, Texas Tech University Press, Texas, 1988.

7. Sediawan, W.B. & Prasetya A., “Pemodelan Matematis dan Penyelesaian Numeris dalam Teknik Kimia”, Andi, Yogyakarta, 1997.