279
K om p u tasi u n tu k S ai n s d an T ekni k -Me nggun a ka n Mat l a b - Supriyanto Suparno ( Web si t e: h t t p : / / su p ri y an t o . si k a. u i. ed u  ) ( E m ail: su p ri @ si k a. u i .ac.i d  atau s u p r i 92@ gmail.c om ) E d i si I I I R ev i si t erakh i r t gl : 2 9 J u n i 2010 D ep ar t em en Fi s i k a-FMI P A , U niver i s tas Indonesia D i p u b l i k as i k an p ert am a kal i p ada S ept em b er 2007

komputasi_matlab_3.doc

Embed Size (px)

Citation preview

Page 1: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 1/279

Page 2: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 2/279

Page 3: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 3/279

Page 4: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 4/279

Page 5: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 5/279

KataPengantar

 Alhamdulillah, buku ini memasuki edisi ke-3. Penomoran edisi ini sebenarnya hanya untuk

menandakan perubahan isi buku yang semakin kaya metode numerik dibandingkan dengan

edisi-edisi sebelumnya. Pengayaan isi buku ini, sejujurnya, berasal dari sejumlah pertanyaan

yang sampai kemailboxsaya, entah itu dalam bentuk konsultasi Tugas Akhir mahasiswa S1

sebagaimana yang saya terima darimahasiswaUNPAD, UDAYANA, UNESA dan UNSRI

serta UI sendiri, ataupun sekedar pertanyaan seputar tugas kuliah seperti yang biasa

ditanyakan oleh para mahasiswa dari Univ. Pakuan, Bogor.

Pertanyaan-pertanyaanitu menjadikan saya sadar bahwa buku edisi ke-II yang berjumlah

187 halaman, ternyata belum bisa memenuhi kebutuhan banyak mahasiswa yang

memerlukan teknik pengolahan data secara numerik. Karenanya,insya Allah, pada edisi

ke-III ini, saya mencoba menyempurnakan buku ini secara bertahap.

Buku ini mulai ditulis pada tahun 2005 dengan isi yang seadanya, pokoknya asal tercatat.

Kemudian di tahun 2006-akhir buku ini menjadi catatan perkuliahan Komputasi Fisika. Pen-

gayaan isi buku terus berlangsung hingga akhir 2007. Lalu di awal tahun 2008, isi buku ini

ditambah dengan materi perkuliahan Analisis Numerik. Jadi materi Komputasi Fisika tahun2007 dan materi Analisis Numerik 2008, telah digabung jadi satu dalam buku

ini.

Secara garis besar, ilmu fisika dapat dipelajari lewat 3 jalan, yaitu pertama, dengan meng-

gunakan konsep atau teori fisika yang akhirnya melahirkan fisika teori. Kedua, dengan cara

eksperimen yang menghasilkan aliran fisika eksperimental, dan ketiga, fisika bisa dipelajari

lewat simulasi fenomena alam yang sangat mengandalkan komputer serta algoritma numerik.

Tujuan penyusunan buku ini adalah untuk meletakkan pondasi dasar dari bangunan pema-

haman akanmetode-metodekomputasi yang banyakdigunakanuntukmensimulasikan

fenom- ena fisika.Rujukan utama buku ini bersumber pada buku teks standar yang sangat populer di dunia

komputasi, yaitu buku yang ditulis oleh Richard L. Burden dan J. Douglas Faires dengan

 judulNumerical Analysisedisi ke-7, diterbitkan oleh PenerbitBrooks/Cole, Thomson

Learning Aca- demic Resource Center. Disamping itu, buku ini dilengkapi oleh sejumlah

contoh aplikasi komputasi pada upaya penyelesaian problem-problem fisika.

Pada edisi ke-3 ini saya mulai menfokuskan menulisscriptdalam lingkunganMatlab.

Padahal, dalam edisi ke-2 yang lalu,scriptnumerik disalin ke dalam 2 bahasa pemrograman,

yaituFortran77danMatlab. Namun mayoritas ditulis dalamMatlab.

Akhirnya saya ingin mengucapkan rasa terima kasih yang tak terhingga kepadaDedeDjuhanayang telah berkenan memberikan format LATEX-nya sehingga tampilan tulisan

pada buku ini benar-benar layaknya sebuah buku yang siap dicetak. Tak lupa, saya pun

 berterima

kasih kepada seluruh mahasiswa yang telah mengambil mata kuliah Komputasi Fisika PTA

2006/2007 di Departemen Fisika, FMIPA, Universitas Indonesia atas diskusi yang

Page 6: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 6/279

 berlangsung iii

Page 7: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 7/279

Page 8: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 8/279

Daftar Isi

Lembar Persembahan

Kata Pengantar

Daftar Isi

Daftar Gambar

Daftar Tabel

1 Matrik dan Komputasi

i

iii

iv

viii

x

1

1.1 Mengenal matrik . . . . . . . . . . . . . . . ...................... 1

1.2 Vektor-baris dan vektor-kolom . . . . . . . ...................... 2

1.3 Inisialisasi matrik dalam memori komputer ...................... 2

1.4 Macam-macam matrik . . . . . . . . . . . . ...................... 3

1.4.1 Matrik transpose . . . . . . . . . . . ...................... 3

1.4.2 Matrik bujursangkar . . . . . . . . . ...................... 41.4.3 Matrik simetrik . . . . . . . . . . . . ...................... 4

1.4.4 Matrik diagonal . . . . . . . . . . . . ...................... 4

1.4.5 Matrik identitas . . . . . . . . . . . . ...................... 4

1.4.6 Matrik upper-triangular . . . . . . . ...................... 5

1.4.7 Matrik lower-triangular . . . . . . . ...................... 5

1.4.8 Matrik tridiagonal . . . . . . . . . . ...................... 5

1.4.9 Matrik diagonal dominan . . . . . . ...................... 5

1.4.10 Matrik positive-definite. . . . . . . . ...................... 6

1.5 Operasi matematika . . . . . . . . . . . . . ...................... 61.5.1 Penjumlahan matrik . . . . . . . . . ...................... 6

1.5.2 Komputasi penjumlahan matrik . . ...................... 7

1.5.3 Perkalian matrik . . . . . . . . . . . ...................... 10

1.5.4 Komputasi perkalian matrik . . . . ......................13

1.5.5 Perkalian matrik dan vektor-kolom ...................... 21

1.5.6 Komputasi perkalian matrik dan vektor-kolom . . . . . . . . . . . . . . . . 22

1.6 Penutup .......................................... 25

1.7 Latihan . .......................................... 26

2 Fungsi 27

2.1 Fungsi internal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.2 Fungsi eksternal penjumlahan matrik . . . . . . . . . . . . . . . . . . . . . . . . . 29

v

Page 9: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 9/279

vi

2.3 Fungsi eksternal perkalian matrik . . . . . . . . . . . ................. 31

2.4 Fungsi eksternal perkalian matrik dan vektor-kolom ................. 33

2.5 Penutup . . . . . . . . . . . . . . . . . . . . . . . . . . ................ 35

3 Metode Eliminasi Gauss 37

3.1 Sistem persamaan linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

3.2 Teknik penyederhanaan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

3.2.1 Cara menghilangkan sebuah variabel . . . . . . . . . . . . . . . . . . . . . 38

3.2.2 Permainan indeks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

3.3 Triangularisasi dan Substitusi Mundur . . . . . . . . . . . . . . . . . . . . . . . . . 40

3.3.1 Contoh pertama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

3.3.2 Contoh kedua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423.4 Matrik dan Eliminasi Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

3.4.1 Matrik Augmentasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

3.4.2 Penerapan pada contoh pertama . . . . . . . . . . . . . . . . . . . . . . . . 44

3.4.3 Source-codedasar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

3.4.4 Optimasisource code. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

3.4.5 Pentingnya nilain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

3.4.6 Jangan puas dulu.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

3.4.7 Pivoting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

3.5 Function Eliminasi Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583.6 Contoh aplikasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

3.6.1 Menghitung arus listrik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

3.6.2 Mencari invers matrik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

3.7 Penutup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

4 Aplikasi Eliminasi Gauss pada Masalah Inversi 71

4.1 Inversi Model Garis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

4.1.1 Script matlab inversi model garis . . . . . . . . . . . . . . . . . . . . . . . . 74

4.2 Inversi Model Parabola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 754.2.1 Script matlab inversi model parabola . . . . . . . . . . . . . . . . . . . . . 79

4.3 Inversi Model Bidang . . . . . . . . . . . ........................ 80

4.4 Contoh aplikasi . . . . . . . . . . . . . . ........................ 82

4.4.1 Menghitung gravitasi di planet X ........................ 82

5 Metode LU Decomposition 89

5.1 Faktorisasi matrik ..................................... 89

5.2 Algoritma . . . . ..................................... 93

6 Metode Iterasi 996.1 Kelebihan Vektor-kolom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

6.2 Pengertian Norm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

6.2.1 Scriptperhitungan norm dua . . . . . . . . . . . . . . . . . . . . . . . . . . 100

Page 10: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 10/279

vii

6.2.2 Scriptperhitungan norm tak hingga . . . . . . . . . . . . . . . . . . . . . .101

6.2.3 Perhitungan norm-selisih . . . . . . . . . . . . . . . . . . . . . . . . . . . .101

6.3 IterasiJacobi . . . . . . . . . . . . ............................102

6.3.1 Scriptmetode iterasi Jacobi...........................105

6.3.2 Stopping criteria. . . . . . ............................113

6.3.3 Fungsi eksternal iterasi Jacobi . . . . . . . . . . . . . . . . . . . . . . . . . . 115

6.4 IterasiGauss-Seidel . . . . . . . .............................116

6.4.1 Scriptiterasi Gauss-Seidel............................118

6.4.2 Algoritma . . . . . . . . .............................124

6.4.3 Scriptiterasi Gauss-Seidel dalam Fortran . . . . . . . . . . . . . . . . . . . 125

6.5 Iterasi dengan Relaksasi . . . . . ............................126

6.5.1 Algoritma Iterasi Relaksasi...........................128

7 Interpolasi 129

7.1 Interpolasi Lagrange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

7.2 Interpolasi Cubic Spline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

8 Diferensial Numerik 139

8.1 Metode Euler. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

8.2 Metode Runge Kutta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

8.2.1 Aplikasi: Pengisian muatan pada kapasitor . . . . . . . . . . . . . . . . . . 1488.3 MetodeFinite Difference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

8.3.1 ScriptFinite-Difference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

8.3.2 Aplikasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

8.4 Persamaan Diferensial Parsial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

8.5 PDP eliptik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

8.5.1 Contoh pertama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

8.5.2 ScriptMatlab untuk PDP Elliptik . . . . . . . . . . . . . . . . . . . . . . . . 168

8.5.3 Contoh kedua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

8.6 PDP parabolik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

8.6.1 MetodeForward-difference. . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

8.6.2 Contoh ketiga:One dimensional heat equation . . . . . . . . . . . . . . . . . 172

8.6.3 MetodeBackward-difference . . . . . . . . . . . . . . . . . . . . . . . . . . . 177

8.6.4 Metode Crank-Nicolson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181

8.7 PDP Hiperbolik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184

8.7.1 Contoh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186

8.8 Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187

9 Integral Numerik 189

9.1 Metode Trapezoida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189

9.2 Metode Simpson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190

9.3 Peran faktor pembagi, n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192

Page 11: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 11/279

viii

9.3.1 Source code metode integrasi . . . . . . . . . . . . . . . . . . . . . . . . . . 192

9.4 Metode Composite-Simpson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193

9.5 Adaptive Quardrature..................................1959.6 Gaussian Quadrature ...................................195

9.6.1 Contoh .......................................196

9.6.2 Latihan .......................................196

10 Mencari Akar 199

10.1 Metode Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199

11 Metode Monte Carlo 201

11.1 Penyederhanaan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201

12 Inversi 205

12.1 Inversi Linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205

12.2 Inversi Non-Linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208

Daftar Pustaka 210

Indeks 211

Page 12: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 12/279

Daftar Gambar

4.1 Sebaran data observasi antara suhu dan kedalaman . . . . . . ........... 72

4.2 Kurva hasil inversi data observasi antara suhu dan kedalaman ........... 75

4.3 Kurva hasil inversi data observasi antara suhu dan kedalaman ........... 80

4.4 Grafik data pengukuran gerak batu . . . . . . . . . . . . . . . . ........... 84

4.5 Grafik hasil inversi parabola . . . . . . . . . . . . . . . . . . . . ........... 86

7.1 Fungsif  (x)dengan sejumlah titik data. . . . . . . . . . . . . ...........131

7.2 Pendekatan dengan polinomial cubic spline . . . . . . . . . . . ...........131

7.3 Profil suatu object . . . . . . . . . . . . . . . . . . . . . . . . . . . ..........136

7.4 Sampling titik data . . . . . . . . . . . . . . . . . . . . . . . . . . ..........137

7.5 Hasil interpolasi cubic spline . . . . . . . . . . . . . . . . . . . ...........137

7.6 Hasil interpolasi lagrange . . . . . . . . . . . . . . . . . . . . . ...........138

8.1 Kiri: Kurvay(t) dengan pasangan titik absis dan ordinat dimana jarak titik absis sebe-

sarh. Pasangant1 adalahy(t1 ), pasangant2 adalahy(t2 ), begituseterusnya.

Kanan:Garis singgung yang menyinggung kurva y(t) pada t=a, kemudian

 berdasarkan garis singgung tersebut, ditentukan pasangant1 sebagaiw1. Perhatikan

gambar itu sekali

lagi!w1 dany(t1 ) beda tipis alias tidak sama persis.. . . . . . . . . . . . . . . . . . . . 140

8.2 Kurva biru adalah solusi exact, dimanalingkaran-lingkarankecil warna biru pada

kurva menunjukkan posisi pasangan absist dan ordinaty(t) yang dihitung oleh

Persamaan (8.9). Sedangkan titik-titik merah mengacu pada hasil perhitungan metode

euler, yaitu

nilaiwi .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

8.3 Kurva biru adalah solusi exact, dimanalingkaran-lingkarankecil warna biru padakurva menunjukkan posisi pasangan absist dan ordinaty(t) yang dihitung oleh

Persamaan (8.9). Sedangkan titik-titik merah mengacu pada hasil perhitungan metode

Runge Kutta

orde 4, yaitu nilaiwi .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

8.4 Rangkaian RC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

8.5 Kurva pengisian muatanq(charging) terhadap waktut . . . . . . . . . . . . . . . 153

8.6 Kurva suatu fungsif   (x) yang dibagi sama besar berjarakh. Evaluasi kurva

yang dilakukanFinite-Differencedimulai dari batas bawahX0 = a hingga

 batas atas

x6 = b . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154

8.7 Skema grid linesdanmesh pointspada aplikasi metodeFinite-Difference. . . . . . 164

8.8 Susunan grid linesdanmesh pointsuntuk mensimulasikan distribusi temperatur

pada lempeng logam sesuai contoh satu . . . . . . . . . . . . . . . . . . . . . . . . 166

8.9 Sebatang logam dengan posisi titik-titik simulasi (mesh-points) distribusi temperatur.

 Jarak antar titik ditentukan sebesarh = 0, 1.. . . . . . . . . . . . . . . . . . . . . . . . 173

Page 13: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 13/279

ix

Page 14: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 14/279

Page 15: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 15/279

Daftar Tabel

4.1 Data suhu bawah permukaan tanah terhadap kedalaman . . . . . . . . . . . . . . 71

4.2 Data suhu bawah permukaan tanah terhadap kedalaman . . . . . . . . . . . . . . 76

4.3 Data ketinggian terhadap waktu dari planet X . . . . . . . . . . . . . . . . . . . . 83

6.1 Hasil akhir elemen-elemen vektorxhingga iterasi ke-10 . . . . . . . . . . . . . . . 113

6.2 Hasil perhitungan norm2-selisih hingga iterasi ke-10 . . . . . . . . . . . . . . . . 113

6.3 Hasil Iterasi Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

6.4 Hasil perhitungan iterasi Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . . . . . 127

6.5 Hasil perhitungan iterasi Relaksasi denganω = 1, 25. . . . . . . . . . . . . . . . . 127

8.1 Solusi yang ditawarkan oleh metode eulerwi dan solusi exacty(ti ) serta selisih

antara keduanya . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

8.2 Solusi yang ditawarkan oleh metode Runge Kutta orde 4(wi) dan solusi exact

y(ti )serta selisih antara keduanya . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

8.3 Perbandingan antara hasil perhitungan numerik lewat metode Runge Kutta dan

hasil perhitungan dari solusi exact, yaitu persamaan (8.16) . . . . . . . . . . . . . 1528.4 Hasil simulasi distribusi panas bergantung waktu dalam 1-dimensi. Kolom ke-2 adalah

solusianalitik/exact, kolom ke-3 dan ke-5 adalah solusi numerik forward-difference.

Kolom

ke-4 dan ke-6 adalah selisih antara solusi analitik dan numerik. . . . . . . . . . . . . . 177

8.5 Hasil simulasidistribusipanas bergantung waktu dalam1-dimensidengan metodebackward-

differencedimanak = 0, 01 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1818.6 Hasil simulasi distribusi panas bergantung waktu (t) dalam 1-dimensi dengan

metodebackward-differencedan Crank-Nicolson . . . . . . . . . . . . . . . . . . . . 184

9.1 Polinomial Legendre untukn=2,3,4 dan 5 . . . . . . . . . . . . . . . . . . . . . . . 196

xi

Page 16: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 16/279

xii DAFTAR TABEL

Page 17: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 17/279

Page 18: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 18/279

2 BAB 1. MATRIK DAN KOMPUTASI

..

Contoh 2: MatrikB3×2  1 3

B= 

5 9

  2 4

dimana masing-masing elemennya adalahb11  = 1,b12  = 3,b21  = 5,b22  = 9,b31  = 2, dan

b32  = 4.

1.2 Vektor-baris dan vektor-kolom

Notasi vektor biasanya dinyatakan dengan huruf kecil dan dicetak tebal. Suatu matrik dina-

makan vektor-baris berukuranm, bila hanya memiliki satu baris danm kolom, yang diny-

atakan sebagai berikut

a=ha11 a12 . . . a1m

i=

ha1 a2 . . . am

i(1.2)

Sedangkansuatu matrikdinamakanvektor-kolom berukurann, bila hanyamemilikisatu

kolom dann baris, yang dinyatakan sebagai berikut

 a11

 a21

 a1

 a2

a=    

=

(1.3)      

 

an1 an

1.3 Inisialisasi matrik dalam memori komputer

Sebelum dilanjutkan, saya sarankan agar anda mencari tahu sendiri bagaimana cara

membuatm-filedi Matlab dan bagaimana cara menjalankannya. Karena semuasource code

yang terdapat dalam buku ini ditulis dalam m-file. Walaupun sangat mudah untuk

melakukancopy-paste, na- mun dalam upaya membiasakan diri menulissource codedim-file,

saya anjurkan anda menulis ulang semuanya.

Dalam Matlab terdapat 3 cara inisialisasi matrik. Carapertama1 , sesuai dengan Contoh 1,

adalah

1 clear all

2 clc

3

4 A(1,1) = 3;

5 A(1,2) = 8;

6 A(1,3) = 5;

7 A(2,1) = 6;

8 A(2,2) = 4;

9 A(2,3) = 7;10 A

1Cara ini bisa diterapkan pada bahasa C, Fortran, Pascal, Delphi, Java, Basic, dll. Sementara cara kedua dan

cara ketiga hanya akan dimengerti oleh Matlab

Page 19: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 19/279

Sedangkan untuk matrikB3×2 , sesuai Contoh 2 adalah

1 clear all2 clc

3

4 B(1,1) = 1;

5 B(1,2) = 3;

6 B(2,1) = 5;

7 B(2,2) = 9;

8 B(3,1) = 2;

9 B(3,2) = 4;

10 B

Cara kedua relatif lebih mudah dan benar-benar merepresentasikan dimensi matriknya, di-

mana jumlah baris dan jumlah kolom terlihat dengan jelas.

1 clear all

2 clc

3

4 A=[ 3 8 5

5 6 4 7 ];

6

7 B=[ 1 3

8 5 9

9 2 4 ];

Cara ketiga jauh lebih singkat, namun tidak menunjukkan dimensi matrik lantaran ditulis

hanya dalam satu baris.

1 clear all

2 clc

3

4 A=[ 3 8 5 ; 6 4 7 ];

5 B=[ 1 3 ; 5 9 ; 2 4];

1.4 Macam-macam matrik

1.4.1 Matrik transpose

Operasi transposeterhadap suatu matrik akanmenukar elemen-elemenkolommenjadi

elemen- elemen baris. Notasi matrik tranpose adalahAT atauAt .

Contoh 3: Operasi transpose terhadap matrikA

"

3 8 5#

A=

 3 6

AT

8 4

6 4 7

5 7

Dengan Matlab, operasi transpose cukup dilakukan dengan menambahkan tanda petik tung-

gal di depan nama matriknya

Page 20: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 20/279

1 clear all

2 clc

3

4 A=[ 3 8 5

5 6 4 7 ];

6

7 AT = A’;

1.4.2 Matrik bujursangkar

Matrik bujursangkar adalah matrik yang jumlah baris dan jumlah kolomnya sama.

Contoh4: Matrik bujursangkar berukuran 3x3 atau sering juga disebut matrik

 bujursangkar orde 3    

1 3 8

A= 

5 9 7

 

2 4 6

1.4.3 Matrik simetrik

Matrik simetrik adalah matrik bujursangkar yang elemen-elemen matrik transpose-nya berni-

lai sama dengan matrik asli-nya.

Contoh 5: Matrik simetrik

  

2 −3 7 1

  

2 −3 7 1

A= −3 5 6 −2    −3 5 6 −2 

  A

T=

  7 6 9 8

  7 6 9 8

 1 −2 8 10 

 1 −2 8 10 

1.4.4 Matrik diagonal

Matrik diagonal adalah matrik bujursangkar yang seluruh elemen-nya bernilai 0 (nol),

kecuali elemen-elemen diagonalnya.

Contoh 6: Matrik diagonal orde 3

 11 0 0

A=  

0 29 0

 

0 0 61

1.4.5 Matrik identitas

Matrik identitas adalah matrik bujursangkar yang semua elemen-nya bernilai 0 (nol), kecuali

elemen-elemen diagonal yang seluruhnya bernilai 1.

Contoh 7: Matrik identitas orde 3

 1 0 0

I= 

0 1 0

 

0 0 1

Page 21: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 21/279

1.4. MACAM-MACAM MATRIK 5

6 2

4 1

0 8

0 0

7

0

1.4.6 Matrik upper-triangular

Matrik upper-tringular adalah matrik bujursangkar yang seluruh elemen dibawah elemen di-agonal bernilai 0 (nol).

Contoh 8: Matrik upper-triangular

 

3 1

 0 5

A=   

 0

 

9

1.4.7 Matrik lower-triangular

Matrik lower-tringular adalah matrik bujursangkar yang seluruh elemen diatas elemen

diago- nal bernilai 0 (nol).

Contoh 9: Matrik lower-triangular

 12 0 0 0

 32 −2 0 0

A=   

  8 7 11 0

 

−5 10 6 9

1.4.8 Matrik tridiagonal

Matrik tridiagonal adalah matrik bujursangkar yang seluruh elemen bukan 0 (nol) berada

dis- ekitar elemen diagonal, sementara elemen lainnya bernilai 0 (nol).

Contoh 10: Matrik tridiagonal

 

3 6 0 0

 2 −4 1 0

A=   

 0 5 8 −7

0 0 3 9

1.4.9 Matrik diagonal dominan

Matrik diagonal dominan adalah matrik bujursangkar yang memenuhi

|aii | >nX

 j=1, j=i

|ai j | (1.4)

dimanai=1,2,3,..n. Coba perhatikan matrik-matrik berikut ini

 7 2 0

A= 

3 5 −1

  6 4 −3

B=  

4 −2 0

0 5 −6

 

−3 0 1

Page 22: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 22/279

x23

Pada elemen diagonalaii matrikA,|7| > |2|+ |0|,lalu|5| > |3|+ |−1|, dan|−6| > |5|+ |0|.

Maka

matrikAdisebut matrik diagonal dominan. Sekarang perhatikan elemen diagonal matrikB,

|6| < |4| + | − 3|, | − 2| < |4| + |0|,dan|1| < | − 3| + |0|.Dengan demikian, matrikB bukan

matrik diagonal dominan.

1.4.10 Matrik positive-definite

Suatu matrik dikatakan positive-definite bila matrik tersebut simetrik dan memenuhi

xTAx> 0 (1.5)

Contoh 11: Diketahui matrik simetrik berikut

  2 −1 0

A= 

−1 2 −1

 

0 −1 2

untuk menguji apakah matrikA bersifat positive-definite,maka

  2 −1 0

  x1

xTAx =

h

x1 x2 x3 

i  

−1 2 −1  

x2

0 −1 2

   

x3 

2x1 − x2

=

h

x1 x2 x3 

i  

−x1 + 2x2 − x3 

 

−x2 + 2x3

= 2x2 − 2x1 x2 + 2x2 − 2x2x3 + 2x21 2 3

= x2+ (x2 − 2x1 x2 + x2 ) + (x2 − 2x2x3 + x2 ) + x2

1 1 2 2 3 3

= x2+ (x1 − x2 )

2+ (x2 − x3 )

2+ x2

1 3

Dari sini dapat disimpulkan bahwa matrikA bersifat positive-definite,karena memenuhi

1 + (x1 − x2 )2+ (x2 − x3)

2+ x2 > 0

kecuali jikax1 =x2=x3=0.

1.5 Operasi matematika

1.5.1 Penjumlahan matrik

Operasi penjumlahan pada dua buah matrik hanya bisa dilakukan bila kedua matrik tersebut

 berukuran sama. Misalnya matrikC2×3

"

9 5 3#

C=7 2 1

Page 23: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 23/279

1.5. OPERASI MATEMATIKA 7

dijumlahkan dengan matrikA2×3 , lalu hasilnya (misalnya) dinamakan matrikD2×3

D= A+ C

"

3 8 5#

D =6 4 7

"

9 5 3#

+7 2 1

"

3 + 9 8 + 5 5 + 3#

=6 + 7 4 + 2 7 +

1"

12  13 8#

=13 6 8

Tanpamempedulikannilaielemen-elemen masing-masingmatrik, operasipenjumlahanantara

matrikA2×3 danC2×3 , bisa juga dinyatakan dalam indeks masing-masing dari kedua matrik

tersebut, yaitu "

d11 d12 d13 

#

=d21 d22 d23

"a11 + c11 a12 + c12 a13 + c13 

#

a21 + c21 a22 + c22 a23 + c23

Dijabarkan satu persatu sebagai berikut

d11 = a11 + c11

d12 = a12 +c12

d13 = a13 + c13 (1.6)

d21 = a21 +

c21 d22 = a22 +

c22 d23 = a23 +

c23

Dari sini dapat diturunkan sebuah rumus umum penjumlahan dua buah

matrik

di j  = ai j  + ci j (1.7)

dimanai=1,2 dan j=1,2,3.Perhatikan baik-baik! Batasi hanya sampai angka 2 sementara

batas j sampai angka 3. Kemampuan anda dalam menentukan batas indeks sangat penting

dalam dunia programming.

1.5.2 Komputasi penjumlahan matrik

Berdasarkan contoh operasi penjumlahan di atas, indeks j pada persamaan (1.7)lebih cepat berubah dibanding indeksi sebagaimana ditulis pada 3 baris pertama dari Persamaan

(1.6),

d11 = a11 +

c11 d12 = a12 +

Page 24: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 24/279

8 BAB 1. MATRIK DAN KOMPUTASIc12 d13 = a13 +

c13

Page 25: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 25/279

 Jelas terlihat, ketika indeksi masih bernilai 1, indeks j sudah berubah dari nilai 1 sampai 3.

Hal ini membawa konsekuensi padascriptpemrograman, dimanaloopinguntuk indeks j

harusdiletakkan di dalamloopingindeksi.Aturan mainnya adalah yanglooping-nya paling cepat

harus diletakkan paling dalam; sebaliknya,loopingterluar adalahloopingyang indeksnya

paling jarang berubah.

Bila anda masih belum paham terhadap kalimat yang dicetak tebal, saya akan berikan

con- tohsource codedasar yang nantinya akan kita optimasi selangkah demi selangkah. OK,

kita

mulai darisource codepaling mentah berikut ini.

1 clear all2 clc

3

4 A=[3 8 5; 6 4 7]; % inisialisasi mari! A

5

6 "=[9 5 3; 7 2 1]; % inisialisasi mari! B

7

8 % ###$rses $en&'mlaan mari!####

9 (1,1)=A(1,1)*"(1,1);

10 (1,2)=A(1,2)*"(1,2);

11 (1,3)=A(1,3)*"(1,3);

12 (2,1)=A(2,1)*"(2,1);

13 (2,2)=A(2,2)*"(2,2);

14 (2,3)=A(2,3)*"(2,3);

15

16 % ###menam$il!an mari! A, " +an ####

17 A

18 "

19

Tanda % berfungsi untuk memberikan komentar atau keterangan. Komentar atau keteran-

gan tidak akan diproses oleh Matlab. Saya yakin anda paham dengan logika yang ada pada

 bagian%  —proses penjumlahan matrik—-dalam source code di atas. Misalnya pada baris ke-9,

elemend11 adalah hasil penjumlahan antara elemena11 danc11 , sesuai dengan baris pertama

Persamaan 1.6.

Tahap pertama penyederhanaansource codedilakukan dengan menerapkan perintah for -

enduntuk proseslooping.Source codetersebut berubah

menjadi

1 clear all

2 clc

3

4 A=[3 8 5; 6 4 7]; % inisialisasi mari! A

5

6 "=[9 5 3; 7 2 1]; % inisialisasi mari! B

7

8 % ###$rses $en&'mlaan mari!####

9 r &=1-3

10 (1,&)=A(1,&)*"(1,&);

11 en+

12

13 r &=1-3

Page 26: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 26/279

14 (2,&)=A(2,&)*"(2,&);

15 en+

Page 27: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 27/279

16

17 % ###menam$il!an mari! A, " +an ####

18 A

19 "

20

Pada baris ke-9 dan ke-13, saya mengambil huruf j sebagai nama indeks dimana j bergerak

dari 1 sampai 3. Coba anda pikirkan, mengapa j hanya bergerak dari 1 sampai 3?

Modifikasi tahap kedua adalah sebagai berikut

1 clear all

2 clc

3

4 A=[3 8 5; 6 4 7]; % inisialisasi mari! A5

6 "=[9 5 3; 7 2 1]; % inisialisasi mari! B

7

8 % ###$rses $en&'mlaan mari!####

9 i=1

10 r &=1-3

11 (i,&)=A(i,&)*"(i,&);

12 en+

13

14 i=2

15 r &=1-3

16 (i,&)=A(i,&)*"(i,&);

17 en+18

19 % ###menam$il!an mari! A, " +an ####

20 A

21 "

22

Saya gunakan indeksi pada baris ke-9 dan ke-14 yang masing-masing berisi angka 1 dan 2.

Dengan begitu indeksi bisa menggantikan angka 1 dan 2 yang semula ada di baris ke-11 dan

ke-16. Nah sekarang coba anda perhatikan, statemen pada baris ke-10, ke-11 dan ke-12 sama

persis dengan statemen pada baris ke-15, ke-16 dan ke-17, sehingga mereka bisa disatukan

kedalam sebuahloopingyang baru dimanai menjadi nama indeksnya.

1 clear all

2 clc

3

4 A=[3 8 5; 6 4 7]; % inisialisasi mari! A

5

6 "=[9 5 3; 7 2 1]; % inisialisasi mari! B

7

8 % ###$rses $en&'mlaan mari!####

9 r i=1-2

10 r &=1-3

11 (i,&)=A(i,&)*"(i,&);

12 en+

13 en+

14

15 % ###menam$il!an mari! A, " +an ####

Page 28: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 28/279

10 BAB 1. MATRIK DAN KOMPUTASI

16 A

17 "

18

Coba anda pahami dari baris ke-9, mengapa indeksi hanya bergerak dari 1 sampai 2?

Source code di atas memang sudah tidak perlu dimodifikasi lagi, namun ada sedikit saran

untuk penulisanlooping bertingkat dimana sebaiknyaloopingterdalam ditulis agak menjorok

kedalamseperti berikut ini

1 clear all

2 clc

3

4 A=[3 8 5; 6 4 7]; % inisialisasi mari! A

5

6 "=[9 5 3; 7 2 1]; % inisialisasi mari! B

7

8 % ###$rses $en&'mlaan mari!####

9 r i=1-2

10 r &=1-3

11 (i,&)=A(i,&)*"(i,&);

12 en+

13 en+

14

15 % ###menam$il!an mari! A, " +an ####

16 A

17 "

18

Sekarang anda lihat bahwaloopingindeks j ditulis lebih masuk kedalam dibandingkan loop-

ing indeksi. Semoga contoh ini bisa memperjelasaturan umum pemrograman dimana yang

looping-nya paling cepat harus diletakkan paling dalam; sebaliknya,loopingterluar adalahloopingyang indeksnya paling jarang berubah.Dalam contoh iniloopingindeks j bergerak

lebih cepat dibandingloopingindeksi.

1.5.3 Perkalian matrik

Operasi perkalian dua buah matrik hanya bisa dilakukan bila jumlah kolom matrik pertama

sama dengan jumlah baris matrik kedua. Jadi kedua matrik tersebut tidak harus berukuran

sama seperti pada penjumlahan dua matrik. Misalnya matrikA2×3 dikalikan dengan matrik

B3×2 , lalu hasilnya (misalnya) dinamakan matrikE2×2

E2×2  = A2×3 .B3×2

Page 29: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 29/279

1.5. OPERASI MATEMATIKA 11

"

3 8 5#

E =

 1 3

 5 9

6 4 7  

2 4"

3.1 + 8.5 + 5.2 3.3 + 8.9 +

5.4#

=6.1 + 4.5 + 7.2 6.3 + 4.9 +

7.4"

53  101

#

=40 82

Tanpa mempedulikan nilai elemen-elemen masing-masing matrik, operasi perkalian antara

matrikA2×3 danB3×2 , bisa juga dinyatakan dalam indeks masing-masing dari kedua matrik

tersebut, yaitu

"e11 e12 

#

e21 e22

"

a11 .b11 + a12 .b21 + a13 .b31 a11 .b12 + a12 .b22 + a13 .b32#

=a21 .b11 + a22 .b21 + a23 .b31 a21 .b12 + a22 .b22 + a23

.b32

Bila dijabarkan, maka elemen-elemen matrikE2×2 adalah

e11 = a11 .b11 + a12 .b21 + a13 .b31 (1.8)e12 = a11 .b12 + a12 .b22 + a13 .b32 (1.9)

e21 = a21 .b11 + a22 .b21 + a23 .b31 (1.10)

e22 = a21 .b12 + a22 .b22 + a23 .b32 (1.11)

Sejenak, mari kita amati perubahan pasangan angka-angka indeks yang mengiringi elemen

e,elemena dan elemenb mulai dari persamaan (1.8) sampai persamaan (1.11). Perhatikan

perubahan angka-indeks-pertama pada elemeneseperti berikut ini

e1..  = ..e1..  = ..

e2..  = ..

e2..  = ..

Pola perubahan yang sama akan kita dapati padaangka-indeks-pertamadari elemena

e1..  = a1.. .b...  + a1.. .b...  + a1..

.b... e1..  = a1.. .b...  + a1.. .b...  +

a1.. .b... e2..  = a2.. .b...  + a2.. .b...

+ a2.. .b... e2..  = a2.. .b...  + a2..

.b... + a2.. .b...

Dengan demikian kita bisa mencantumkan hurufi sebagai pengganti angka-angka indeks

Page 30: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 30/279

yang polanya sama

ei..  = ai..  .b...  + ai..  .b...  + ai..

.b...

ei..  = ai..  .b...  + ai..  .b...  + ai..

.b... ei..  = ai..  .b...  + ai..  .b...  +

ai.. .b... ei..  = ai.. .b... + ai.. .b...

+ ai.. .b...

dimanai bergerak mulai dari angka 1 hingga angka 2, atau kita nyatakani=1,2. Selanjut-

nya, masih dari persamaan (1.8) sampai persamaan (1.11), marilah kita perhatikan perubahan

angka-indeks-kedua pada elemenedan elemen

b,

ei1  = ai..  .b..1  + ai..  .b..1  + ai..

.b..1 ei2  = ai..  .b..2  + ai..  .b..2  +

ai.. .b..2 ei1  = ai.. .b..1  + ai.. .b..1

+ ai..  .b..1 ei2  = ai..  .b..2  + ai..

.b..2 + ai.. .b..2

Dengan demikian kita bisa mencantumkan huruf j sebagai pengganti angka-angka indeks

yang polanya sama

ei j  = ai.. .b.. j  + ai.. .b.. j  + ai..

.b.. j ei j  = ai.. .b.. j  + ai.. .b.. j  +

ai.. .b.. j ei j  = ai.. .b.. j  + ai.. .b.. j

+ ai..  .b.. j ei j  = ai..  .b.. j  + ai..

.b.. j  + ai.. .b.. j

dimana j bergerak mulai dari angka 1 hingga angka 2, atau kita nyatakan j=1,2. Selanjutnya,

masih dari persamaan (1.8) sampai persamaan (1.11), mari kita perhatikan perubahan angka-

indeks-kedua elemena dan angka-indeks-pertama elemenb, dimana kita akan dapati pola

sebagai berikut

ei j  = ai1.b1 j  + ai2  .b2 j  + ai3

.b3 j ei j  = ai1.b1 j  + ai2 .b2 j  +

ai3 .b3 j ei j  = ai1.b1 j  + ai2 .b2 j

+ ai3  .b3 j ei j  = ai1.b1 j  + ai2

.b2 j  + ai3 .b3 j

Dan kita bisa mencantumkan hurufk sebagai pengganti angka-angka indeks yang polanya

Page 31: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 31/279

sama, dimanak bergerak mulai dari angka 1 hingga angka 3, atau kita nyatakank=1,2,3.

ei j  = aik   .bk  j  + aik  .bk  j  + aik 

.bk  j ei j  = aik  .bk  j  + aik  .bk  j  +

aik  .bk  j ei j  = aik  .bk  j  + aik  .bk  j

+ aik   .bk  j ei j  = aik   .bk  j  + aik 

.bk  j  + aik  .bk  j

Kemudian secara sederhana dapat ditulis sebagai berikut

ei j  = aik  .bk  j  + aik  .bk  j  + aik  .bk  j (1.12)

Selanjutnya dapat ditulis pula formula berikut

3

ei j  =X

aik  bk  j (1.13)k =1

dimanai=1,2; j=1,2; dank=1,2,3.

Berdasarkan contoh ini, maka secara umum bila ada matrikAn×m yang dikalikan dengan

ma- trikBm× p , akan didapatkan matrikEn×p dimana elemen-elemen matrikEmemenuhi

m

ei j  =

X

aik  bk  j (1.14)k =1

dengani=1,2,.. . ,n; j=1,2. . . ,p;dank=1,2.. . ,m.

1.5.4 Komputasi perkalian matrik

Mari kita mulai lagi darisource codepaling dasar dari operasi perkalian matrik sesuai dengan

contoh di atas.

1 clear all

2 clc

3

4 A = [3 8 5; 6 4 7]; % inisialisasi mari! A

5 B = [1 3; 5 9; 2 4]; % inisialisasi mari! B

6

7 % ###$rses $er!alian mari!####

8 .(1,1)=A(1,1)/B(1,1)*A(1,2)/B(2,1)*A(1,3)/B(3,1);

9 .(1,2)=A(1,1)/B(1,2)*A(1,2)/B(2,2)*A(1,3)/B(3,2);

10 .(2,1)=A(2,1)/B(1,1)*A(2,2)/B(2,1)*A(2,3)/B(3,1);

11 .(2,2)=A(2,1)/B(1,2)*A(2,2)

/B(2,2)*A(2,3)

/B(3,2);

12

13 % ###menam$il!an mari! A, B +an .####

14 A

15 B

16 .

Page 32: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 32/279

14 BAB 1. MATRIK DAN KOMPUTASI

Sejenak, mari kita amati dengan cermat statemen dari baris ke-9 sampai ke-12 sambil

dikaitkan

dengan bentuk umum penulisan indeks pada perkalian matrik yaitu

ei j  = aik  .bk  j  + aik  .bk  j  + aik  .bk  j (1.15)

Dari sana ada 4 pointyang perlu dicatat:

• elemenememiliki indeksi dan indeks j dimana indeks j lebih cepat berubah dibanding

indeksi.

• pada baris statemen ke-8 sampai ke-11 ada tiga kali operasi perkalian dan dua kali op-

erasi penjumlahan yang semuanya melibatkan indeksi, indeks j dan indeksk. Na-

mun indeksk selalu berubah pada masing-masing perkalian. Jadi indeksk paling cepat

 berubah dibanding indeksi dan indeks j.

• elemena memiliki indeksi dan indeksk dimana indeksk lebih cepat berubah

dibanding indeksi.

• elemenb memiliki indeksk dan indeks j dimana indeksk lebih cepat berubah

dibanding indeks j.

Tahapanmodifikasisource code perkalian matrik tidak semudahpenjumlahanmatrik.

Dan mengajarkan logika dibalik source code perkalian matrik jauh lebih sulit daripada

sekedar memodifikasi source code tersebut. Tapi akan saya coba semampu saya lewat tulisan

ini walau harus perlahan-lahan. Mudah-mudahan mudah untuk dipahami.

Saya mulai dengan memecah operasi pada statemen baris ke-8 yang bertujuan menghitung

nilaiE(1, 1)

1 clear all

2 clc

3

4 A = [3 8 5; 6 4 7]; % inisialisasi mari! A

5 B = [1 3; 5 9; 2 4]; % inisialisasi mari! B

6

7 % ###$rses $er!alian mari!####

8 % ###.(1,1) +ii'n0 3 !ali

9 .(1,1)=A(1,1)/B(1,1);

10 .(1,1)=.(1,1)*A(1,2)/B(2,1);

11 .(1,1)=.(1,1)*A(1,3)/B(3,1);

12

13 % ###.(1,2); .(2,1); +an .(2,2) masi se$eri sem'la

14 .(1,2)=A(1,1)/B(1,2)*A(1,2)/B(2,2)*A(1,3)/B(3,2);

15 .(2,1)=A(2,1)/B(1,1)*A(2,2)/B(2,1)*A(2,3)/B(3,1);

16 .(2,2)=A(2,1)/B(1,2)*A(2,2)/B(2,2)*A(2,3)/B(3,2);

17

18 % ###menam$il!an mari! A, B +an .####

19 A

20 B

21 .

Agar baris ke-9 memiliki pola yang sama dengan baris ke-11 dan ke-12, upaya yang dilakukan

adalah

Page 33: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 33/279

1.5. OPERASI MATEMATIKA 15

1 clear all

2 clc

3

4 A = [3 8 5; 6 4 7]; % inisialisasi mari! A

5 B = [1 3; 5 9; 2 4]; % inisialisasi mari! B

6

7 % ###$rses $er!alian mari!####

8 % ###.(1,1) +ii'n0 3 !ali

9 .(1,1)=;

10 .(1,1)=.(1,1)*A(1,1)/B(1,1);

11 .(1,1)=.(1,1)*A(1,2)/B(2,1);

12 .(1,1)=.(1,1)*A(1,3)/B(3,1);

13

14 % ###.(1,2); .(2,1); +an .(2,2) masi se$eri sem'la

15 .(1,2)=A(1,1)/B(1,2)*A(1,2)/B(2,2)*A(1,3)/B(3,2);

16 .(2,1)=A(2,1)/B(1,1)*A(2,2)/B(2,1)*A(2,3)/B(3,1);

17 .(2,2)=A(2,1)/B(1,2)*A(2,2)/B(2,2)*A(2,3)/B(3,2);

18

19 % ###menam$il!an mari! A, B +an .####

20 A

21 B

22 .

Dari sini kita bisa munculkan indeksk

1 clear all

2 clc

3

4 A = [3 8 5; 6 4 7]; % inisialisasi mari! A

5 B = [1 3; 5 9; 2 4]; % inisialisasi mari! B

6

7 % ###$rses $er!alian mari!####

8 .(1,1)=;

9 r !=1-3 % ! er0era! +ari 1 sam$ai 3

10 .(1,1)=.(1,1)*A(1,!)/B(!,1);

11 en+

12

13 % ###.(1,2); .(2,1); +an .(2,2) masi se$eri sem'la

14 .(1,2)=A(1,1)/B(1,2)*A(1,2)/B(2,2)*A(1,3)/B(3,2);

15 .(2,1)=A(2,1)/B(1,1)*A(2,2)

/B(2,1)*A(2,3)

/B(3,1);

16 .(2,2)=A(2,1)/B(1,2)*A(2,2)/B(2,2)*A(2,3)/B(3,2);

17

18 % ###menam$il!an mari! A, B +an .####

19 A

20 B

21 .

Kemudian cara yang sama dilakukan padaE(1, 2),E(2, 1), danE(2, 2). Anda mesti

cermat

dan hati-hati dalam menulis angka-angka indeks!!!

1 clear all

2 clc

3

4 A = [3 8 5; 6 4 7]; % inisialisasi mari! A

5 B = [1 3; 5 9; 2 4]; % inisialisasi mari! B

6

Page 34: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 34/279

Page 35: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 35/279

1.5. OPERASI MATEMATIKA 17

30 % ###menam$il!an mari! A, B +an .####

31 A

32 B

33 .

Sekarang coba anda perhatikan statemen pada baris ke-15 dan ke-19, lalu bandingkan indeks

i dan indeks j pada elemenE. Indeks mana yang berubah? Ya. Jawabannya adalah indeks j.

Dengan demikian kita bisa munculkan indeks j

1 clear all

2 clc

3

4 A = [3 8 5; 6 4 7]; % inisialisasi mari! A

5 B = [1 3; 5 9; 2 4]; % inisialisasi mari! B

6

7 % ###$rses $er!alian mari!####

8 r i=1-2 % i er0era! +ari 1 sam$ai 2

9 r &=1-2 % & er0era! +ari 1 sam$ai 2

10 .(i,&)=;

11 en+

12 en+

13

14 &=1;

15 r !=1-3

16 .(1,&)=.(1,&)*A(1,!)/B(!,&);

17 en+

18

19 &=2;

20 r !=1-3

21 .(1,&)=.(1,&)*A(1,!)/B(!,&);

22 en+

23

24 r !=1-3

25 .(2,1)=.(2,1)*A(2,!)/B(!,1);

26 en+

27

28 r !=1-3

29 .(2,2)=.(2,2)*A(2,!)/B(!,2);

30 en+

31

32 % ###menam$il!an mari! A, B +an .####

33 A

34 B

35 .

Lihatlah, statemen dari baris ke-15 sampai ke-17 memiliki pola yang sama dengan statemen

dari baris ke-20 sampai ke-22, sehingga mereka bisa disatukan kedalamloopingindeks j

1 clear all

2 clc

3

4 A = [3 8 5; 6 4 7]; % inisialisasi mari! A5 B = [1 3; 5 9; 2 4]; % inisialisasi mari! B

6

7 % ###$rses $er!alian mari!####

8 r i=1-2 % i er0era! +ari 1 sam$ai 2

Page 36: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 36/279

18 BAB 1. MATRIK DAN KOMPUTASI

9 r &=1-2 % & er0era! +ari 1 sam$ai 2

10 .(i,&)=;

11 en+

12 en+

13

14 r &=1-2

15 r !=1-3

16 .(1,&)=.(1,&)*A(1,!)/B(!,&);

17 en+

18 en+

19

20 r !=1-3

21 .(2,1)=.(2,1)*A(2,!)/B(!,1);

22 en+

23

24 r !=1-3

25 .(2,2)=.(2,2)*A(2,!)/B(!,2);

26 en+

27

28 % ###menam$il!an mari! A, B +an .####

29 A

30 B

31 .

Sekarang coba sekali lagi anda perhatikan statemen pada baris ke-21 dan ke-25, lalu band-

ingkan indeksi dan indeks j pada elemenE. Indeks mana yang berubah? Ya. Jawabannya

tetap indeks j.Dengan demikian kita bisa munculkan juga indeks j disana

1 clear all

2 clc

3

4 A = [3 8 5; 6 4 7]; % inisialisasi mari! A

5 B = [1 3; 5 9; 2 4]; % inisialisasi mari! B

6

7 % ###$rses $er!alian mari!####

8 r i=1-2 % i er0era! +ari 1 sam$ai 2

9 r &=1-2 % & er0era! +ari 1 sam$ai 2

10 .(i,&)=;

11 en+

12 en+13

14 r &=1-2

15 r !=1-3

16 .(1,&)=.(1,&)*A(1,!)/B(!,&);

17 en+

18 en+

19

20 &=1;

21 r !=1-3

22 .(2,&)=.(2,&)*A(2,!)/B(!,&);

23 en+

24

25 &=2;26 r !=1-3

27 .(2,&)=.(2,&)*A(2,!)/B(!,&);

28 en+

29

Page 37: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 37/279

1.5. OPERASI MATEMATIKA 19

30 % ###menam$il!an mari! A, B +an .####

31 A

32 B

33 .

Cermatilah, statemen dari baris ke-21 sampai ke-23 memiliki pola yang sama dengan statemen

dari baris ke-25 sampai ke-27, sehingga mereka pun bisa disatukan kedalamloopingindeks j

1 clear all

2 clc

3

4 A = [3 8 5; 6 4 7]; % inisialisasi mari! A

5 B = [1 3; 5 9; 2 4]; % inisialisasi mari! B

6

7 % ###$rses $er!alian mari!####8 r i=1-2 % i er0era! +ari 1 sam$ai 2

9 r &=1-2 % & er0era! +ari 1 sam$ai 2

10 .(i,&)=;

11 en+

12 en+

13

14 r &=1-2

15 r !=1-3

16 .(1,&)=.(1,&)*A(1,!)/B(!,&);

17 en+

18 en+

19

20 r &=1-2

21 r !=1-3

22 .(2,&)=.(2,&)*A(2,!)/B(!,&);

23 en+

24 en+

25

26 % ###menam$il!an mari! A, B +an .####

27 A

28 B

29 .

Akhirnya kita sampai pada bagian akhir tahapan modifikasi. Perhatikan baris ke-16 dan ke-22.

Indeksi pada elemenE danA bergerak dari 1 ke 2, sehingga indeksi bisa dimunculkan

1 clear all

2 clc

3

4 A = [3 8 5; 6 4 7]; % inisialisasi mari! A

5 B = [1 3; 5 9; 2 4]; % inisialisasi mari! B

6

7 % ###$rses $er!alian mari!####

8 r i=1-2 % i er0era! +ari 1 sam$ai 2

9 r &=1-2 % & er0era! +ari 1 sam$ai 2

10 .(i,&)=;

11 en+12 en+

13

14 i=1;

15 r &=1-2

Page 38: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 38/279

20 BAB 1. MATRIK DAN KOMPUTASI

16 r !=1-3

17 .(i,&)=.(i,&)*A(i,!)/B(!,&);

18 en+

19 en+

20

21 i=2;

22 r &=1-2

23 r !=1-3

24 .(i,&)=.(i,&)*A(i,!)/B(!,&);

25 en+

26 en+

27

28 % ###menam$il!an mari! A, B +an .####

29 A

30 B

31 .

Sekarang, statemen dari baris ke-15 sampai ke-19 memiliki pola yang sama dengan statemen

dari baris ke-22 sampai ke-26. Mereka bisa disatukan olehloopingindeksi

1 clear all

2 clc

3

4 A = [3 8 5; 6 4 7]; % inisialisasi mari! A

5 B = [1 3; 5 9; 2 4]; % inisialisasi mari! B

6

7 % ###$rses $er!alian mari!####

8 r i=1-2

9 r &=1-2

10 .(i,&)=;

11 en+

12 en+

13

14 r i=1-2

15 r &=1-2

16 r !=1-3

17 .(i,&)=.(i,&)*A(i,!)/B(!,&);

18 en+

19 en+

20 en+

21

22 % ###menam$il!an mari! A, B +an .####

23 A

24 B

25 .

Inilah hasil akhir dari tahapan-tahapan modifikasi yang selanjutnya saya sebut sebagai proses

optimasi. Upaya yang baru saja saya perlihatkan, sebenarnya penuh dengan jebakan-jebakan

kesalahan, terutama jika anda kurang cermat membaca indeks dan pola. Upaya seperti itu

memerlukan konsentrasi dan perhatian yang tidak sebentar. Upaya semacam itu tidak semu-

dah meng-copyhasil akhir optimasi. Walaupun bisa di-copy, namun saya menyarankan agaranda mencoba melakukan proses optimasi itu sekali lagi di komputer tanpa melihat catatan

ini dan tanpa bantuan orang lain. Kalau anda gagal, cobalah berfikir lebih keras untuk

mencari jalankeluarnya.  Jika masih tetap gagal, silakan lihat catatan ini sebentar saja

sekedar untuk

Page 39: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 39/279

Page 40: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 40/279

22 BAB 1. MATRIK DAN KOMPUTASI

Berdasarkan contoh tersebut, secara umum bila ada matrikA berukurann xmyang dikalikan

dengan vektor-kolomx berukuranm, maka akan didapatkan vektor-kolomy berukurann x1

Page 41: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 41/279

dimana elemen-elemen vektor-kolomymemenuhi

m

yi  =X

ai j x j (1.16) j=1

dengani=1,2,.. . ,n.

1.5.6 Komputasi perkalian matrik dan vektor-kolom

Mari kita mulai lagi darisource codepaling dasar dari operasi perkalian antara matrik dan

vektor-kolom sesuai dengan contoh di atas

1 clear all2 clc

3

4 A = [3 8 5; 6 4 7]; % inisialisasi mari! A

5 = [2; 3; 4]; % inisialisasi e!r

6

7 % ###$rses $er!alian mari! +an e!r####

8 (1,1)=A(1,1)/(1,1)*A(1,2)/(2,1)*A(1,3)/(3,1);

9 (2,1)=A(2,1)/(1,1)*A(2,2)/(2,1)*A(2,3)/(3,1);

10

11 % ###menam$il!an mari! A, B +an .####

12 A

13

14

Sejenak, mari kita amati dengan cermat statemen dari baris ke-8 dan ke-9 sambil dikaitkan

dengan bentuk umum penulisan indeks pada perkalian antara matrik dan vektor-kolom yaitu

yi1  = ai j .x j1 + ai j .x j1 + ai j .x j1 (1.17)

Dari sana ada 3 pointyang perlu dicatat:

• elemeny dan elemenxsama-sama memiliki indeksi yang berpasangan dengan angka 1.

• pada baris statemen ke-8 dan ke-9 ada tiga kali operasi perkalian dan dua kali operasi

penjumlahan yang semuanya melibatkan indeksi dan indeks j.Namun indeks j selalu

 berubah pada masing-masing perkalian. Jadi indeks j lebih cepat berubah dibanding

indeksi.

• elemena memiliki indeksi dan indeks j dimana indeks j lebih cepat berubah

dibanding indeksi.

Kita mulai dengan memecah operasi pada statemen baris ke-8 yang bertujuan

menghitung nilaiy(1, 1)

1 clear all

2 clc

3

Page 42: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 42/279

4 A = [3 8 5; 6 4 7]; % inisialisasi mari! A

5 = [2; 3; 4]; % inisialisasi e!r

6

7 % ###$rses $er!alian mari! +an e!r####

8 (1,1)=A(1,1)/(1,1);

9 (1,1)=(1,1)*A(1,2)/(2,1);

10 (1,1)=(1,1)*A(1,3)/(3,1);

11

12 (2,1)=A(2,1)/(1,1)*A(2,2)/(2,1)*A(2,3)/(3,1);

13

14 % ###menam$il!an mari! A, B +an .####

15 A

16

17

Agar baris ke-8 memiliki pola yang sama dengan baris ke-9 dan ke-10, upaya yang dilakukanadalah

1 clear all

2 clc

3

4 A = [3 8 5; 6 4 7]; % inisialisasi mari! A

5 = [2; 3; 4]; % inisialisasi e!r

6

7 % ###$rses $er!alian mari! +an e!r####

8 (1,1)=;

9 (1,1)=(1,1)*A(1,1)/(1,1);

10 (1,1)=(1,1)*A(1,2)/(2,1);11 (1,1)=(1,1)*A(1,3)/(3,1);

12

13 (2,1)=A(2,1)/(1,1)*A(2,2)/(2,1)*A(2,3)/(3,1);

14

15 % ###menam$il!an mari! A, B +an .####

16 A

17

18

Dari sini kita bisa munculkan indeks j

1 clear all2 clc

3

4 A = [3 8 5; 6 4 7]; % inisialisasi mari! A

5 = [2; 3; 4]; % inisialisasi e!r

6

7 % ###$rses $er!alian mari! +an e!r####

8 (1,1)=;

9 r &=1-3

10 (1,1)=(1,1)*A(1,&)/(&,1);

11 en+

12

13 (2,1)=A(2,1)/(1,1)*A(2,2)/(2,1)*A(2,3)/(3,1);

1415 % ###menam$il!an mari! A, B +an .####

16 A

17

18

Page 43: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 43/279

24 BAB 1. MATRIK DAN KOMPUTASI

Dengan cara yang sama, baris ke-13 dimodifikasi menjadi

1 clear all2 clc

3

4 A = [3 8 5; 6 4 7]; % inisialisasi mari! A

5 = [2; 3; 4]; % inisialisasi e!r

6

7 % ###$rses $er!alian mari! +an e!r####

8 (1,1)=;

9 r &=1-3

10 (1,1)=(1,1)*A(1,&)/(&,1);

11 en+

12

13 (2,1)=;

14 r &=1-315 (2,1)=(2,1)*A(2,&)/(&,1);

16 en+

17

18 % ###menam$il!an mari! A, B +an .####

19 A

20

21

Inisialisasi vektorydengan angka nol dapat dilakukan diawal proses perkalian, sekaligus

memunculkan indeksi

1 clear all

2 clc

3

4 A = [3 8 5; 6 4 7]; % inisialisasi mari! A

5 = [2; 3; 4]; % inisialisasi e!r

6

7 % ###$rses $er!alian mari! +an e!r####

8 r i=1-2

9 (i,1)=;

10 en+

11

12 r &=1-3

13 (1,1)=(1,1)*A(1,&)/(&,1);14 en+

15

16 r &=1-3

17 (2,1)=(2,1)*A(2,&)/(&,1);

18 en+

19

20 % ###menam$il!an mari! A, B +an .####

21 A

22

23

Kemudian,untukmenyamakanpolastatemen baris ke-13 dan ke-17, indeksikembalidimunculkan

1 clear all

2 clc

3

Page 44: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 44/279

1.6. PENUTUP 25

4 A = [3 8 5; 6 4 7]; % inisialisasi mari! A

5 = [2; 3; 4]; % inisialisasi e!r

6

7 % ###$rses $er!alian mari! +an e!r####

8 r i=1-2

9 (i,1)=;

10 en+

11

12 i=1;

13 r &=1-3

14 (i,1)=(i,1)*A(i,&)/(&,1);

15 en+

16

17 i=2;

18 r &=1-3

19 (i,1)=(i,1)*A(i,&)/(&,1);

20 en+

21

22 % ###menam$il!an mari! A, B +an .####

23 A

24

25

Akhir dari proses optimasi adalah sebagai berikut

1 clear all

2 clc

3

4 A = [3 8 5; 6 4 7]; % inisialisasi mari! A

5 = [2; 3; 4]; % inisialisasi e!r

6

7 % ###$rses $er!alian mari! +an e!r####

8 r i=1-2

9 (i,1)=;

10 en+

11

12 r i=1-2

13 r &=1-3

14(i,1)=(i,1)*A(i,&)/(&,1);

15 en+

16 en+

17

18 % ###menam$il!an mari! A, B +an .####

19 A

20

21

1.6 Penutup

Demikianlahcatatan singkat dan sederhana mengenai jenis-jenismatrik dasar dan operasipen- jumlahan dan perkalian yang seringkali dijumpai dalam pengolahan data secara

numerik. Se- muanya akan dijadikan acuan atau referensi pada pembahasan topik-topik

numerik yang akan datang.

Page 45: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 45/279

26 BAB 1. MATRIK DAN KOMPUTASI

 

1.7 Latihan

Diketahui matrikA, matrikB, dan vektorxsebagai berikut

  1 3 −6 −2

  5 9 7 5.6

  8 1 4 21 

  3 10 5 0.1

  0.4178

 −2.9587

A= B= 

x=

  2 4 8 −1

  7 −2 9 −5

    56.3069

2.3 1.4 0.8

−2.3

2.7 −12 −8.9

5.7

8.1

1. Buatlah script untuk menyelesaikan penjumlahan matrikAdan matrikB.

2. Buatlah script untuk menyelesaikan perkalian matrikAdan matrikB.

3. Buatlah script untuk menyelesaikan perkalian matrikAdan vektorx.

4. Buatlah script untuk menyelesaikan perkalian matrikBdan vektorx.

Page 46: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 46/279

  Bab 2

Fungsi

✍ Objektif :

⊲ Mengenalkan fungsi internal.

⊲ Membuat fungsi ekstenal.

⊲ Membuat fungsi ekternal untuk penjumlahan matrik.

⊲ Membuat fungsi ekternal untuk perkalian matrik.

2.1 Fungsi internal

Pada bab terdahulu kita sudah melakukan proses optimasi penjumlahan matrik dengan

source codeakhir seperti ini

1 clear all

2 clc

3

4 A=[3 8 5; 6 4 7]; % inisialisasi mari! A

5 "=[9 5 3; 7 2 1]; % inisialisasi mari! B

6

7 % ###$rses $en&'mlaan mari!####

8 r i=1-2

9 r &=1-3

10 (i,&)=A(i,&)*"(i,&);

11 en+

12 en+

13

14 % ###menam$il!an mari! A, " +an ####

15 A

16 "

17

Pertanyaan yang segera muncul adalah apakahsource codetersebut bisa digunakanuntuk

menyelesaikan penjumlahan matrik yang dimensinya bukan 2x3 ? Misalnya

D= A+ C

27

Page 47: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 47/279

28 BAB 2. FUNGSI

 4 3 8 6

   2 6 7 2

D = 

5 1 2 3 

9 1 3 8

6 7 9 1

 

5 8 4 7

Tentu saja bisa, asal indeksi bergerak dari 1 sampai 3 dan indeks j bergerak dari 1 sampai 4.

Lihatsource code berikut

1 clear all

2 clc

3

4 A=[4 3 8 6; 5 1 2 3; 6 7 9 1]; % inisialisasi mari! A

5 "=[2 6 7 2; 9 1 3 8; 5 8 4 7]; % inisialisasi mari! B

6

7 % ###$rses $en&'mlaan mari!####8 r i=1-3

9 r &=1-4

10 (i,&)=A(i,&)*"(i,&);

11 en+

12 en+

13

14 % ###menam$il!an mari! A, " +an ####

15 A

16 "

17

Walaupun bisa digunakan, namun cara modifikasi seperti itu sangat tidak fleksibel dan bere-siko salah jika kurang teliti. Untuk menghindari resiko kesalahan dan agar lebih fleksibel,

source codetersebut perlu dioptimasi sedikit lagi menjadi

1 clear all

2 clc

3

4 A=[4 3 8 6; 5 1 2 3; 6 7 9 1]; % inisialisasi mari! A

5 "=[2 6 7 2; 9 1 3 8; 5 8 4 7]; % inisialisasi mari! B

6

7 % ###$rses $en&'mlaan mari!####

8 +im=sie(A);

9 n=+im(1);

10 m=+im(2);

11 r i=1-n

12 r &=1-m

13 (i,&)=A(i,&)*"(i,&);

14 en+

15 en+

16

17 % ###menam$il!an mari! A, " +an ####

18 A

19 "

20

Perhatikan, ada tambahan 3 statemen yaitu mulai dari baris ke-8 sampai ke-10. Sementara

 baris ke-11 dan ke-12 hanya mengalami sedikit perubahan. Statemen di baris ke-8 bermaksud

mendeklarasikan variabeldim untuk diisi oleh hasil perhitungan fungsi internal yang

 bernama

Page 48: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 48/279

2.2. FUNGSI EKSTERNAL PENJUMLAHAN MATRIK 29

i!e. MatrikAdijadikan parameter input fungsii!e. Fungsii!e  berguna untuk menghitung

 jumlah baris dan jumlah kolom dari matrikA. Hasilnya adalahdim(1) untuk jumlah baris

dandim(2) untuk jumlah kolom. Pada baris ke-9, variabeln dideklarasikan untuk menerimainformasi jumlah baris daridim(1), sementara variabelm diisi dengan informasi jumlah

kolom daridim(2) pada baris ke-10. Adapun baris ke-11 dan ke-12 hanya mengubah angka

indeks batas atas, masing-masing menjadin danm.

Sekarang kalau kita balik lagi menghitung penjumlahan matrik dari contoh sebelumnya

yang berukuran 2x3, maka source code akan seperti ini

1 clear all

2 clc

3

4 A=[3 8 5; 6 4 7]; % inisialisasi mari! A

5 "=[9 5 3; 7 2 1]; % inisialisasi mari! B

6

7 % ###$rses $en&'mlaan mari!####

8 +im=sie(A);

9 n=+im(1);

10 m=+im(2);

11 r i=1-n

12 r &=1-m

13 (i,&)=A(i,&)*"(i,&);

14 en+

15 en+

16

17 % ###menam$il!an mari! A, " +an ####

18 A

19 "

20

Ajaib bukan!? Tidak ada statemen yang berubah kecuali hanya pada baris ke-4 dan ke-5. Pe-

rubahan itu tidak bisadihindarikarena memang di kedua baris itulahdeklarasielemen-

elemen matrikAdan matrikCdilakukan.

2.2 Fungsi eksternal penjumlahan matrik

Saatnya kita memasuki topik tentang pembuatan fungsi eksternal. Darisource codeyang ter-

akhir tadi, mari kita ambil bagian proses penjumlahan matrik-nya saja

1 +im=sie(A);

2 n=+im(1);

3 m=+im(2);

4 r i=1-n

5 r &=1-m

6 (i,&)=A(i,&)*"(i,&);

7 en+

8 en+

Kita akan jadikan potongansource codeini menjadi fungsi eksternal, dengan menambahkan

statemen functionseperti ini

Page 49: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 49/279

30 BAB 2. FUNGSI

1 'ncin =&'mla(A,")

2 +im=sie(A);

3 n=+im(1);4 m=+im(2);

5 r i=1-n

6 r &=1-m

7 (i,&)=A(i,&)*"(i,&);

8 en+

9 en+

kemudian ia harus di-savedengan nama jumlah.m. Sampai dengan langkah ini kita telah mem-

 buat fungsi eksternal dan diberi nama fungsi jumlah. Sederhana sekali bukan? Untuk menguji

kerja fungsi eksternal tersebut, coba jalankansource code berikut ini

1 clear all

2 clc

3

4 A=[3 8 5; 6 4 7]; % inisialisasi mari! A

5 "=[9 5 3; 7 2 1]; % inisialisasi mari! B

6

7 % ###$rses $en&'mlaan mari!####

8 =&'mla(A,")

9

10 % ###menam$il!an mari! A, " +an ####

11 A

12 "

13

atau anda jalankansource codeyang berikut ini

1 clear all

2 clc

3

4 A=[4 3 8 6; 5 1 2 3; 6 7 9 1]; % inisialisasi mari! A

5 "=[2 6 7 2; 9 1 3 8; 5 8 4 7]; % inisialisasi mari! B

6

7 % ###$rses $en&'mlaan mari!####

8 =&'mla(A,")9

10 % ###menam$il!an mari! A, " +an ####

11 A

12 "

13

atau coba iseng-iseng anda ganti matrik-nya menjadi

1 clear all

2 clc

3

4 =[4 3; 5 1]; % inisialisasi mari! 5 =[2 6; 9 3]; % inisialisasi mari!

6

7 % ###$rses $en&'mlaan mari!####

8 =&'mla(,)

Page 50: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 50/279

2.3. FUNGSI EKSTERNAL PERKALIAN MATRIK 31

9

10 % ###menam$il!an mari! , +an ####

11

12

13

Periksa hasilnya, betul atau salah? Pasti betul! Kesimpulannya adalah setelah fungsi eksternal

 berhasil anda dapatkan, maka seketika itu pula anda tidak perlu menggubrisnya lagi. Bahkan

anda tidak perlu mengingat nama matrik aslinya yang tertulis di fungsi jumlahyaitu matrik

A, matrikCdan matrikD. Ditambah lagi,source codeanda menjadi terlihat lebih singkat dan

elegan. Dan kini, perhatian anda bisa lebih difokuskan pada deklarasi matrik-nya saja.

2.3 Fungsi eksternal perkalian matrik

Mari kita beralih ke perkalian matrik. Kita akan membuat fungsi eksternal untuk perkalian

matrik. Berikut ini adalahsource codeperkalian matrik hasil akhir optimasi yang telah ditulis

panjang lebar pada bab sebelumnya

1 clear all

2 clc

3

4 A = [3 8 5; 6 4 7]; % inisialisasi mari! A

5 B = [1 3; 5 9; 2 4]; % inisialisasi mari! B

6

7 % ###$rses $er!alian mari!####

8 r i=1-2

9 r &=1-2

10 .(i,&)=;

11 en+

12 en+

13

14 r i=1-2

15 r &=1-2

16 r !=1-3

17 .(i,&)=.(i,&)*A(i,!)/B(!,&);

18 en+

19 en+

20 en+

21

22 % ###menam$il!an mari! A, B +an .####

23 A

24 B

25 .

Source codetersebut digunakan untuk menghitung perkalian matrik berikut

E2×2  = A2×3  " B3×2

Dan kita bisa sepakati simbol indeksm,n, danpuntuk men-generalisir dimensi matrik

Em×n  = Am× p  " B p×n

Page 51: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 51/279

32 BAB 2. FUNGSI

Dengan demikian,source codetersebut dapat dioptimasi menjadi

1 clear all2 clc

3

4 A = [3 8 5; 6 4 7]; % inisialisasi mari! A

5 B = [1 3; 5 9; 2 4]; % inisialisasi mari! B

6

7 % ###$rses $er!alian mari!####

8 +im=sie(A);

9 m=+im(1);

10 $=+im(2);

11 +im=sie(B);

12 n=+im(2);

13 r i=1-m

14 r &=1-n15 .(i,&)=;

16 en+

17 en+

18

19 r i=1-m

20 r &=1-n

21 r !=1-$

22 .(i,&)=.(i,&)*A(i,!)/B(!,&);

23 en+

24 en+

25 en+

26

27 % ###menam$il!an mari! A, B +an .####28 A

29 B

30 .

Selanjutnya kita ambil bagian proses perkalian matriknya untuk dibuat fungsi eksternal

1 'ncin .=!ali(A,B)

2 +im=sie(A);

3 m=+im(1);

4 $=+im(2);

5 +im=sie(B);

6 n=+im(2);7 r i=1-m

8 r &=1-n

9 .(i,&)=;

10 en+

11 en+

12

13 r i=1-m

14 r &=1-n

15 r !=1-$

16 .(i,&)=.(i,&)*A(i,!)/B(!,&);

17 en+

18 en+

19 en+

lalu di-savedengan namakali.m, maka terciptalah fungsi eksternal yang bernama fungsikali.

Kemudian coba anda uji fungsikalitersebut dengan menjalankansource code berikut

Page 52: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 52/279

2.4. FUNGSI EKSTERNAL PERKALIAN MATRIK DAN VEKTOR-KOLOM 33

1 clear all

2 clc

3

4 A = [3 8 5; 6 4 7]; % inisialisasi mari! A

5 B = [1 3; 5 9; 2 4]; % inisialisasi mari! B

6

7 % ###$rses $er!alian mari!####

8 . = !ali(A,B)

9

10 % ###menam$il!an mari! A, B +an .####

11 A

12 B

13 .

Silakan anda periksa hasil perhitungannya. Pasti betul! Anda bisa mencoba perkalian ma-

trik lainnya dengan menggunakan source code tersebut. Bahkan anda bisa mengganti nama

matriknya untuk selainA,BdanE.

2.4 Fungsi eksternal perkalian matrik dan vektor-kolom

Mari kita beralih ke perkalian matrik dan vektor-kolom. Kita akan membuat fungsi eksternal

untuk perkalian matrik dan vektor-kolom. Berikut ini adalahsource codeperkalian matrik dan

vektor-kolom hasil akhir optimasi yang telah ditulis panjang lebar pada bab sebelumnya

1 clear all2 clc

3

4 A = [3 8 5; 6 4 7]; % inisialisasi mari! A

5 = [2; 3; 4]; % inisialisasi e!r

6

7 % ###$rses $er!alian mari! +an e!r####

8 r i=1-2

9 (i,1)=;

10 en+

11

12 r i=1-2

13 r &=1-3

14 (i,1)=(i,1)*A(i,&)/(&,1);15 en+

16 en+

17

18 % ###menam$il!an mari! A, B +an .####

19 A

20

21

Source codetersebut digunakan untuk menghitung perkalian matrik dan vektor-kolom berikut

y2×1  = A2×3  " x3×1

Dan kita bisa sepakati simbol indeksmdann untuk men-generalisir dimensi matrik

ym×1 = Am×n  " xn×1

Page 53: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 53/279

Page 54: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 54/279

2.5. PENUTUP 35

8 = !alie!r(A,);

9

10 % ###menam$il!an mari! A, B +an .####

11 A

12

Silakan anda periksa hasil perhitungannya. Pasti betul! Anda bisa mencoba perkalian ma-

trik dan vektor-kolom dengan angka elemen yang berbeda menggunakansource codetersebut.

Bahkan anda bisa mengganti nama matrik dan vektor nya untuk selainA,xdany.

2.5 Penutup

Ada tiga pilar yang harus dikuasai oleh seorang calon programmer. Pertama, ia harus tahu

 bagaimana cara mendeklarasikan data. Kedua, ia harus tahu bagaimana mendayagunakan

 flow-control, yang dalam bab ini dan bab sebelumnya menggunakan pasangan for-end. Dan

ketiga, ia harus bisa membuat fungsi eksternal.

Tidak ada yang melarang anda beralih ke Fortran, atau ke Delphi, atau ke C++, atau ke

Python, atau bahasa pemrograman apa saja. Saran saya, ketika anda berkenalan dengan suatu

 bahasa pemrograman, yang pertama kali anda lakukan adalah menguasai ketiga pilar itu. In-

sya Allahia akan membantu anda lebih cepat mempelajari bahasa pemrograman yang

sedang anda geluti.

Penguasaanatas ketiga pilartersebutakanmengarahkan programmeruntukmembuat

source code yang bersifatmodularatauextention. Ini adalah modal untuk memasuki apa yang

disebutobject oriented programming.

Sesungguhnya Matlab memiliki banyak fungsi internal yang bisa langsung dipakai. Anda

 bisa coba sendiri suatu saat nanti. Kekuatan bahasa pemrograman salah satunya terletak

pada seberapakayadia memilik banyak fungsi.Libraryadalah kata lain untuk fungsi. Jadi,

suatu bahasa pemrograman akan semakin unggul bila dia memiliki semakin banyaklibrary.

Menurut saya, yang terdepan saat ini masihdimenangkanoleh Python. Dengan Python,

source codeanda akan bisa berjalan di Windows, Linux dan Machintos serta beberapa

platform lainnya.

Page 55: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 55/279

36 BAB 2. FUNGSI

Page 56: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 56/279

Page 57: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 57/279

37

Page 58: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 58/279

38 BAB 3. METODE ELIMINASI GAUSS

algoritma yang nantinya bisa berjalan di komputer. Untuk mencapai tujuan itu, kita akan

 berpatokan pada tiga buah aturan operasi matematika, yaitu

• Persamaan#idapat dikalikan dengan sembarang konstanta$, lalu hasilnya

ditempatkan di posisi persamaan#i . Simbol operasi ini adalah($#i ) % (#i ). Contoh

#1 x1 + x2 + 3x4 = 4

 jika$ = 2, maka

2#1 2x1 + 2x2 + 6x4 = 8

• Persamaan# j dapat dikalikan dengan sembarang konstanta$ kemudiandijumlahkan

dengan persamaan#i , lalu hasilnya ditempatkan di posisi persamaan#i.Simbol

operasi

ini adalah(#i − $# j ) % (#i ). Contoh

#2 2x1 + x2 − x3 + x4 = 1

2#1 2x1 + 2x2 + 6x4 = 8

maka operasi(#2 − 2#1 ) % (#2 )mengakibatkan perubahan pada#2 menjadi

#2 −x2 − x3 − 5x4 =

−7

Dengan cara ini, maka variabelx1 berhasil dihilangkan dari#2. Upaya untuk menghi-

langkan suatu variabel merupakan tahapan penting dalam metode Eliminasi Gauss.

• Persamaan#i dan# j dapat bertukar posisi. Simbol operasi ini adalah(#i ) & (# j ).

Con- toh

#2 2x1 + x2 − x3 + x4 = 1

#3 3x1 − x2 − x3 + 2x4 = −3

maka operasi(#2 ) & (#3 )mengakibatkan pertukaran posisi masing-masing persamaan,

menjadi

#2 3x1 − x2 − x3 + 2x4 = −3

#3 2x1 + x2 − x3 + x4 = 1

3.2.1 Cara menghilangkan sebuah variabel

Sebelum dilanjut, saya ingin mengajak anda untuk fokus memahami aturan operasi yang

ked- ua. Misalnya ada 2 persamaan linear yaitu

#1 3x1 + 2x2 − 5x3 + 8x4 = 3

#2 4x1 + 7x2 − x3 + 6x4 = 9

Page 59: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 59/279

3

3

3

3

3

!11

a aaaa

3.2. TEKNIK PENYEDERHANAAN 39

Kemudian anda diminta untuk menghilangkan variabelx1 dari#2. Itu artinya, anda diminta

untuk memodifikasi#2 sedemikian rupa sehingga didapat#2 yang baru, yang didalamnya

tidak adax1 .

Berdasarkan rumus operasi(#i −$# j ) % (#i ), maka operasi yang tepat adalah(#2 − 4 #1 )

% (#2 ). Perhatikan! Bilangan$, yaitu 4, harus dikalikan dengan#1 , BUKAN dengan#2 .

Sedan- gkan angka4 adalah satu-satunya angka yang bisa menghapus variabelx1 dari#2

lewat op- erasi(#2 − 4 #1 ). Selengkapnya adalah sebagai berikut

#2 4x1 + 7x2 − x3 + 6x4 = 94

3 #1

4

3 3x1 +

4

3 2x2 −

4

3 5x3 +

4 4

3 8x4 =

3 3

Kemudian, hasil operasi(#2 − 4 #1 )disimpan sebagai#2 yang baru

4 4 4 4 4#2 4 −

3 3 x1 + 7 −

3 2 x2 − 1 −

3 5 x3 + 6 −

3 8 x4 = 9 −

3 3

Dengan sendirinyax1akan lenyap dari# 2.Mudah-mudahan jelas sampai disini. Demikianlah

cara untuk menghilangkanx1 dari# 2.

3.2.2 Permainan indeks

Sekarang, mari kita tinjau hal yang sama, yaitu menghilangkanx1 dari#2, namun menggu-

nakan ’permainan’ indeks. Secara umum,#1 dan#2 bisa dinyatakan sebagai

#1 a11 x1 + a12 x2 + a13 x3 + a14  = a15

#2 a21 x1 + a22 x2 + a23 x3 + a24  = a25

Agarx1 hilang dari#2, operasi yang benar adalah(#2 − $#1 ) % (#2 ), dimana$ =!21. Dengan

demikian,#2 yang baru akan memenuhi

a21 a21 a21 a21 a21#2 a21 −11

a11 x1+ a22 −11

a12 x2+ a23 −11

a13 x3+ a24 −11

a14 x4 = a25 −11

a15

Perhatikanlah variasi indeks pada persamaan diatas. Semoga intuisi anda bisa menangkap

keberadaan suatu pola perubahan indeks. Jika belum, mari kita kembangkan persoalan ini.

Sekarang saya ketengahkan kehadapan anda tiga buah persamaan, yaitu#1,#2 dan

#3

#1 a11 x1 + a12 x2 + a13 x3 + a14  = a15

#2 a21 x1 + a22 x2 + a23 x3 + a24  = a25

#3 a31 x1 + a32 x2 + a33 x3 + a34  = a35

Bagaimana cara menghilangkanx1 dari#3 dengan memanfaatkan#1??

Page 60: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 60/279

40 BAB 3. METODE ELIMINASI GAUSS

!11

!11

a a a a

a a a a a

Begini caranya,(#3 − $#1 ) % (#3 ), dengan$ =!31..

a31 a31

 

x +

 

a31

 

x +

 

a31

 

x = aa31− a

#3 a31 −11

a11

x1+ a32 −11

a12 2

a33 −11

a13 3

a34 −11

a14 4 35a11

15

Mudah-mudahan, pola perubahan indeksnya semakin jelas terlihat. Selanjutnya jika ada per-

samaan#4 yang ingin dihilangkanx1nya dengan memanfaatkan#1, bagaimana caranya?

Tentu saja operasinya adalah(#4 − $#1 ) % (#4 ), dengan$ =!41

a41 a41 a41 a41 a41#4 a41 −11

a11 x1+ a42 −11

a12 x2+ a43 −11

a13 x3+ a44 −11

a14 x4 = a45 −11

a15

3.3 Triangularisasi dan Substitusi Mundur

3.3.1 Contoh pertama

Sekarang, mari kita kembali kepada sistem persamaan linear yang sudah ditulis di awal bab

ini

#1 x1 + x2 + 3x4 = 4#2 2x1 + x2 − x3 + x4 = 1#

3 3x

1− x

2− x

3 +2x

4 = -3#4 −x1 + 2x2 + 3x3 − x4 = 4

Sekali lagi saya tegaskan bahwa problem dari sistem persamaan linear adalah bagaimana

mendapatkan angka-angkayang bisamenggantikanvariabelx1,x2 ,x3, danx4 sehingga

semua persamaan di atas menjadi benar. Dengan berpegang pada ketiga teknik

penyederhanaan tadi, maka sistem persamaan linear di atas dapat disederhanakan dengan

langkah-langkah berikut ini:

1. Gunakan persamaan#1 untuk menghilangkan variabelx1 dari persamaan#2 , #3 dan

#4dengan cara(#2 − 2#1 ) % (#2 ),(#3 − 3#1 ) % (#3 ) dan(#4 + #1 ) % (#4 ). Hasilnya

akan seperti ini

#1 x1 + x2 + 3x4 = 4,

#2

#3

#4

−x2 − x3 − 5x4

−4x2 − x3 − 7x4

3x2 + 3x3 + 2x4

=

=

=

−7,

−15,

8

Silakan anda cermati bahwax1 kini telah hilang dari#2,#3 dan#4.

2. Gunakan persamaan#2 untuk menghilangkan variabelx2 dari persamaan#3 dan#4

Page 61: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 61/279

3.3. TRIANGULARISASI DAN SUBSTITUSI MUNDUR 41

dengan cara(#3 − 4#2 ) % (#3 )dan(#4 + 3#2 ) % (#4 ). Hasilnya akan seperti ini

#1 x1 + x2 + 3x4 = 4,#2

#3

−x2 − x3 − 5x4

3x3 + 13x4

=

=

−7,

13,

#4 −13x4 = −13

Kalau x3 masih ada dipersamaan #4 ,dibutuhkan satu operasilagi untuk

menghilangkan-

nya. Namun hasil operasi pada langkah ke-2 ternyata sudah otomatis menghilangkan

x3

dari#4 . Bentuk akhir dari sistem persamaan linear di atas, dikenal sebagai bentuktrian-

gular.

Sampai dengan langkah ke-2 ini, kita berhasil mendapatkan sistem persamaan linear

yang lebih sederhana. Apa yang dimaksud dengan sederhana dalam konteks ini? Su-

atu sistem persamaan linear dikatakan sederhana bila kita bisa mendapatkan seluruh

ni- lai pengganti variabelnya dengan cara yang lebih mudah atau dengan usaha yang

tidak memakan waktu lama dibandingkan sebelum disederhanakan.

3.Selanjutnyakita jalankanprosesbackward-substitutionuntukmendapatkanangka-angka pengganti bagix1 ,x2 ,x3 danx4. Melalui prosesbackward-substitution, yang

pertama kali didapat adalah angka pengganti bagi variabelx4 , kemudianx3 , lalu diikuti

x2, dan akhirnyax1 . Silakan cermati yang berikut ini

13#4 x4 = = 1,

−131 1

#3 x3 =3 

(13 − 13x4 ) = (13 13) = 0,3

#2 x2 = −(−7 + 5x4 + x3 ) = −(−7 + 5 + 0) = 2,

#1 x1 = 4 − 3x4 − x2 = 4 − 3 − 2 = −1

 Jadi solusinya adalahx1 = −1,x2 = 2,x3 = 0 danx4 = 1. Coba sekarang anda cek,

apakah semua solusi ini cocok dan tepat bila dimasukan ke sistem persamaan linear

yang pertama, yaitu yang belum disederhanakan?

OK, mudah-mudahan ngerti ya... Kalau belum paham, coba dibaca sekali lagi.Atau,

sekarang kita beralih kecontoh yang lain.

Page 62: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 62/279

42 BAB 3. METODE ELIMINASI GAUSS

3.3.2 Contoh kedua

Diketahui sistem persamaan linear, terdiri dari empat buah persamaan yaitu#1,#2,#3, dan#4

seperti berikut ini:

#1 x1 − x2 + 2x3 − x4 = -8#2 2x1 − 2x2 + 3x3 − 3x4 = -20#3 x1 + x2 + x3 = -2#4 x1 − x2 + 4x3 + 3x4 = 4

Seperti contoh pertama, solusi sistem persamaan linear di atas akan dicari dengan

langkah-

langkah berikut ini:

1. Gunakan persamaan#1 untuk menghilangkanx1 dari persamaan#2 ,  #3 dan#4

dengan cara(#2 − 2#1 ) % (#2 ),(#3 − #1 ) % (#3 )dan(#4 − #1 ) % (#4 ). Hasilnya akan

seperti ini

#1 x1 − x2 + 2x3 − x4  

= −8,

#2 −x3 − x4  

= −4,

#3 2x2 − x3 + x4 = 6,

#4 2x3 + 4x4 = 12

Perhatikan persamaan#2! Akibat dari langkah yang pertama tadi, ternyata tidak hanya

x1 saja yang hilang dari persamaan#2, variabelx2 pun turut hilang dari persamaan#2.

Kondisi ini bisa menggagalkan proses triangularisasi. Untuk itu, posisi#2 mesti ditukar

dengan persamaan yang berada dibawahnya, yang masih memiliki variabelx2 . Maka

yang paling cocok adalah ditukar dengan#3.

2. Tukar posisi persamaan#2 dengan persamaan#3,(#2 & #3 ). Hasilnya akan seperti ini

#1 x1 − x2 + 2x3 − x4 = −8,

#2 2x2 − x3 + x4 = 6,#3   −x3 − x4 = −4,

#4 2x3 + 4x4 = 12

3. Agar sistem persamaan linear di atas menjadi berbentuk triangular, maka kita harus

menghilangkan variabelx3 dari persamaan#4. Karenanya, gunakan persamaan#3 un-

tuk menghilangkanx3 dari persamaan#4 dengan cara(#4 + 2#3 ) % (#4 ). Hasilnya

akan seperti ini

#1 x1 − x2 + 2x3 − x4  

= −8, #2 2x2 − x3 + x4  

= 6, #3  −x3 − x4  

= −4, #4 2x4 =

4

Page 63: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 63/279

a11 a12 . . . a1n

a21 a22 . . . a2n

. . . .

3.4. MATRIK DAN ELIMINASI GAUSS 43

Sampai disini proses triangularisasi telah selesai.

4. Selanjutnya adalah proses backward-substitution. Melalui proses ini, yang pertama kali

didapat solusinya adalahx4 , kemudianx3 , lalu diikutix2 , dan akhirnyax1 .

4#4 x4 =

2= 2,

4 + x4#3 x3 =−

−1= 2,

#2 x2 = 6 + x3 − x4= 3,

2#1 x1 = −8 + x2 − 2x3 + x4 = −7

 Jadi solusinya adalahx1 = −7,x2 = 3,x3 = 2danx4 = 2.

Berdasarkan kedua contoh di atas, untuk mendapatkan solusi sistem persamaan linear,

diper- lukan operasitriangularisasidan prosesbackward-substitution. Katabackward-

substitutionkalau diterjemahkan kedalam bahasa indonesia, menjadisubstitusi-mundur.

Gabungan pros- es triangularisasi dan substitusi-mundur untuk menyelesaikan sistem

persamaan linear dike- nal sebagai metodeEliminasi Gauss.

3.4 Matrik dan Eliminasi Gauss

3.4.1 Matrik Augmentasi

Sejumlah matrik bisa digunakan untuk menyatakan suatu sistem persamaan linear. Sejenak,

mari kita kembali lagi melihat sistem persamaan linear secara umum seperti berikut ini:

a11 x1 + a12 x2 + . . . + a1n  = b1

a21 x1 + a22 x2 + . . . + a2n  = b2

. . . . . . . . . . . . 

= . . . . . . . . . . . . . 

. . . . an1x1 + an2 x2 + . . .

+ a x

=

=

. . 

.

b

Sementara, kalau dinyatakan dalam bentuk operasi matrik, maka akan seperti ini:

       x1 

       x2 

  b1 

  b2 

      =

(3.2)

     

        .    

an1 an2 . . . ann xn bn

Dalam mencari solusi suatu sistem persamaan linear dengan metode eliminasi gauss, bentuk

operasi matrik di atas dimanipulasi menjadimatrik augment, yaitu suatu matrik yang

Page 64: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 64/279

Page 65: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 65/279

44 BAB 3. METODE ELIMINASI GAUSS

. .

.  

|

rann x(n + 1)seperti berikut ini:

  

a11 a12 . . . a1n | b1 

  a21 a22 . . . a2n | b2 

  

a11 a12 . . . a1n | a1,n+1 

  a21 a22 . . . a2n | a2,n+1 

 

=   

(3.3) 

. .

 

. . .

an1 an2 . . . ann | bn an1 an2 . . . ann | an,n+1

Inilah source code Matlab untukmembentukmatrikaugmentasiyang terdiri atas matrik A

dan

vektor b,

1 clear all

2 clc

3

4 %#### inisialisasi mari! A ####

5 A = [1 1 3

6 2 1 #1 1

7 3 #1 #1 2

8 #1 2 3 #1];

9

10 %#### inisialisasi e!r ####

11 = [4 ; 1 ; #3 ; 4];

12

13 %#### memen'! mari! a'0menasi ####

14 +im = sie(A);

15 n = +im(1);

16 r i = 1-n

17 A(i,n*1) = (i);

18 en+

3.4.2 Penerapan pada contoh pertama

Pada contoh pertama di atas, diketahui sistem persamaan linear yang terdiri dari empat buah

persamaan yaitu#1,#2,#3, dan#4

#1 x1 + x2 + 3x4 = 4#2 2x1 + x2 − x3 + x4 = 1#3 3x1 − x2 − x3 + 2x4 = -3#4 −x1 + 2x2 + 3x3 − x4 = 4

Sistem persamaan linear tersebut dapat dinyatakan dalam operasi matrik

    1 1 0 3

    

2 1 −1 1

   x1

   x2

    4

    

1

      =

     

    3 −1 −1 2

−1 2 3 −1

   x3

  x4 

Page 66: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 66/279

3.4. MATRIK DAN ELIMINASI GAUSS 45  

−3    

4

Setelah itu matrik augment disusun seperti ini (perhatikan angka-angka indeks pada matriks

Page 67: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 67/279

1 1 0 3 | 42 1 −1 1 | 1

a12 a13 a14 | a15

a22 a23 a24 | a25

a32 a33 a34 | a35

a a a aa

a a a

a a

a a a aa

disebelahnya)

  

a11

  a21

 '

    3 −1 −1 2 | −3

 

−1 2 3 −1 | 4

  a31

 

a41 a42 a43 a44 | a45

Kemudian kita lakukan operasi triangularisai terhadap matrik augment, dimulai dari kolom

pertama (yang tujuannya untuk menghilangkan variabelx1 dari#2,#3, dan#4), yaitu

a21 a21 a21 a21 a21#2 a21 −11

a11 x1+ a22 −11

a12 x2+ a23 −11

a13 x3+ a24 −11

a14 x4 = a25 −11

a15

a31 a31 a31 a31 a31#3 a31 −11

a11 x1+ a32 −11

a12 x2+ a33 −11

a13 x3+ a34 −11

a14 x4 = a35 −11

a15

a41 a41 a41 a41 a41#4 a41 −11

a11 x1+ a42 −11

a12 x2+ a43 −11

a13 x3+ a44 −11

a14 x4 = a45 −11

a15

Sekarang akan saya tulissource codeMatlab untuk menyelesaikan perhitungan diatas. Saran

saya,anda jangan hanya duduk sambilmembaca buku ini, kalau bisanyalakan

komputer/laptopdanketik ulang source-codeini agar anda memperoleh feeling-nya! OK, mari

kita mulai..

1 clear all

2 clc

3

4 %#### inisialisasi mari! A ####

5 A = [1 1 3

6 2 1 #1 1

7 3 #1 #1 2

8 #1 2 3 #1];

9

10 %#### inisialisasi e!r ####

11 = [4 ; 1 ; #3 ; 4];12

13 %#### memen'! mari! a'0menasi ####

14 +im = sie(A);

15 n = +im(1);

16 r i = 1-n

17 A(i,n*1) = (i);

18 en+

19

20 %#### men0ilan0!an ariael 1 ####

21 m=A(2,1):A(1,1); % 'r' m mea!ili siml lam+a

22 A(2,1)=A(2,1)#m/A(1,1);

23 A(2,2)=A(2,2)#m/A(1,2);

24 A(2,3)=A(2,3)#m/A(1,3);25 A(2,4)=A(2,4)#m/A(1,4);

26 A(2,5)=A(2,5)#m/A(1,5);

27

28 m=A(3,1):A(1,1);

29 A(3,1)=A(3,1)#m/A(1,1);

30 A(3,2)=A(3,2)#m/A(1,2);

Page 68: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 68/279

31 A(3,3)=A(3,3)#m/A(1,3);

Page 69: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 69/279

a a a a a

a a a a a

32 A(3,4)=A(3,4)#m/A(1,4);

33 A(3,5)=A(3,5)#m/A(1,5);

34

35 m=A(4,1):A(1,1);

36 A(4,1)=A(4,1)#m/A(1,1);

37 A(4,2)=A(4,2)#m/A(1,2);

38 A(4,3)=A(4,3)#m/A(1,3);

39 A(4,4)=A(4,4)#m/A(1,4);

40 A(4,5)=A(4,5)#m/A(1,5);

Hasilnya akan seperti ini

  

1 1 0 3 | 4

  0 −1 −1 −5 | −7

  

a11 a12 a13 a14 | a15

  a21 a22 a23 a24 | a25

 '   

0 −4 −1 −7 | −15   

a31 a32 a33 a34 | a35

 0 3 3 2 | 8

   a41 a42 a43 a44 | a45

Pada kolom pertama, seluruh elemen berubah menjadi nol (a21 = 0,a31 = 0, dana41 = 0)

kecuali elemen yang paling atasa11 . Itu berarti kita sudah menghilangkan variabelx1 dari#2,

#3, dan#4. Sekarang dilanjutkan ke kolom kedua, dengan operasi yang hampir sama, untuk

membuat elemena32 dana42 bernilai nol

a32 a32 a32 a32 a32#3 a31 −22

a21 x1+ a32 −22

a22 x2+ a33 −22

a23 x3+ a34 −22

a24 x4 = a35 −22

a25

a42 a42 a42 a42 a42#4 a41 −22

a21 x1+ a42 −22

a22 x2+ a43 −22

a23 x3+ a44 −22

a24 x4 = a45 −22

a25

Source-code berikut ini adalah kelanjutan darisource-codediatas. Jadi jangan dipisah dalam file

lain!!!

1 m=A(3,2):A(2,2);

2 A(3,1)=A(3,1)#m/A(2,1);

3 A(3,2)=A(3,2)#m/A(2,2);

4 A(3,3)=A(3,3)#m/A(2,3);

5 A(3,4)=A(3,4)#m/A(2,4);

6 A(3,5)=A(3,5)#m/A(2,5);

7

8 m=A(4,2):A(2,2);

9 A(4,1)=A(4,1)#m/A(2,1);

10 A(4,2)=A(4,2)#m/A(2,2);

11 A(4,3)=A(4,3)#m/A(2,3);

12 A(4,4)=A(4,4)#m/A(2,4);

13 A(4,5)=A(4,5)#m/A(2,5);

14

Hasilnya akan seperti dibawah ini. Itu berarti kita telah menghilangkan variabelx2 dari#3,

Page 70: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 70/279

3.4. MATRIK DAN ELIMINASI GAUSS 47

−1 −1 −5 | −7

0 3 13 | 13

 

dan#4; bahkan tanpa disengajax3 juga hilang dari#4. Inilah bentuktriangular

  

1 1 0 3 | 4

  0

  

a11 a12 a13 a14 | a15

  a21 a22 a23 a24 | a25

 '   

0    

a31 a32 a33 a34 | a35

 0 0 0 −13 | −13

   a41 a42 a43 a44 | a45

Walaupunx3 sudah hilang dari#4, sebaiknya source-code penghapusanx3 dari#4 tetap

dita-

mbahkan pada source-code sebelumnya agar source-code tersebut menjadi lengkap.

1 m=A(4,3):A(3,3);

2 A(4,1)=A(4,1)#m/A(3,1);3 A(4,2)=A(4,2)#m/A(3,2);

4 A(4,3)=A(4,3)#m/A(3,3);

5 A(4,4)=A(4,4)#m/A(3,4);

6 A(4,5)=A(4,5)#m/A(3,5);

Dengan memperhatikan angka-angka indeks pada matrik augment di atas, kita akan men-

coba membuat rumusan prosessubstitusi-munduruntukmendapatkanseluruh nilai

penggan- ti variabelx. Dimulai darix4 ,

x =a45

4a44

=−13

= 1−13

lalu dilanjutkan denganx3 ,x2, danx1.

a35 − a34 x4 13 − "(13)(1)#x3 = = = 0

a33 3

x2 =a25 − (a23 x3 + a24 x4)

=a22

(−7) − "(−1)(0) + (−5)(1)# =

2(−1)

x1 =a15 − (a12 x2 + a13 x3 + a14 x4)

=a11

4 − "(1)(2) + (0)(0) + (3)(1)# = 1

1

Inilahsource codeproses substitusi mundur sesuai rumusan di atas

1 (4,1)=A(4,5):A(4,4);

2 (3,1)=(A(3,5)#A(3,4)/(4,1)):A(3,3);

3 (2,1)=(A(2,5)#(A(2,3)/(3,1)*A(2,4)/(4,1))):A(2,2);

4 (1,1)=(A(1,5)#(A(1,2)/(2,1)*A(1,3)/(3,1)*A(1,4)/(4,1))):A(1,1);

3.4.3 Source-codedasar

Proses triangularisasi dan substitusi-mundur dibakukan menjadi algoritma metode eliminasi

gauss. Berikut ini saya tampilkansource-codedalam Matlab sebagaimana langkah-langkah di-

atas

1 clear all

2 clc

3

4 %#### inisialisasi mari! A ####

Page 71: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 71/279

48 BAB 3. METODE ELIMINASI GAUSS5 A = [1 1 3

Page 72: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 72/279

6 2 1 #1 1

7 3 #1 #1 2

8 #1 2 3 #1];

9

10 %#### inisialisasi e!r ####

11 = [4 ; 1 ; #3 ; 4];

12

13 %#### memen'! mari! a'0menasi ####

14 +im = sie(A);

15 n = +im(1);

16 r i = 1-n

17 A(i,n*1) = (i);

18 en+

19

20 %==== <rses Trian0'larisasi ====

21 %#### men0ilan0!an ariael 1 +ari <2, <3 +an <4 ####

22 m=A(2,1):A(1,1); % 'r' m mea!ili siml lam+a

23 A(2,1)=A(2,1)#m/A(1,1);

24 A(2,2)=A(2,2)#m/A(1,2);

25 A(2,3)=A(2,3)#m/A(1,3);

26 A(2,4)=A(2,4)#m/A(1,4);

27 A(2,5)=A(2,5)#m/A(1,5);

28

29 m=A(3,1):A(1,1);

30 A(3,1)=A(3,1)#m/A(1,1);

31 A(3,2)=A(3,2)#m/A(1,2);

32 A(3,3)=A(3,3)#m/A(1,3);

33 A(3,4)=A(3,4)#m/A(1,4);

34 A(3,5)=A(3,5)#m/A(1,5);35

36 m=A(4,1):A(1,1);

37 A(4,1)=A(4,1)#m/A(1,1);

38 A(4,2)=A(4,2)#m/A(1,2);

39 A(4,3)=A(4,3)#m/A(1,3);

40 A(4,4)=A(4,4)#m/A(1,4);

41 A(4,5)=A(4,5)#m/A(1,5);

42

43 %#### men0ilan0!an ariael 2 +ari <3 +an <4 ####

44 m=A(3,2):A(2,2);

45 A(3,1)=A(3,1)#m/A(2,1);

46 A(3,2)=A(3,2)#m/A(2,2);

47 A(3,3)=A(3,3)#m/A(2,3);48 A(3,4)=A(3,4)#m/A(2,4);

49 A(3,5)=A(3,5)#m/A(2,5);

50

51 m=A(4,2):A(2,2);

52 A(4,1)=A(4,1)#m/A(2,1);

53 A(4,2)=A(4,2)#m/A(2,2);

54 A(4,3)=A(4,3)#m/A(2,3);

55 A(4,4)=A(4,4)#m/A(2,4);

56 A(4,5)=A(4,5)#m/A(2,5);

57

58 %#### men0ilan0!an ariael 3 +ari <4 ####

59 m=A(4,3):A(3,3);

60 A(4,1)=A(4,1)#m/A(3,1);

61 A(4,2)=A(4,2)#m/A(3,2);

62 A(4,3)=A(4,3)#m/A(3,3);

63 A(4,4)=A(4,4)#m/A(3,4);

64 A(4,5)=A(4,5)#m/A(3,5);

Page 73: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 73/279

65

66 %==== <rses 'si'si >'n+'r ====

67 (4,1)=A(4,5):A(4,4);

68 (3,1)=(A(3,5)#A(3,4)/(4,1)):A(3,3);

69 (2,1)=(A(2,5)#(A(2,3)/(3,1)*A(2,4)/(4,1))):A(2,2);

70 (1,1)=(A(1,5)#(A(1,2)/(2,1)*A(1,3)/(3,1)*A(1,4)/(4,1))):A(1,1);

3.4.4 Optimasisource code

Singkatnya,tujuan daridilakukannyaproses optimasi adalah untuk memperkecil jumlah

 baris statemen padasource codedasar. Seperti kita ketahui bersama,source codedasar

eliminasi gauss yang tertulis di atas terdiri atas 70 baris statemen, sehingga perlu dilakukan

proses optimasi untuk memperkecil jumlah baris statemen (tanpa menyalahi hasil

perhitungan).

3.4.4.1 Optimasisource codebagian triangular

Langkah optimasi source code bagian triangularisasi dimulai dari baris statemen ke 23

hingga ke 27, yaitu

m=A(2,1):A(1,1); % 'r' m mea!ili siml lam+a

A(2,1)=A(2,1)#m/A(1,1);

A(2,2)=A(2,2)#m/A(1,2);

A(2,3)=A(2,3)#m/A(1,3);A(2,4)=A(2,4)#m/A(1,4);

A(2,5)=A(2,5)#m/A(1,5);

Bagian ini dapat dioptimasi menjadi

r ! = 1-5

A(2,!) = A(2,!)#m/A(1,!);

en+

Langkah optimasi yang sama juga bisa diterapkan untuk rangkaian baris statemen dari baris

ke 30 hingga 34 dan baris ke 37 hingga 41 (yang terdapat padasource-codedasar), sehinggamasing-masing akan menjadi

r ! = 1-5

A(3,!) = A(3,!)#m/A(1,!);

en+

dan

r ! = 1-5

A(4,!) = A(4,!)#m/A(1,!);

en+

Ternyata, pola optimasi yang sama juga masih bisa ditemui mulai baris ke 45 hingga baris

statemen ke 64. Dengan demikian, setidaknya, tahapan pertama ini akan menghasilsource-

code baru hasil optimasi awal yaitu

Page 74: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 74/279

50 BAB 3. METODE ELIMINASI GAUSS

1 clear all

2 clc

3

4 %#### inisialisasi mari! A ####

5 A = [1 1 3

6 2 1 #1 1

7 3 #1 #1 2

8 #1 2 3 #1];

9

10 %#### inisialisasi e!r ####

11 = [4 ; 1 ; #3 ; 4];

12

13 %#### memen'! mari! a'0menasi ####

14 +im = sie(A);

15 n = +im(1);

16 r i = 1-n

17 A(i,n*1) = (i);

18 en+

19

20 %==== <rses Trian0'larisasi ====

21 %#### men0ilan0!an ariael 1 +ari <2, <3 +an <4 ####

22 m=A(2,1):A(1,1); % 'r' m mea!ili siml lam+a

23 r ! = 1-5

24 A(2,!) = A(2,!)#m/A(1,!);

25 en+

26

27 m=A(3,1):A(1,1);

28 r ! = 1-5

29 A(3,!) = A(3,!)#m/A(1,!);

30 en+

31

32 m=A(4,1):A(1,1);

33 r ! = 1-5

34 A(4,!) = A(4,!)#m/A(1,!);

35 en+

36

37 %#### men0ilan0!an ariael 2 +ari <3 +an <4 ####

38 m=A(3,2):A(2,2);

39 r ! = 1-5

40 A(3,!) = A(3,!)#m/A(2,!);

41 en+

42

43 m=A(4,2):A(2,2);

44 r ! = 1-5

45 A(4,!) = A(4,!)#m/A(2,!);

46 en+

47

48 %#### men0ilan0!an ariael 3 +ari <4 ####

49 m=A(4,3):A(3,3);

50 r ! = 1-5

51 A(4,!) = A(4,!)#m/A(3,!);

52 en+

53

54 %==== <rses 'si'si >'n+'r ====

55 (4,1)=A(4,5):A(4,4);

56 (3,1)=(A(3,5)#A(3,4)/(4,1)):A(3,3);

57 (2,1)=(A(2,5)#(A(2,3)/(3,1)*A(2,4)/(4,1))):A(2,2);

58 (1,1)=(A(1,5)#(A(1,2)/(2,1)*A(1,3)/(3,1)*A(1,4)/(4,1))):A(1,1);

Page 75: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 75/279

3.4. MATRIK DAN ELIMINASI GAUSS 51

Sekarang,source-codeeliminasi gauss telah mengecil menjadi hanya 58 baris statemen saja (se-

 belumnya ada 70 baris statemen). Namun ini belum merupakan akhir proses optimasi.

Source- codeyang terakhir ini masih bisa dioptimasi kembali.Coba anda perhatikan pola yang nampak mulai pada baris statemen ke-22 hingga ke-35.

Optimasi tahap dua dilakukan untuk menyederhanakan bagian tersebut, yaitu

r & = 2-4

m=A(&,1):A(1,1);

r ! = 1-5

A(&,!) = A(&,!)#m/A(1,!);

en+

en+

Demikian halnya untuk baris ke-38 sampai baris ke-46

r & = 3-4

m=A(&,2):A(2,2);

r ! = 1-5

A(&,!) = A(&,!)#m/A(2,!);

en+

en+

serta baris ke-49 hingga baris ke-52

r & = 4-4m=A(&,3):A(3,3);

r ! = 1-5

A(&,!) = A(&,!)#m/A(3,!);

en+

en+

Dengan demikian hasil optimasi sampai dengan tahap ini adalah

1 clear all

2 clc

3

4 %#### inisialisasi mari! A ####5 A = [1 1 3

6 2 1 #1 1

7 3 #1 #1 2

8 #1 2 3 #1];

9

10 %#### inisialisasi e!r ####

11 = [4 ; 1 ; #3 ; 4];

12

13 %#### memen'! mari! a'0menasi ####

14 +im = sie(A);

15 n = +im(1);

16 r i = 1-n

17 A(i,n*1) = (i);18 en+

19

20 %==== <rses Trian0'larisasi ====

21 %#### men0ilan0!an ariael 1 +ari <2, <3 +an <4 ####

Page 76: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 76/279

22 r & = 2-4

23 m=A(&,1):A(1,1);

24 r ! = 1-5

25 A(&,!) = A(&,!)#m/A(1,!);

26 en+

27 en+

28

29 %#### men0ilan0!an ariael 2 +ari <3 +an <4 ####

30 r & = 3-4

31 m=A(&,2):A(2,2);

32 r ! = 1-5

33 A(&,!) = A(&,!)#m/A(2,!);

34 en+

35 en+

36

37 %#### men0ilan0!an ariael 3 +ari <4 ####

38 r & = 4-4

39 m=A(&,3):A(3,3);

40 r ! = 1-5

41 A(&,!) = A(&,!)#m/A(3,!);

42 en+

43 en+

44

45 %==== <rses 'si'si >'n+'r ====

46 (4,1)=A(4,5):A(4,4);

47 (3,1)=(A(3,5)#A(3,4)/(4,1)):A(3,3);

48 (2,1)=(A(2,5)#(A(2,3)/(3,1)*A(2,4)/(4,1))):A(2,2);

49 (1,1)=(A(1,5)#(A(1,2)/(2,1)*A(1,3)/(3,1)*A(1,4)/(4,1))):A(1,1);

 Jika saya munculkan indeks i pada bagian proses triangularisasi

%==== <rses Trian0'larisasi ====

%#### men0ilan0!an ariael 1 +ari <2, <3 +an <4

#### i = 1;

r & = i*1-4

m=A(&,i):A(i,i);

r ! = 1-5

A(&,!) = A(&,!)#m/A(i,!);

en+

en+

%#### men0ilan0!an ariael 2 +ari <3 +an <4 ####

i = 2;

r & = i*1-4

m=A(&,i):A(i,i);

r ! = 1-5

A(&,!) = A(&,!)#m/A(i,!);

en+

en+

%#### men0ilan0!an ariael 3 +ari <4

#### i = 3;

r & = i*1-4

m=A(&,i):A(i,i);r ! = 1-5

A(&,!) = A(&,!)#m/A(i,!);

en+

en+

Page 77: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 77/279

maka saya bisa gabungkan semua i tersebut menjadi

%==== <rses Trian0'larisasi ====r i = 1-3

r & = i*1-4

m=A(&,i):A(i,i);

r ! = 1-5

A(&,!) = A(&,!)#m/A(i,!);

en+

en+

en+

Sehingga hasil optimasi sampai tahapan ini telah mengecilkan jumlah baris statemen dari

sem-

ula 70 baris menjadi hanya 34 baris saja. Inilah hasilnya

1 clear all

2 clc

3

4 %#### inisialisasi mari! A ####

5 A = [1 1 3

6 2 1 #1 1

7 3 #1 #1 2

8 #1 2 3 #1];

9

10 %#### inisialisasi e!r ####

11 = [4 ; 1 ; #3 ; 4];12

13 %#### memen'! mari! a'0menasi ####

14 +im = sie(A);

15 n = +im(1);

16 r i = 1-n

17 A(i,n*1) = (i);

18 en+

19

20 %==== <rses Trian0'larisasi ====

21 r i = 1-3

22 r & = i*1-4

23 m=A(&,i):A(i,i);

24 r ! = 1-525 A(&,!) = A(&,!)#m/A(i,!);

26 en+

27 en+

28 en+

29

30 %==== <rses 'si'si >'n+'r ====

31 (4,1)=A(4,5):A(4,4);

32 (3,1)=(A(3,5)#A(3,4)/(4,1)):A(3,3);

33 (2,1)=(A(2,5)#(A(2,3)/(3,1)*A(2,4)/(4,1))):A(2,2);

34 (1,1)=(A(1,5)#(A(1,2)/(2,1)*A(1,3)/(3,1)*A(1,4)/(4,1))):A(1,1);

3.4.4.2 Optimasisource codebagian substitusi-mundur

OK, sekarang kita beralih ke bagian substitusi-mundur. Saya mulai dengan memodifikasi

 bagian tersebut menjadi seperti ini

Page 78: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 78/279

%==== <rses 'si'si >'n+'r ====

(4,1)=A(4,5):A(4,4);

= ;

= * A(3,4)/(4,1);

(3,1)=(A(3,5)#):A(3,3);

= ;

= * A(2,3)/(3,1);

= * A(2,4)/(4,1);

(2,1)=(A(2,5)#):A(2,2);

= ;

= * A(1,2)/(2,1);

=  * A(1,3)/(3,1);

=  * A(1,4)/(4,1);

(1,1)=(A(1,5)#):A(1,1);

Dari situ, saya modifikasi kembali menjadi seperti ini

%==== <rses 'si'si >'n+'r ====

(4,1)=A(4,5):A(4,4);

= ;

r ! = 4-4

= * A(3,!)/(!,1);

en+

(3,1)=(A(3,5)#):A(3,3);

= ;

r ! = 3-4

= * A(2,!)/(!,1);

en+

(2,1)=(A(2,5)#):A(2,2);

= ;

r ! = 2-4

= * A(1,!)/(!,1);

en+

(1,1)=(A(1,5)#):A(1,1);

Lalu saya munculkan indeks i, coba perhatikan dengan teliti

%==== <rses 'si'si >'n+'r ====

(4,1)=A(4,5):A(4,4);

i = 3;

 = ;

r ! = i*1-4

= * A(i,!)/(!,1);

en+

(i,1)=(A(i,5)#):A(i,i);

i = 2;

 = ;

r ! = i*1-4

= * A(i,!)/(!,1);

Page 79: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 79/279

en+

(i,1)=(A(i,5)#):A(i,i);

i = 1;

 = ;

r ! = i*1-4

= * A(i,!)/(!,1);

en+

(i,1)=(A(1,5)#):A(i,i);

dengan demikian saya bisa ringkas menjadi seperti ini

%==== <rses 'si'si >'n+'r ====

(4,1)=A(4,5):A(4,4);

r i = 3-#1-1

= ;

r ! = i*1-4

= * A(i,!)/(!,1);

en+

en+

(i,1)=(A(i,5)#):A(i,i);

Dan inilah hasil optimasi sampai tahapan yang terakhir

1 clear all

2 clc3

4 %#### inisialisasi mari! A ####

5 A = [1 1 3

6 2 1 #1 1

7 3 #1 #1 2

8 #1 2 3 #1];

9

10 %#### inisialisasi e!r ####

11 = [4 ; 1 ; #3 ; 4];

12

13 %#### memen'! mari! a'0menasi ####

14 +im = sie(A);

15 n = +im(1);16 r i = 1-n

17 A(i,n*1) = (i);

18 en+

19

20 %==== <rses Trian0'larisasi ====

21 r i = 1-3

22 r & = i*1-4

23 m=A(&,i):A(i,i);

24 r ! = 1-5

25 A(&,!) = A(&,!)#m/A(i,!);

26 en+

27 en+

28 en+

29

30 %==== <rses 'si'si >'n+'r ====

31 (4,1)=A(4,5):A(4,4);

32

Page 80: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 80/279

33 r i = 3-#1-1

34 = ;

35 r ! = i*1-4

36 = * A(i,!)/(!,1);

37 en+

38 (i,1)=(A(i,5)#):A(i,i);

39 en+

3.4.5 Pentingnya nilain

Pada baris ke-15, nilai n adalah nilai ukuran matrik A yang berbentuk bujursangkar. Dalam

contoh ini,n bernilai 4. Dengan menggunakan angka 4 (atau n) sebagai acuan, maka source

code hasil optimasi terakhir dimodifikasi kembali menjadi seperti ini

1 clear all

2 clc

3

4 %#### inisialisasi mari! A ####

5 A = [1 1 3

6 2 1 #1 1

7 3 #1 #1 2

8 #1 2 3 #1];

9

10 %#### inisialisasi e!r ####

11 = [4 ; 1 ; #3 ; 4];

12

13 %#### memen'! mari! a'0menasi ####

14 +im = sie(A);

15 n = +im(1);

16 r i = 1-n

17 A(i,n*1) = (i);

18 en+

19

20 %==== <rses Trian0'larisasi ====

21 r i = 1-n#1

22 r & = i*1-n

23 m=A(&,i):A(i,i);

24 r ! = 1-n*1

25 A(&,!) = A(&,!)#m/A(i,!);

26 en+

27 en+

28 en+

29

30 %==== <rses 'si'si >'n+'r ====

31 (n,1)=A(n,n*1):A(n,n);

32

33 r i = n#1-#1-1

34 = ;

35 r ! = i*1-n

36 = * A(i,!)/(!,1);

37 en+

38 (i,1)=(A(i,n*1)#):A(i,i);

39 en+

Sekarang, source code di atas akan bisa memproses matrik bujursangkar yang ukurannya

sem-

 barang; tidak hanya 4x4. Demikianlah akhir dari proses optimasi yang cukup melelahkan.

Page 81: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 81/279

3.4.6 Jangan puas dulu..

Walaupun memiliki jumlah baris statemen yang lebih sedikit,source-codeini masih mengan-dungbug yang bisa berakibat fatal. Sekarang coba anda ganti angka-angka pada bagian in-

isialisasimatrik menjadi angka-angka baru yang disesuaikan dengan sistem persamaan linear

 berikut ini

#1 x1 − x2 + 2x3 − x4 = -8#2 2x1 − 2x2 + 3x3 − 3x4 = -20#3 x1 + x2 + x3 = -2#4 x1 − x2 + 4x3 + 3x4 = 4

Saya jaminsource codeyang tadi akan berhenti sebelum tugasnya selesai. Artinya ia gagal

menjalankan tugas mencari solusi sistem persamaan linear. Mengapa bisa

 begitu?

3.4.7 Pivoting

Pada baris ke-23, yang merupakan bagian dari proses triangularisasi dalam source codedi

atas, terdapat

m=A[&,i]:A[i,i]

elemenA"i, i# tentunya tidak boleh bernilai nol. Jika itu terjadi, maka prosestriangularisasiotomatis akan berhenti dan itu sekaligus menggagalkan metode eliminasi Gauss. Dilihat dari

indeks-nya yang kembar yaitu"i, i#,maka tidak diragukan lagi bahwa ia pasti menempati po-

sisi di elemen diagonal dari matrik A. Nama lain elemen ini adalah elemen pivot. Jadi apa

yang harus dilakukan jika secara tidak disengaja didalam aliran proses terdapat elemen pivot

yang bernilai nol?

Salah satu cara untuk mengatasinya adalah dengan menukar seluruh elemen yang se-

 baris dengan elemen diagonal bernilai nol. Ia harus ditukar posisinya dengan baris yang ada

dibawahnya, sampai elemen diagonal matrik menjadi tidak nol,aii = 0. Cara ini disebut

 pivot- ing. Penambahan proses pivotingkedalamsource codeeliminasi Gauss dimulai dari bariske-23 sampai baris ke-30 berikut ini

1 clear all

2 clc

3

4 %#### inisialisasi mari! A ####

5 A = [1 #1 2 #1

6 2 #2 3 #3

7 1 1 1

8 1 #1 4 3];

9

10 %#### inisialisasi e!r ####

11 = [#8 ; #2 ; #2 ; 4];

12

13 %#### memen'! mari! a'0menasi ####

14 +im = sie(A);

15 n = +im(1);

Page 82: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 82/279

Page 83: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 83/279

3.5. FUNCTION ELIMINASI GAUSS 59

15 = A(i,s);

16 ' = A(i*1,s);

17 A(i,s) = ';

18 A(i*1,s) = ;

19 en+

20 en+

21 %#### a!ir $rses $iin0 #####

22

23 r & = i*1-n

24 m=A(&,i):A(i,i);

25 r ! = 1-n*1

26 A(&,!) = A(&,!)#m/A(i,!);

27 en+

28 en+

29 en+

30

31 %==== <rses 'si'si >'n+'r ====

32 (n,1)=A(n,n*1):A(n,n);

33

34 r i = n#1-#1-1

35 = ;

36 r ! = i*1-n

37 = * A(i,!)/(!,1);

38 en+

39 (i,1)=(A(i,n*1)#):A(i,i);

40 en+

Dengan adanya function elgauss, makasource-codeuntuk menyelesaikan sistem persamaan lin-

ear dengan metode eliminasi gauss dapat ditulis secara sangat sederhana. Berikut ini con-

tohnya..

1 clear all

2 clc

3

4 %#### inisialisasi mari! A ####

5 A = [1 #1 2 #1

6 2 #2 3 #3

7 1 1 1

8 1 #1 4 3];

910 %#### inisialisasi e!r ####

11 = [#8 ; #2 ; #2 ; 4];

12

13 =el0a'ss(A,)

Page 84: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 84/279

60 BAB 3. METODE ELIMINASI GAUSS

3.6 Contoh aplikasi

3.6.1 Menghitung arus listrik

Gunakan metode Eliminasi Gauss untuk menentukan arusi1,i2 dani3 yang mengalir pada

rangkaian berikut ini

 jawab:

Berdasarkan Hukum Kirchhoff:

(1 + (2 = (3

−14 + 6(1 − 10 − 4(2 = 0

10 − 6(1 − 2(3 = 0

Lalu kita susun ulang ketiga persamaan di atas menjadi seperti ini:

(1 + (2 − (3 = 0

6(1 − 4(2 = 24

6(1 + 2(3 = 10

Kemudian dinyatakan dalam bentuk matriks:

  1 1 −1

   (1 

   0

  6 −4 0

    (2

 =

  24

6 0 2

   

(3 10

Selanjutkan kita susun matriks augmentasi sebagai berikut:

  1 1 −1 0

  6 −4 0 24

 

6 0 2 10

Page 85: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 85/279

Page 86: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 86/279

62 BAB 3. METODE ELIMINASI GAUSS

Sekarang tinggal melakukan proses substitusi mundur

(2 =

( =

a343 a33

a24 − a23

.(3

a22

=

−4, 4= 14, 4

=24 − (6).(−1)

−10= −3

(1 = a14 − (a13 .(3 + a12.(2 )=

a11

(0 − "(−1).(−1) + (1).(−3)# = 2

1

 Jadi besarmasing-masingarus padarangkaiandi atas adalah(1 = 2A,(2 = −3A dan(3 =

−1A.

Tanda minus (-) memiliki arti bahwa arah arus yang sesungguhnya berlawanan arah dengan

asumsi awal yang kita gunakan. Keseluruhan tahapan perhitungan di atas cukup

diselesaikan

olehsource-code berikut ini

1 clear all

2 clc

3

4 %#### inisialisasi mari! A ####

5 A = [1 1 #1

6 6 #4

7 6 2];

8

9 %#### inisialisasi e!r ####

10 = [ ; 24 ; 1];

11

12 ?=el0a'ss(A,)

Isi matrik A diturunkan dari sistem persamaan linear yang mengacu kepada Hukum

Kirchhoff

sebagai berikut

(1 + (2 − (3 = 0

6(1 − 4(2 = 24

6(1 + 2(3 = 10

yang kemudian dinyatakan dalam bentuk matrik A dan vektor b:

  1 1 −1

   (1 

   0

  6 −4 0

    (2

 =

  24

6 0 2   

(3 10

3.6.2 Mencari invers matrik

Dalam kaitannya dengan invers matrik, matrikAdisebut matriknon-singular jika matrikA

Page 87: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 87/279

3.6. CONTOH APLIKASI 63

memilikimatrik invers dirinya yaituA$1.Atau dengan kata lain, matrikA$1 adalah invers

dari matrikA. Jika matrikAtidak memiliki invers, maka matrikAdisebutsingular. Bila

matrikAdikalikan dengan matrikA$1 maka akanmenghasilkanmatrik identitasI, yaitu

suatu

Page 88: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 88/279

9

. . 

.

3

3 3

matrik yang elemen-elemen diagonalnya bernilai 1.

  

1 0 . . . 0

AA$1  = I=

  0 1 . . . 0

(3.4)  .. .

 

0 0 . . . 1

Misalnya diketahui,

 1 2 −1

   2 5 1

9 9 9

A= 

2 1 0 

,   A$1 

=  4 − 1 2

 

−1 1 29 9 91 1 1− 3 3 3

Bila keduanya dikalikan, maka akan menghasilkan matrik identitas,

 1 2 −1

   − 

2

5 19

− 9

  1 0 0

AA$1 

=  

2 1 0   4 − 1 2  

=  

0 1 0

  9

−1 1 2 − 19 9

1 1 0 0 1

Lalu bagaimana cara memperoleh matrik invers,A$1? Itulah bahan diskusi kita kali ini. Baik-

lah.., anggap saja kita tidak tahu isi dariA$1 

. Tapi yang jelas matrikA$1 

ukurannya mestisama dengan matrikA, yaitu 3x3.

AA$1 = I

 1 2 −1

   i11 i12 i13 

    1 0 0

 2 1 0

   i21 i22 i23

 =

  0 1 0 

(3.5)  

−1 1 2

i31 i32 i33

 

0 0 1

dalam hal ini matrikA$1 adalah

  

i11 i12 i13 

A$1 =

  i21 i22 i23 

 

i31 i32 i33

Elemen-elemen matrik invers,A$1  dapat diperoleh dengan menerapkan metode eliminasi

gauss pada persamaan 3.5 yang telah dipecah 3 menjadi

 1 2 −1

   i11 

  1

 2 1 0

   i21

 =

  0

 

−1 1 2

i31 0

Page 89: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 89/279

1 2 −1

2 1 0   

i22

  0

 =

  1

−1 1 2

i23 0

 1 2 −1

   i31 

  0

 2 1 0

   i32

 =

  0

 

−1 1 2

i32 1

Ketiganya dapat diselesaikan satu persatu menggunakan source code Eliminasi Gauss. Source

code untuk mendapatkan kolom pertama dari matrik invers adalah

1 clear all

2 clc

3

4 %#### inisialisasi mari! A ####

5 A = [1 2 #1

6 2 1

7 #1 1 2];

8

9 %#### inisialisasi e!r ####

10 r & = 1-3

11 (&,1) = ;

12 en+

13 (1,1) = 1;

14

15 ?=el0a'ss(A,)

Sementara, source code untuk mendapatkan kolom kedua dari matrik invers adalah

1 clear all

2 clc

3

4 %#### inisialisasi mari! A ####

5 A = [1 2 #1

6 2 1 7 #1 1 2];

8

9 %#### inisialisasi e!r ####

10 r & = 1-3

11 (&,1) = ;

12 en+

13 (2,1) = 1;

14

15 ?=el0a'ss(A,)

Dan untuk memperoleh kolom ketiga matrik invers, caranya adalah

1 clear all

2 clc

3

4 %#### inisialisasi mari! A ####

5 A = [1 2 #1

Page 90: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 90/279

Page 91: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 91/279

3

4 %#### inisialisasi mari! A ####

5 A = [1 2 #1

6 2 1

7 #1 1 2];

8

9

10 %#### inisialisasi e!r ####

11 i = 1;

12 r & = 1-3

13 (&,1) = ;

14 en+

15 (i,1) = 1;

16 ?=el0a'ss(A,);

17 r ! = 1-3

18 A?(!,i) = ?(!,1);

19 en+

20

21 i = 2;

22 r & = 1-3

23 (&,1) = ;

24 en+

25 (i,1) = 1;

26 ?=el0a'ss(A,);

27 r ! = 1-3

28 A?(!,i) = ?(!,1);

29 en+

30

31 i = 3;32 r & = 1-3

33 (&,1) = ;

34 en+

35 (i,1) = 1;

36 ?=el0a'ss(A,);

37 r ! = 1-3

38 A?(!,i) = ?(!,1);

39 en+

maka source code tersebut dapat dioptimasi menjadi

1 clear all2 clc

3

4 %#### inisialisasi mari! A ####

5 A = [1 2 #1

6 2 1

7 #1 1 2];

8

9

10 %#### men0i'n0 mari! iners ####

11 r i = 1-3

12 r & = 1-3

13 (&,1) = ;

14 en+

15 (i,1) = 1;

16 ?=el0a'ss(A,);

17 r ! = 1-3

18 A?(!,i) = ?(!,1);

Page 92: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 92/279

Page 93: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 93/279

41 5

7 #1 1 2];

8

9 %#### men0i'n0 mari! iners ####

10 A? = Ain(A);

Keberadaan matrikA$1  bisa digunakan untuk menyelesaikan sistem persamaanlinear

(mencari nilaix ), dengan cara sebagai berikut

Ax = b

A$1 Ax = A$1 b

Ix = A$1 b

x = A$1 b (3.6)

Contoh berikut ini akan menjelaskan prosesnya secara lebih rinci. Misalnya diketahui sistem

persamaan linear

x1 + 2x2 − x3 = 2

2x1 + x2 = 3

−x1 + x2 + 2x3 = 4

Bila dikonversikan kedalam operasi matrik menjadi

 1 2 −1

   x1 

  2

 2 1 0

   

x2

 =

  3

     

−1 1 2 x3 4

Berdasarkan persamaan (3.6), maka elemen-elemen vektorxdapat dicari dengan cara

x= A$1 b

  − 2 5 1

   2

   7

9 9− 

9 9

x=  4 − 1 2         13

9 91 1− 3 3

3 =9       9

3 3

Akhirnya diperoleh solusix1 = 7)9,x2 = 13)9, danx3 = 5)3. Penyelesaian sistem persamaan

linear menjadi lebih mudah bila matrikA$1 sudah diketahui. Sayangnya, untuk mendap-

atkan matrikA$1 , diperlukan langkah-langkah, seperti yang sudah dibahas pada contoh per-

tama di atas, yang berakibat in-efisiensi proses penyelesaian (secara komputasi) bila diband-

ingkan dengan metode eliminasi gauss untuk memecahkan sistem persamaan linear. Namun

 bagaimanapun, secara konseptual kita dianjurkan mengetahui cara bagaimana mendapatkan

matrikA$1 .

Page 94: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 94/279

3.7. PENUTUP 69

3.7 Penutup

Saya cukupkan sementara sampai disini. Insya Allah akan saya sambung lagi dilain waktu.Kalau ada yang mau didiskusikan, silakan hubungi saya melalui email yang tercantum di ha-

laman paling depan.

Page 95: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 95/279

70 BAB 3. METODE ELIMINASI GAUSS

Page 96: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 96/279

  Bab 4

Aplikasi Eliminasi Gauss padaMasalah

Inversi

✍ Objektif :

⊲ Mengenalkan model garis.

⊲ Mengenalkan model parabola.

⊲ Mengenalkan model bidang.

Pada bab ini, saya mencoba menuliskan aplikasi Metode Eliminasi Gauss sebagai dasar-dasar teknik inversi yaitu meliputi model garis, model parabola dan model bidang. Uraian

ap- likasi tersebut diawali dari ketersediaan data observasi, lalu sejumlah parameter model

mesti dicari dengan teknik inversi. Mari kita mulai dari model garis.

4.1 Inversi Model Garis

Pengukuran suhu terhadap kedalaman di bawah permukaan bumi menunjukkan bahwa se-

makin dalam, suhu semakin tinggi. Misalnya telah dilakukan sebanyak empat kali (* = 4)

pengukuran suhu( +i ) padakedalamanyang berbeda beda(!i). Tabelpengukuransecara

seder- hana disajikan seperti ini:

Tabel 4.1: Data suhu bawah permukaan tanah terhadap kedalamanPengukuranke-i Kedalaman(m) suhu(% ,)

1234

!1 = 5 !2= 16 !3= 25 !4= 100

 +1 = 35 +2 = 57

 +3 = 75

 +4 = 225

Grafik sebaran data observasi ditampilkan pada Gambar (4.2). Lalu kita berasumsi bahwa

variasi suhu terhadap kedalaman ditentukan oleh rumus berikut ini:

m1 + m2 !i  = +i (4.1)

71

Page 97: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 97/279

72 BAB 4. APLIKASI ELIMINASI GAUSS PADA MASALAH INVERSI

=2

   T  e  m  p  e  r  a   t  u  r   (   C  e   l     i  u  s   !

"#$

%ariasi temperatur terhadap kedalaman

"$$

&#$

&$$

#$

$$ &$ "$ '$ ($ #$ )$ *$ +$   ,$ &$$

-edalaman (meter!

Gambar 4.1: Sebaran data observasi antara suhu dan kedalaman

dimanam

1 danm

2 adalahkonstanta-konstantayang akan dicari. Rumus di atas disebutmodel matematika. Sedangkan m1 dan m2 disebutparameter model. Pada model

matematika di atas terdapat dua buah parameter model,(- = 2). Sementara jumlah data

observasi ada empat,(* = 4), yaitu nilai-nilai kedalaman,!i, dan suhu, +i . Berdasarkan

model tersebut, kita bisa menyatakan suhu dan kedalaman masing-masing sebagai berikut:

m1 + m2  !1 =

 +1 m1 + m2  !2

= +2 m1 + m2 !3

= +3 m1 + m2 !4

= +4

Semua persamaan tersebut dapat dinyatakan dalam operasi matrik berikut

ini:

1 !1

1 !2

 "m1

 +1 

#  +

   

(4.2)

1 !3

m2 

1 !4

 +3

  +4

Lalu ditulis secara singkat

m = & (4.3)

dimanadadalah data yang dinyatakan dalam vektor kolom,madalah model parameter, juga

dinyatakan dalam vektor kolom, dan disebutmatrik kernel. Lantas bagaimana cara menda-

Page 98: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 98/279

  

 

=

i

 

=

i

i|

4.1. INVERSI MODEL GARIS 73

patkan nilaim1 danm2 pada vektor kolomm? Manipulasi berikut ini bisa menjawabnya

T

m = T

& (4.4)

dimanat disini maksudnya adalah tanda transpos matrik. Selanjutnya, untuk mendapatkan

elemen-elemenm, diperlukan langkah-langkah perhitungan berikut ini:

1. Tentukan transpos dari matrik kernel, yaitu.t

  1 !1

=

  1 !2

  1 !3

  1 !4

' .t=

"

1 1 1 1#

!1 !2 !3 !4

2. TentukanT .

.t  =

"

1 1 1 1

!1 !2 !3 !4

  1 !1#   1 !2

   1 !3 

1 !4

"

*'

!i 

#

'!i

' !2

dimana* = 4dani = 1, 2, 3, 4.

3. Kemudian tentukan pulaT &

.t & =

"

1 1 1 1

!1 !2 !3 !4

   +1#    +2

   

 +3  +4

" ' +i 

#

'!i +i

4. Sekarang persamaan (4.4) dapat dinyatakan sebagai

"*

'!i' 

!i

' !2

# "m1

m2

# " ' +i 

#

= ' !i +i

(4.5)

5. Aplikasikan metodeEliminasi Gauss dengan Substitusi Mundur. Untuk itu, tentukan

matrik augment-nya

"*

'!i |

' +i 

#

' !i

' !2

' !i +i

Page 99: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 99/279

6. Untuk mempermudah perhitungan, kita masukan dulu angka-angka yang tertera pada

Page 100: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 100/279

74 BAB 4. APLIKASI ELIMINASI GAUSS PADA MASALAH INVERSI

=

tabel pengukuran dihalaman depan.

"

4 146 | 392

#

146 10906 | 25462

7. Lakukan proses triangularisasi dengan operasi(#2 − (36, 5)#1 ) % #2. Sayasertakan

pula indeks masing-masing elemen pada matrik augment sebagaimana yang telah saya

lakukan pada catatan kuliah yang berjudulMetode Eliminasi Gauss. Hasilnyaadalah

"4 146 | 392

0 5577 | 11154

# "a11 a12 | a13

#

a21 a22 | a23

8. Terakhir, tentukan konstantam1 danm2 yang merupakan elemen-elemen vektor kolom

m, dengan proses substitusi mundur. Pertama tentukanm2

m =a23

2a22

11154= = 2

5577

lalu tentukanm1

m1 =a13 − a12

m2

a11

=392 − (146)(2)

= 254

4.1.1 Script matlab inversi model garis

Script inversi model garis ini dibangun dari beberapa script yang sudah kita pelajari sebelum-

nya, yaitu script transpose matriks, perkalian matrik dan script eliminasi gauss. Silakan pela-

 jari maksud tiap-tiap baris pada script ini.

1 clc

2 clear all

3 clse all

4

5 % #### +aa serasi ####

6 @ = 4; % &'mla +aa7 = [ 5 ; 16 ; 25 ; 1 ];

8 T = [ 35 ; 57 ; 75 ; 225 ];

9

10

11 % #### menen'!an mari! !ernel, ####

12 r i = 1-@

13 (i,1) = 1;

14 (i,2) = (i,1);

15 en+

16

17 % #### menen'!an e!r + ####

18 +=T;

19

20 % #### $rses inersi ####

21 A = ’/;

22 = ’/+;

23 m = el0a'ss(A,);

24

Page 101: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 101/279

i

   .  u   h  u   (   d  e  r  a   j  a   t   C  e   l     i  u  s   !

25 %#######>.@A>BA AC?D######################

26 $l(,T,’r’);

27 lael(’De+alaman (meer)’);lael(’'' (+era&a "elci's)’);

28 ile(’aa ariasi s'' era+a$ !e+alaman’)

29 l+ n;

30 r i=1-ma()

31 i(i)=i;

32 Ti(i)=m(1)*m(2)/i(i);

33 en+

34 $l(i,Ti);

35 l+ ;

"#$

/ata variasi suhu terhadap kedalaman

"$$

&#$

&$$

#$

$$ &$ "$ '$ ($ #$ )$ *$ +$   ,$ &$$

-edalaman (meter!

Gambar 4.2: Kurva hasil inversi data observasi antara suhu dan kedalaman

Demikianlah contoh aplikasi metode Eliminasi Gauss pada model garis. Anda bisa men-

gaplikasikan pada kasus lain, dengan syarat kasus yang anda tangani memiliki bentuk model

yang sama dengan yang telah dikerjakan pada catatan ini, yaitumodel persamaan garisatau

disingkatmodel garis:y = m1 + m2x. Selanjutnya mari kita pelajari inversi model parabola.

4.2 Inversi Model Parabola

Pengukuran suhu terhadap kedalaman di bawah permukaan bumi menunjukkan bahwa se-

makin dalam, suhu semakin tinggi. Misalnya telah dilakukan sebanyak delapan kali(* = 8)

pengukuran suhu( +i ) pada kedalaman yang berbeda beda(!i ). Tabel 4.2 menyajikan data

observasi pada kasus ini.

Lalukita berasumsi bahwa variasi suhu terhadapkedalaman ditentukanoleh rumus

 berikut

ini:

m1 + m2 !i + m3 !2

= +i (4.6)

Page 102: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 102/279

Page 103: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 103/279

dimanadadalah data yang dinyatakan dalam vektor kolom,madalah model parameter, juga

dinyatakan dalam vektor kolom, dan disebutmatrik kernel. Lantas bagaimana cara menda-

Page 104: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 104/279

1

3

5

7

8

1

!

7

8

 +

i

patkan nilaim1 ,m2 danm3 pada vektor kolomm? Manipulasi berikut ini bisa menjawabnya

.t 

m = .t & (4.9)

dimanat disini maksudnya adalah tanda transpos matrik. Selanjutnya, untuk mendapatkan

elemen-elemenm, diperlukan langkah-langkah perhitungan berikut ini:

1. Tentukan transpos dari matrik kernel, yaitu.t

  1 !1 !2

  1 !2 !2

 

2

   1 !3 !2    1 !4 !2 

   1 1 1 1 1 1 1 1

=

4

' .t=  !1 !2 !3 !4 !5 !6 !7 !8

  1 !5 !2 

 

!2 2 2 2 2 2 2 2

  1 !6 !2 

1 !2 !3 !4 !5 !6 !7 !8 6

  

1 !7 !2  

1 !8 !2

2. Tentukan.t 

.     1 !1 !2

  1 !2 !2

 

2

 2

   

1 1 1 1 1 1 1 1    1 !3 !3 

  1 !4 !2 

   *

'!i

'2

.t  =  !1 !2 !3 !4 !5 !6 !7 !8

   4 

=  ' 

!i

' !2

' !3

     1 !5 !2

i i

!2 2 2 2 2 2 2 2

5

'

!2 3 41 !2 !3 !4 !5 !6 !7 !8

    1 !6 !2 

i

' !i

' !i 

6

  

1 !7 !2  

1 !8 !2

dimana* = 8dani = 1, 2, 3, ..., 8.

3. Kemudian tentukan pula.t &

   

1 1 1 1 1 1 1 1

   +1 

   +2 

 3 

  

 +4 

  '

 +i

.t & =  !1 !2 !3 !4 !5 !6 !7 !8

     

=  ' 

!i +i 

 

!2 2 2 2 2 2 2 2

    +5

 '

!2

Page 105: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 105/279

6

1 !2 !3 !4 !5 !6 !7 !8

  

 + 

   +7 

  +8 

i +i

Page 106: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 106/279

8 219 8547 | 349, 89

0 2551, 88 159448, 88 | 3316, 57

8547 393423 19787859 | 594915, 33

i

i !

i i i

i

i

i i

i i

' !   2

|

|

'

i

'i

|

4. Sekarang persamaan (4.14) dapat dinyatakan sebagai (ini khanleast square juga...!?)

 

*

'

!i

!2

   

m1

  '

 +i

   '!i

' !2

3   

m2

 = 

' !i +i 

(4.10)

' !2

' !3

' !4      

m3

  ' 

!2  +i

5. Aplikasikan metodeEliminasi Gauss dengan Substitusi Mundur. Untuk itu, tentukan

matrik augment-nya

 *

'!i

' !2 |

' +i

   '!i

' !2

' !3 |

' !i  +i 

' !2

' !3 4 | !i  +i

6. Untuk mempermudah perhitungan, kita masukan dulu angka-angka yang tertera pada

tabel pengukuran dihalaman depan.

 8 219 8547 | 349, 89

   219 8547 393423 12894, 81

 

8547 393423 19787859 | 594915, 33

7. Lakukan proses triangularisasi dengan operasi(#2 − (219)8)#1 ) % #2. Hasilnya adalah

8. Masih dalam proses triangularisai, operasi berikutnya(#3 − (8547)8)#1 ) % #3. Hasilnya

adalah

  8 219 8547 | 349, 89

  0 2551, 88 159448, 88 3316, 57

 

0 159448.88 10656457, 88 | 221101, 6

9. Masih dalam proses triangularisai, operasi berikutnya(#3 − (159448, 88)2551, 88)#2 ) %

#3. Hasilnya adalah

  8 219 8547 | 349, 89

  0 2551, 88 159448, 88 3316, 57

 

0 0 693609, 48 | 13872, 19

(4.11)

Seperti catatan yang lalu, saya ingin menyertakan pula notasi masing-masing elemen

Page 107: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 107/279

pada matrik augment sebelum melakukan proses substitusi mundur.

  

8 219 8547 | 349, 89

    

a11 a12 a13 | a14

  0 2551, 88 159448, 88 | 3316, 57

   /

  a21 a22 a23 | a24

 

0 0 693609, 48 | 13872, 19

 

a31 a32 a33 | a34

10. Terakhir, tentukan konstantam1 ,m2 danm3 yang merupakan elemen-elemen vektor

kolomm, dengan proses substitusi mundur. Pertama tentukanm3

m =a34

3a33

13872, 19= = 0, 02

693609, 48

lalum2

danm1

m2 = a24 − a23

m3

a22

=3316, 57 − (159448, 88)(0, 02)

= 0, 052551, 88

m1 =a14 − (a12 m2 + a13 m3 )

=a11

349, 89 − "(219)(0, 05) + (8547)(0, 02)= 21

8

4.2.1 Script matlab inversi model parabola

Perbedaan utama script ini dengan script inversi model garis terletak pada inisialisasi elemen-elemen matrik kernel.Elemen-elemen matrik kernel sangatditentukan oleh model

matematika yang digunakan. Seperti pada script ini, matrik kernelnya diperoleh dari model

parabola.

1 clc

2 clear all

3 clse all

4

5 % #### +aa serasi ####

6 @ = 8; % E'mla +aa

7 = [5; 8; 14; 21; 3; 36; 45; 6];8 T = [21F75; 22F68; 25F62; 3F87; 4F5; 48F72; 63F75; 96];

9

10 % #### menen'!an mari! !ernel, ####

11 r i = 1-@

12 (i,1) = 1;

13 (i,2) = (i,1);

14 (i,3) = (i,1)G2;

15 en+

16

17 % #### menen'!an e!r + ####

18 +=T;

19

20 % #### $rses inersi ####21 A = ’/;

22 = ’/+;

23 m = el0a'ss(A,);

24

25 %#######>.@A>BA AC?D######################

26 $l(,T,’r’);

Page 108: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 108/279

27 lael(’De+alaman (meer)’);lael(’'' (+era&a "elci's)’);

Page 109: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 109/279

80 BAB 4. APLIKASI ELIMINASI GAUSS PADA MASALAH INVERSI

   .  u   h  u   (   d  e  r  a   j  a   t   C  e   l     i  u  s   !

28 ile(’aa ariasi s'' era+a$ !e+alaman’);

29 l+ n;

30 r i=1-ma()

31 i(i)=i;

32 Ti(i)=m(1)*m(2)/i(i)*m(3)/i(i)G2;

33 en+

34 $l(i,Ti);

35 l+ ;

&$$/ata variasi suhu terhadap kedalaman

$

+$

*$

)$

#$

($

'$

"$$ &$ "$ '$ ($ #$   )$

-edalaman (meter!

Gambar 4.3: Kurva hasil inversi data observasi antara suhu dankedalaman

Demikianlah contoh aplikasi metode Eliminasi Gauss pada model parabola. Anda bisa

mengaplikasikan pada kasus lain, dengan syarat kasus yang anda tangani memiliki bentuk

modelyang sama dengan yang telah dikerjakan pada catatan ini, yaitu memiliki tiga buah

model parameter yang tidak diketahui dalam bentuk persamaan parabola:y = m1 + m2 x

+ m3  x2 . Pada catatan berikutnya, saya akan membahas model yang mengandung tiga

model parameter dalam 2 dimensi.

4.3 Inversi Model Bidang

Dalam catatan ini saya belum sempat mencari contoh pengukuran yang sesuai untuk model

2-dimensi. Maka, saya ingin langsung saja mengajukan sebuah model untuk 2-dimensi

 berikut ini:

m1 + m2 xi + m3 yi  = di (4.12)

dimanam1 ,m2 danm3 merupakan model parameter yang akan dicari. Adapun yang

 berlaku sebagaidataadalahd1 , d2, d3, ..., di. Berdasarkan model tersebut, kita bisa

menyatakan suhu

Page 110: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 110/279

=

m2

. . . .

y1...

4.3. INVERSI MODEL BIDANG 81

dan kedalaman masing-masing sebagai berikut:

m1 + m2 x1 + m3 y1 =d1

m1 + m2 x2 + m3 y2 =

d2

m1 + m2 x3 + m3 y3 =

d3

. . . . .

m1 + m2 x  + m3 y  =

Semua persamaan tersebut dapat dinyatakan dalam operasi matrik berikut ini:

1 x1 y1

1 x2 y2

 m1

d1

d2

 

1 x3 y3

   

d3

       

m  

. . .

3

.

 

1 x  y  

   d 

Lalu ditulis secara singkat

m = & (4.13)

dimanadadalah data yang dinyatakan dalam vektor kolom,madalah model parameter, juga

dinyatakan dalam vektor kolom, dan disebutmatrik kernel. Lantas bagaimana cara

menda- patkan nilaim1 ,m2 danm3 pada vektor kolomm? Manipulasi berikut ini bisa

menjawabnya

.t m = .t & (4.14)

dimanat disini maksudnya adalah tanda transpos matrik. Selanjutnya, untuk mendapatkanelemen-elemenm, diperlukan langkah-langkah perhitungan berikut ini:

1. Tentukan transpos dari matrik kernel, yaitu.t

1 x1 y1 

1 x2 y2 

 

=

1 x3 y3 

' .t =

1 1 1 " " " 1

x1 x2 x3 " " " x 

      y

2y

3" " " y

  1 x  y 

2. Tentukan.t 

. 1 x1 y1

Page 111: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 111/279

.

..

1 1 1 " " " 1

 1 x2 y2 

 

*

'xi

' yi

.t  =

x1 x2 x3 " " " x  

1 x3 y3

 

=' 

xi' 

x2 xi yi 

y1 y2 y3 " " " y 

..

 

.

'

y

i

'

' x y

'y2

 

  1 x  y 

i i i i

Page 112: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 112/279

82 BAB 4. APLIKASI ELIMINASI GAUSS PADA MASALAH INVERSI

 

=

i

i

.

dimana* = jumlah data. dani = 1, 2, 3, ..., * .

3. Kemudian tentukan pula.

&

1 1 1 " " " 1

d1 

 d2 

 

'di

.t & =

x1 x2 x3 " " " x 

 d3

y1 y2 y3 " " " y 

.

'xi di 

'

yi di d  

4. Sekarang, persamaan (4.14) dapat dinyatakan sebagai

*'

xi

' yi

 m1

'di

'xi

' x2

' 'i

xi yi

     =  xidi 

(4.15)

' yi

' xi yi

' y2      

m3

  ' 

yi di

5. Aplikasikan metodeEliminasi Gauss dengan Substitusi Mundur. Untuk itu, tentukan

matrik augment-nya

*

'xi

' yi |

'di

'xi

' x2

' ' i

xi yi | xidi 

' yi

' xi yi

' y2 |

'yi di

6. Langkah-langkah selanjutnya akan sama persis dengan catatan sebelumnya (model lin-

eardanmodel parabola)

Anda bisa mengaplikasikan data pengukuran yang anda miliki, dengan syarat kasus yang

anda tangani memiliki bentukmodelyang sama dengan yang telah dikerjakan pada catatan

ini, yaitu memiliki tiga buah model parameter yang tidak diketahui dalam bentuk persamaan

 bidang (atau 2-dimensi):d = m1 + m2 x + m3 y.

Saya cukupkan sementara sampai disini. Insya Allah akan saya sambung lagi dilain waktu.

Kalau ada yang mau didiskusikan, silakan hubungi saya melalui email:0p1i)f 

iika.0i.ac.id.

4.4 Contoh aplikasi

4.4.1 Menghitung gravitasi di planet X

Seorang astronot tiba di suatu planet yang tidak dikenal. Setibanya disana, ia segera mengelu-

arkan kamera otomatis, lalu melakukan ekperimen kinematika yaitu dengan melempar batu

vertikalke atas. Hasil foto-foto yang terekam dalam kamera otomatis adalah sebagai berikut

Plot data pengukuran waktu vs ketinggian diperlihatkan pada Gambar 4.4. Anda diminta un-

Page 113: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 113/279

4.4. CONTOH APLIKASI 83

tuk membantu proses pengolahan data sehingga diperoleh nilai konstanta gravitasi di planet

tersebut dan kecepatan awal batu. Jelas, ini adalah persoalan inversi, yaitu mencariunkown

 parameter(konstanta gravitasi dan kecepatan awal batu) dari data observasi (hasil foto gerak

Page 114: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 114/279

Page 115: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 115/279

Page 116: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 116/279

− h20 − 5

Operasi matrik di atas memenuhi persamaan matrik

m = &

Page 117: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 117/279

1

2

3

19

20

#

1

2

3t t

19

20

#

. .

t " 'i2

'

4

.

 

.

Seperti yang sudah dipelajari pada bab ini, penyelesaian masalah inversi dimulai dari pros-

es manipulasi persamaan matrik sehingga perkalian antara.t dan menghasilkan matriks

 bujursangkar.t m = .t 

& (4.19)

Selanjutnya, untuk mendapatkanm1 danm2 , prosedur inversi dilakukan satu-per-satu

1. Menentukan transpos matrik kernel, yaitu.t

=

t1 t2 

t2 t2 

t3 t

t4 t2  ' .t =

"

t1 t2 t3 t4 . . . t19 t20

#

 4 

2 2 2 2 2 2

t1 t2 t3 t4 . . . t19 t20

  

t19 t2  

t20 t2

2. Menentukan.t .

"

t1 t2 t3 t4 . . . t19 t20

=

t1 t2

t2 t

2

t3 t2

3#

t4 t2=

i

t2 2 2 2 2 2   '

3 4

1 t2 t3 t4 . . . t19 t20  

.

   

ti

' ti

  t19 t2

 t20 t2

dimana* = 20dani = 1, 2, ..., * .

3. Kemudian menentukan hasil perkalian.t &

.t & =

   h1

   h2

   h3

"

t1 t2 t3 t4 . . . t19 t20   h4

" '

ti hi 

=

t2 2 2 2 2 2 '

21 t2 t3 t4 . . . t19 t20

       

ti hi

   h19  h20

4. Sekarang persamaan (4.19) dapat dinyatakan sebagai

" 't2 3

# "

m1#

" 'ti hi 

#

Page 118: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 118/279

i i i

i

' ti

= (4.20)' t3

' t4 m2

' t2 hi

Page 119: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 119/279

2

   -  e   t   i  n  g  g   i  a  n   (  m   !

+

*

)

#

(

'

"

&

$$ $.# & &.# " ".# ' '.# ( (.#   #

0aktu (dt!

Gambar 4.5: Grafik hasil inversi parabola

Berdasarkan data observasi,diperoleh

"

179, 4 689, 1

689, 1 2822, 9

# "

m1

m2

# "

273, 7#

=796, 3

Hasil inversinya adalah nilai kecepatan awal yaitu saat batu dilempar ke atas adalah sebesar

m1 =2* = 3,2009m/dt. Adapun percepatan gravitasi diperoleh darim2 dimanam2 =− 1

3=

-0,8169; maka disimpulkan nilai3 adalah sebesar 1,6338m)dt2 .

Gambar 4.5 memperlihatkan kurva hasil inversi berserta sebaran titik data observasi.

Garis berwarna biru merupakan garis kurva fittinghasil inversi parabola.Sedangkan bulatan

 berwar- namerahadalah data pengukuran ketinggian (m) terhadap waktu (dt). Jelas

terlihat bahwa garis kurva berwarna biru benar-benar cocok melewati semua titik data

pengukuran. Ini me- nunjukkan tingkat akurasi yang sangat tinggi. Sehingga nilai

kecepatan awal dan gravitasi hasil inversi cukup valid untuk menjelaskan gerak batu di

planet X.

Berikut adalah script inversi dalam Matlab untuk memecahkan masalah ini

1 clc

2 clear all

3 clse all

45 % #### +aa serasi ####

6 @ = 2; % &'mla +aa

7 r i=1-@

8 (i)=i/F25;

9 en+

10 = [5F75;6F4;6F94;7F38;7F72;7F96;8F1;8F13;8F7;

11 7F9;7F62;7F25;6F77;6F2;5F52;4F73;3F85;2F86;1F77;F58];

Page 120: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 120/279

12

13 % #### menen'!an mari! !ernel, ####

14 r i=1-@

15 (i,1)=(i);

16 (i,2)=(i)G2;

17 en+

18

19 % #### menen'!an e!r + ####

20 r i=1-@

21 +(i,1)=(i)#5;

22 en+

23

24 % #### $rses inersi ####

25 A = ’/;

26 = ’/+;

27 m = el0a'ss(A,);

28

29 %#######>.@A>BA AC?D######################

30 $l(,,’r’);

31 lael(’a!' (+ei!)’);lael(’!ein00ian (meer)’);

32 ile(’aa ariasi a!' era+a$ !ein00ian’)

33 l+ n;

34 r i=1-@

35 i(i)=m(1)/(i)*m(2)/(i)G2*5;

36 en+

37 $l(,i);

38 l+ ;

Page 121: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 121/279

Page 122: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 122/279

Bab 5

Metode LU Decomposition

✍ Objektif :

⊲ Mengenalkan teknik faktorisasi matrik.

⊲ Mengenalkan aplikasi 12 /eomposition pada sistem persamaan linear.

⊲ Merumuskan algoritma 12 /eomposition.

5.1 Faktorisasi matrik

Pada semua catatan yang terdahulu, telah diulas secara panjang lebar bahwa sistem

persamaan linear dapat dicari solusinya secara langsung dengan metode eliminasi gauss.

Namun perlu juga diketahui bahwa eliminasi gauss bukan satu-satunya metode dalam

mencari solusi sistem persamaan linear, misalnya ada metode matrik inversi seperti yang

dijelaskan pada catatan yang paling terakhir. Terlepas dari masalah in-efisiensi

penyelesaiannya, yang jelas metode invers matrik bisa digunakan untuk menyelesaikan

sistem persamaan linear.

Nah, pada catatan kali ini, saya ingin mengetengahkan sebuah metode yang lain untukmenyelesaikan sistem persamaan linear, yaitumetode faktorisasi matrikyang umum

dikenal sebagaiLU-decomposition. Metode ini sekaligus menjadi pengantar menuju metode

SingularValue Decomposition, (SVD), suatu metode yang saat ini paling “handal” dalam

menyelesaikan sistem persamaan linear dan merupakan bagian dari metodeleast square.

Seperti biasa, kita berasumsi bahwa sistem persamaan linear dapat dinyatakan dalam op-

erasi matrik

A+ = , (5.1)

Pada metodeLU-decomposition, matrik A difaktorkan menjadi matrik L dan matrik U, dimana

dimensi atau ukuran matrik L dan U harus sama dengan dimensi matrik A. Atau dengankata

lain, hasil perkalian matrik L dan matrik U adalah matrik A,

A = 45 (5.2)

89

Page 123: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 123/279

90 BAB 5. METODE LU DECOMPOSITION

sehingga persamaan (7.4) menjadi

45 + =

Langkah penyelesaian sistem persamaan linear dengan metodeLU-decomposition, diawali

den- gan menghadirkan vektorydimana,

5 + = - (5.3)

Langkah tersebut tidak bermaksud untuk menghitung vektory, melainkan untuk

menghitung

vektorx. Artinya, sebelum persamaan (5.3) dieksekusi, nilai-nilai yang menempati elemen-

elemen vektoryharus sudah diketahui. Lalu bagaimana cara memperoleh vektory? Begini

caranya,

4- = (5.4)

Kesimpulannya, metodeLU-decompositiondilakukan dengan tiga langkah sebagai berikut:

• Melakukan faktorisasi matrik A menjadi matrik L dan matrik U% A = 45 .

• Menghitungvektorydenganoperasimatrik4- = .Ini adalah proses forward-substitution

atau substitusi-maju.

• Menghitungvektorxdenganoperasimatrik5 + = -. Ini adalah prosesbackward-

substitution

atau substitusi-mundur.

MetodeLU-decomposition bisa dibilang merupakan modifikasi dari eliminasi gauss, karena

 beberapa langkah yang mesti dibuang pada eliminasi gauss, justru harus dipakai olehLU-

decomposition. Untuk lebih jelasnya, perhatikan contoh berikut ini. Diketahui sistem

persamaan linear sebagai berikut

#1 x1 + x2 + 3x4 = 4#2 2x1 + x2 − x3 + x4 = 1#3 3x1 − x2 − x3 + 2x4 = -3#4 −x1 + 2x2 + 3x3 − x4 = 4

Sistem tersebut dapat dinyatakan dalam operasi matrikA+ = -,

 1 1 0 3

   x1 

 

2 1 −1 1

   

x2 

 

4

 1

      = (5.5)       3 −1 −1 2

   x3 

    −3

−1 2 3 −1  

x4 

4

Pada metode eliminasi gauss, matrik A dikonversi menjadi matrik triangular melalui urutan

Page 124: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 124/279

91 BAB 5. METODE LU DECOMPOSITION

operasi-operasi berikut:(#2 − 2#1 ) % (#2 ),(#3 − 3#1 ) % (#3 ),(#4 − (−1)#1 ) % (#4 ),(#3 −

4#2 ) % (#3 ),(#4 − (−3)#2 ) % (#4 ). Disisi lain, vektorbikut berubah nilainya menyesuaikan

Page 125: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 125/279

1 0 0 0   

1 1 0

2 1 0 0     

0 −1 −1

3 4    

   0 0 3

5.1. FAKTORISASI MATRIK 91

proses triangularisasi,

  

1 1 0 3

   

x1 

  0 −1 −1 −5

   x2 

 

4

   −7

      =

(5.6)     

  0 0 3 13

   x3 

    13

 

0 0 0 −13  

x4 

 

−13

Lain halnya dengan metodeLU-decompositiondimana vektorbtidak mengalami perubahan.

Yang berubah hanya matrik A saja, yaitu menjadi matrik L dan matrik U,A = 45

  1 1 0 3  

2 1 −1 1

  1 0 0 0     1 1 0 3  

2 1 0 0   

0 −1 −1 −5

A =    

=     

       

3 −1 −1 2  

3 4 1 0   

0 0 3 13

 

−1 2 3 −1

−1 −3 0 1

   

0 0 0 −13

 Jadi matrik L dan U masing-masing adalah

4 =

1 0

−1 −3 0 1

5 =

3

5

13

0 0 0 −13

Coba bandingkan matrik U di atas dengan matrik hasil triangularisasi dari metode eliminasi

gauss pada persamaan (5.6), sama persis bukan? Jadi, cara memperoleh matrik U adalah den-

gan proses triangularisasi! Lantas, bagaimana cara memperoleh matrik L? Begini caranya: (1)

elemen-elemen diagonal matrik L diberi nilai 1 (Asal tahu saja, cara ini dikenal dengan

metodeDoolittle). (2) elemen-elemen matrik L yang berada di atas elemen-elemen diagonal

diberi ni- lai 0. (3) sedangkan, elemen-elemen matrik L yang berada di bawah elemen-

elemen diago- nal diisi dengan faktor pengali yang digunakan pada proses triangularisasieliminasi gauss. Misalnya padaoperasi (#2  − 2#1 ) % (#2 ), maka faktor pengalinya adalah

2; pada operasi(#3 − 3#1 ) % (#3 ), maka faktor pengalinya adalah3, dan seterusnya.

Inilah letakperbedaannya,seluruh faktor pengali tersebut sangat dibutuhkan pada

metodeLU-decompositionuntuk membentuk matrik L. Padahal dalam metode eliminasi gauss,

seluruh faktor pengali tersebut tidak dimanfaatkan alias dibuang begitu saja. Disisi lain,

vektorbtidak mengalami proses apapun sehingga nilainya tetap. Jadi, proses konversi

matrik pada metodeLU-decompositionhanya melibatkan matrik A saja!

Setelah langkah faktorisasi matrik A dilalui, maka operasi matrik pada persamaan (5.5)menjadi,

 1 0 0 0

   1 1 0 3

   x1 

 2 1 0 0

   0 −1 −1 −5

   x2 

 4

 1

        =

(5.7)

Page 126: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 126/279

        

3 4 1 0   

0 0 3 13   

x3       −3

 

−1 −3 0 1

 

0 0 0 −13 x4

4

Page 127: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 127/279

92 BAB 5. METODE LU DECOMPOSITION

1 0 02 1 0

3 4 1

−1 −3 0

3

Langkah berikutnya adalah menentukan vektory, dimana4- = ,

 

0

   

y1 

 0

   y2 

 

4

 1

      =

       

0   

y3      

−3

1  

y4 

4

Dengan proses substitusi-maju, elemen-elemen vektorydapat ditentukan,

y1 = 4,

2y1 + y2 = 1,

3y1 + 4y2 +

y3

−  −

=

=

−3,

4

maka diperolehy1 = 4,y2 = −7,y3 = 13,y4 = −13.

Langkah terakhir adalah proses substitusi-mundur untuk menghitung vektorx, dimana5 + =

-,

  1 1 0 3

   x1 

  0 −1 −1 −5

   x2 

 

4

 −7

      =

        

0 0 3 13   

x3     

13

 0 0 0 −13

  x4 

 

−13

Melalui proses ini, yang pertama kali didapat solusinya adalahx4 , kemudianx3, lalu diikuti

x2 , dan akhirnyax1 .

x4 = 11

x3 = (13 − 13x4) = 0

x2 = −(−7 + 5x4 + x3) = 2

x1 = 4 − 3x4 − x2 = −1

akhirnya diperoleh solusix1 = −1,x2 = 2,x3 = 0, dany4 = 1. Demikianlah contoh

penyelesa- ian sistem persamaan linear dengan metodeLU-decomposition.

Sekali matrik A difaktorkan, maka vektorb bisa diganti nilainya sesuai dengan sistemper- samaan linear yang lain, misalnya seluruh nilai di ruas kanan diganti menjadi

#1 x1 + x2 + 3x4 = 8

Page 128: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 128/279

5.2. ALGORITMA 93#2 2x1 + x2 − x3 + x4 = 7#3 3x1 − x2 − x3 + 2x4 = 14#4 −x1 + 2x2 + 3x3 − x4 = -7

Page 129: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 129/279

      

Dalam operasi matrik menjadi

 

1 1 0 3

   

x1 

 2 1 −1 1

   x2 

 

8

 7

      =

(5.8) 

3 −1 −1 2   

x3 

   

   14

−1 2 3 −1 x4 −7

Perhatikan baik-baik! Matrik A sama persis dengan contoh sebelumnya. Perbedaannya hanya

pada vektorb. Selanjutnya, dengan metodeLU-decomposition, persamaan (5.8) menjadi

 1 0 0 0

   1 1 0 3

   x1 

 2 1 0 0

   0 −1 −1 −5

   x2 

 

8

  7

        =

(5.9)       

 3 4 1 0

   0 0 3 13

   x3 

   14

 

−1 −3 0 1

 

0 0 0 −13 x4 −7

Silakan anda lanjutkan proses perhitungannya dengan mencari vektorysesuai contoh yang

telah diberikan sebelumnya. Pada akhirnya akan diperoleh solusi sebagai berikut:x1 = 3,

x2 = −1,x3 = 0, dany4 =

2.

5.2 Algoritma

Sekarang saatnya saya tunjukkan algoritma metode LU decomposition. Algoritma ini dibuat

untuk menyelesaikan sistem persamaan linear, dengan cara menfaktorkan matrikA = (ai j )

 berukurann xn menjadi matrik4 = (6i j ) dan matrik5 = (0i j ) dengan ukuran yang sama.

Algoritma LU-decomposition yang anda lihat sekarang merupakan modifikasi dari algorit-

ma eliminasi gauss. Silakan anda periksa langkah-langkah mana saja yang telah mengalami

modifikasi! Tapi asaltahu saja bahwa ini bukan satu-satunya algoritma untuk mendapatkan

matrik LU. Sejauh yang saya tahu, ada algoritma lain untuk tujuan yang sama, dimana algo-ritma tersebut membutuhkan matrik permutasi untuk menggeser elemen pivot yang bernilai

nol agar terhindar dari singular. Nah, sedangkan algoritma yang akan anda baca saat ini,

sama sekali tidak “berurusan” dengan matrik permutasi. Algoritma ini cuma memanfaatkan

“trik” tukar posisi yang sudah pernah dibahas di awal-awal catatan khususnya ketika

membahas konsep eliminasi gauss.

Satu lagi yang harus saya sampaikan juga adalah bahwa dalam algoritma ini, elemen-

elemen matrik L dan matrik U digabung jadi satu dan menggantikan seluruh elemen-elemen

matrik A. Perhatian! cara ini jangan diartikan sebagai perkalian matrik L dan matrik U

menjadi matrik A kembali. Cara ini dimaksudkan untuk menghemat memori komputer.

Suatu aspek yang tidak boleh diabaikan oleh para programer. Marilah kita simak

algoritmanya bersama- sama!

INPUT: dimensin; nilai elemenai j ,1 7 i,  j 7 n; nilai elemen

bi .

Page 130: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 130/279

OUTPUT: solusix1  ,  x2,  x3,  ...,  xn atau pesan kesalahan yang mengatakan bahwa

faktorisasi tidak mungkin dilakukan.

Page 131: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 131/279

a11 a12 . . . a1n

a21 a22 . . . a2n  =

• Langkah 1:Inputkan konstanta-konstantadari sistempersamaanlinear kedalam elemen-

elemen matrik A dan vektorb, seperti berikut ini:

 

 

A = 

 . .

b1 

b2 

   

 

.

.

(5.10)

an1 an2 . . . ann bn

• Langkah 2:Untuki = 1, ..., n − 1, lakukan Langkah 3 sampai Langkah 5.

• Langkah 3:Definisikanpsebagai integer dimanai 7 p 7 n. Lalu pastikan bahwaa pi = 0. Langkah dilakukan bila ditemukan elemen diagonal yang bernilai nol(aii

=

0). Ketika ada elemen diagonal yang bernilai nol, maka program harus mencari

dan memeriksa elemen-elemen yang tidak bernilai nol dalam kolom yang sama

dengan kolom tempat elemen diagonal tersebut berada. Jadi saat proses ini

 berlangsung, integeri (indeks dari kolom) dibuat konstan, sementara integerp

(indeks dari baris) bergerak darip  = i sampaip = n. Bila ternyata setelah

mencapai elemen paling bawah dalam kolom tersebut, yaitu saatp = n tetap

didapat nilaia pi = 0, maka sebuah pesan dimunculkan: sistem persamaan

linear tidak memiliki solusi yang unik. Lalu program berakhir: STOP.

• Langkah 4:Namun jika sebelum integerp mencapai nilaip = n sudah diperoleh

elemen yang tidak sama dengan nol(a pi = 0), maka bisa dipastikanp = i. Jikap =

i maka lakukan proses pertukaran (# p)&(#i).

• Langkah 5:Untuk j = i + 1, .., n, lakukan Langkah 6 dan Langkah 7.

• Langkah 6:Tentukanm ji,

m ji  =a ji

aii

• Langkah 7:Lakukan proses triangularisasi,

(# j  − m ji#i ) % (# j)

• Langkah 8:Nilaim ji disimpan kea ji,

a ji  = m ji

• Langkah 9:Nilaib1 dicopy key1 , lalu lakukansubstitusi-maju.

y1 = b1

Untuki = 2, ..., n tentukanxi

,i$1

yi  = bi −X

ai j y j j=1

Page 132: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 132/279

 j=i+1

• Langkah 10:Lakukan proses substitusi-mundur, dimulai dengan menentukanxn ,

an,n+1

Untuki = n − 1, ..., 1tentukan

xi,

xn = ann

xi  =ai,n+1 −

'n

aii

ai j x j

• Langkah 11:Diperoleh solusi yaitux1, x2 , ..., xn.Algoritma telah dijalankan dengan

suk-

ses. STOP.

Algoritma di atas telah diimplementasi kedalam program yang ditulis dengan bahasa For-

tran. Program tersebut sudah berhasil dikompilasi dengan visual fortran (windows) dan g77

(debian-linux). Inilah programnya:

1 ?>.@?H@ A(1,11), B(1), I(1), J(1)

2 .AK >E?

3 ?T.(/,/)

4 ?T.(/,/) ’==L CADTH?A? >AT?D- K ."H><H?T?H@ M==’

5 ?T. (/,/)6 " KA@DAN 1- >.>ADA@ @?KA? .K.>.@#.K.>.@ >AT?D A A@ .DTH B

7 ?T. (/,’(1J,A)’) ’E>KAN <.A>AA@ O ’

8 .A (/,/) @

9 ?T. (/,/)

10 ?T. (/,/) ’>ADA@ .K.>.@#.K.>.@ >AT?D A’

11 H 5 ? = 1,@

12 H 6 E = 1,@

13 ?T. (/,’(1J,A,?2,A,?2,A)’) ’A(’,?,’,’,E,’) = ’

14 .A (/,/) A(?,E)

15 6 "H@T?@.

16 ?T. (/,’(1J,A,?2,A)’) ’B(’,?,’) O ’

17 .A (/,/) B(?)

18 ?T. (/,/)19 5 "H@T?@.

20 ?T. (/,/)

21 " >.@A><?KDA@ >AT?D A

22 ?T. (/,’(1J,A)’) ’>AT?D A-’

23 H 11 ? = 1,@

24 ?T. (/,6) (A(?,E),E=1,@)

25 11 "H@T?@.

26 ?T. (/,/)

27 " KA@DAN 2- >.>.?DA .K.>.@#.K.>.@ <?HT

28 @@ = @#1

29 H 1 ?=1,@@

30 " KA@DAN 3- >[email protected]?@??DA@ <

31 < = ?32 1 ?C (AB(A(<,?))F.F1F.#2 FHF <FTF@) HTH 2

33 < = <*1

34 HTH 1

35 2 ?C(<F.PF@*1)TN.@

36 " >.@A><?KDA@ <.A@ T?AD A<AT ?CADTHDA@

37 ?T.(/,8)

Page 133: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 133/279

38 HTH 4

Page 134: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 134/279

39 .@ ?C

40 " KA@DAN 4- <H. TDA <H??

41 ?C(<[email protected]?) TN.@

42 H 2 EE=1,@

43 " = A(?,EE)

44 A(?,EE) = A(<,EE)

45 A(<,EE) = "

46 2 "H@T?@.

47 .@ ?C

48 " KA@DAN 5- <.?A<A@ <H. T?A@KA?A?

49 EE = ?*1

50 H 3 E=EE,@

51 " KA@DAN 6- T.@TDA@ >E?

52 >E? = A(E,?):A(?,?)

53 " KA@DAN 7- <H. T?A@KA?A?

54 H 4 D=EE,@

55 A(E,D) = A(E,D)#>E?/A(?,D)

56 4 "H@T?@.

57 " KA@DAN 8- >.@I?><A@ >E? D. A(E,?)

58 A(E,?) = >E?

59 3 "H@T?@.

60 1 "H@T?@.

61 " >.@A><?KDA@ >AT?D K

62 ?T. (/,’(1J,A)’) ’>AT?D K-’

63 H 12 ? = 1,@

64 ?T. (/,6) (A(?,E),E=1,@)

65 12 "H@T?@.

66 ?T. (/,/)

67" KA@DAN 9- BT?T?#>AE

68 I(1) = B(1)

69 H 15 ?=2,@

70 > = F

71 H 16 E=1,?#1

72 > = >*A(?,E)/I(E)

73 16 "H@T?@.

74 I(?) = B(?)#>

75 15 "H@T?@.

76 " >.@A><?KDA@ .DTH I

77 ?T. (/,’(1J,A)’) ’.DTH I-’

78 H 138 ? = 1,@

79 ?T. (/,6) I(?)

80 138 "H@[email protected] ?T. (/,/)

82 " KA@DAN 1- BT?T?#>@

83 J(@) = I(@):A(@,@)

84 H 24 D=1,@#1

85 ? = @#D

86 EE = ?*1

87 > = F

88 H 26 DD=EE,@

89 > = >*A(?,DD)/J(DD)

90 26 "H@T?@.

91 J(?) = (I(?)#>):A(?,?)

92 24 "H@T?@.

93 " KA@DAN 11- >.@A><?KDA@ HK? A@ .K.A?94 ?T. (/,’(1J,A)’) ’HK?-’

95 H 18 ? = 1,@

96 ?T. (/,’(1J,A,?2,A,C14F8)’) ’J(’,?,’) = ’,J(?)

97 18 "H@T?@.

Page 135: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 135/279

98 ?T.(/,/)

99 ?T.(/,/) ’.K.A? ##L D.’

100 ?T.(/,/)

101 4 "H@T?@.

102 6 CH>AT(1J,5(C14F8))

103 8 CH>AT(1J,’T?AD A<AT ?CADTHDA@’)

104 .@

Demikianlah,sekarang kita punya tiga buah algoritma untuk memecahkan problem sistem

persamaan linear, yaitu eliminasi gauss, invers matrik, dan lu-decomposition. Diantara

ketiga- nya, eliminasi gauss adalah algoritma yang paling simpel dan efisien. Dia hanya

 butuhproses triangularisasi dan substitusi-mundur untuk mendapatkan solusi. Sedangkan

dua algoritma yang lainnya membutuhkan proses-proses tambahan untuk mendapatkan

solusi yang sama.

Saya cukupkan sementara sampai disini. Insya Allah akan saya sambung lagi dilain

waktu. Kalau ada yang mau didiskusikan, silakan hubungi saya melalui email.

Page 136: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 136/279

Page 137: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 137/279

Page 138: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 138/279

100 BAB 6. METODE ITERASI

k k | |

Cara penulisan seperti ini digunakan untuk menyatakan vektor-kolom pada suatu kalimat di

dalam paragraf. Alasannya supaya tidak terlalu menyita banyak ruang penulisan. Sementara,

persamaan (6.1), lebih sering digunakan pada penulisan operasi matrik. Satu hal lagi, padaparagraf-paragraf berikutnya, saya persingkat penulisan istilah vektor-kolom menjadi vektor

saja.

6.2 Pengertian Norm

Vektorx=(x1 x2  .  .... xn)T memiliki norm  82  dan 8/  yang didefinisikan

sebagai

nXi 102

 82  = kxk2= 9i=1

x

2

:(6.3)

dan

 8/  = x / = m!+ xi (6.4)11i1n

Contoh:x=(3 −2. 8 5)T memiliki norm 82 yaitu

 82  = kxk2 = p

(3)2 + (−2)2 + (8)2 + (5)2 = 10, 0995

dan norm 8/ yaitu

 8/  = kxk/  = m!9(3), (−2), (8), (5): = 8

Saya menyarankan agar kedua norm ini diingat-ingat dengan baik, karena akan banyak dis-

inggung pada catatan-catatan berikutnya.

6.2.1 Scriptperhitungan norm dua

Script berikut ini merujuk pada contoh di atas, dimana vektorxhanya terdiri dari 4 elemen,

yaitux(1, 1),x(2, 1),x(3, 1)danx(4, 1)

1 clear all

2 clc

3

4 = [ 3 ; #2 ; 8 ; 5 ];

5

6 +im = sie();

7 n = +im(1);

8

9 = ;

10 r i = 1-n

11 = * (i,1)G2;

12 en+

13 asil = sQr();

Berdasarkan script di atas, dapat dibuat fungsi eksternal sebagai berikut:

1 'ncin asil = nrm2()

2

Page 139: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 139/279

6.2. PENGERTIAN NORM 101

3 +im = sie();

4 n = +im(1);

5 = ;

6 r i = 1-n

7 = * (i,1)G2;

8 en+

9 asil = sQr();

6.2.2 Scriptperhitungan norm tak hingga

Script berikut ini merujuk pada contoh di atas, dimana vektorxhanya terdiri dari 4 elemen,

yaitux(1, 1),x(2, 1),x(3, 1)danx(4, 1)

1 clear all2 clc

3

4 = [ 3 ; #9 ; 8 ; 5 ];

5

6 +im = sie();

7 n = +im(1);

8 = ;

9 r i=1-n

10 i (i,1) M

11 (i,1) = (i,1) / #1;

12 en+

13 en+

14 asil = ma();

Script ini menggunakan fungsi internal yang bernamamax()untuk mendapatkan nilai elemen

terbesar diantara elemen-elemen yang ada dalam vektor x. Berdasarkan script di atas, dapat

dibuat fungsi eksternal sebagai berikut:

1 'ncin asil = nrm()

2

3 +im = sie();

4 n = +im(1);

5 = ;

6 r i=1-n7 i (i,1) M

8 (i,1) = (i,1) / #1;

9 en+

10 en+

11 asil = ma();

6.2.3 Perhitungan norm-selisih

Misalnya kita punya vektor bernamaxlama. Lalu ada vektor lainnya bernamaxbaru. Norm

selisih darixlamadanxbarudapat dihitung dengan bantuan fungsi eksternal yang baru saja

kita buatdi atas, yaitu bernamanorm2()dannormth().

1 clear all

2 clc

Page 140: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 140/279

102 BAB 6. METODE ITERASI

2 −   3

1 3 −   4

3

4 lama = [ 3 ; #2 ; 8 ; 5 ];

5 ar' = [ 9 ; 4 ; 6 ; 1 ];

6

7 selisi = ar'#lama;

8 asil1 = nrm2(selisi);

9 asil2 = nrm(selisi);

Caraperhitungannorm-selisihseperti ini akanditerapkanpadakebanyakanmetode

iterasi.

 Jadi tolong diingat baik-baik!!

6.3 Iterasi Jacobi

Sekarang kita akan mulai membahas metode iterasi sekaligus penerapannya untuk menyele-

saikan sistem persamaan linear. Perbedaan metode iterasi dengan metode-metode yang telah

dijelaskan sebelumnya, adalah ia dimulai dari penentuan nilai awal (initial value) untuk setiap

elemen vektorx. Kemudian berdasarkan nilai awal tersebut, dilakukan langkah perhitungan

untuk mendapatkan elemen-elemen vektorxyang baru. Untuk lebih jelasnya, silakan per-

hatikan baik-baik contoh berikut. Diketahui sistem persamaan linear terdiri atas empat per-

samaan, yaitu

10x1 − x2 + 2x3 = 6

−x1 + 11x2 − x3 + 3x4 = 25

2x1 − x2 + 10x3 − x4 = −11

3x2 − x3 + 8x4 = 15

yang mana solusinya adalahx=(1 2 −1. 1)T. Silakan simpan dulu solusi ini, anggap saja ki-

ta belumtahu. Lalu perhatikan baik-baik bagaimana metode iterasi Jacobi bisa menemukan

solusi tersebut dengan caranya yang khas.Langkah pertama dan merupakan langkah terpenting dari metode iterasi Jacobi adalah

mengubah cara penulisan sistem persamaan linear di atas menjadi seperti ini

1 2 6x1 = x x +

10 10 101 1 3 25

x2 = x + x x +11 11 11 11

2 1 1 11x3 = − 10 

x1 +10 

x2 +10 

x4 −10

3 1 15x

4

= − 8 

x2

+

8 x

3

+

8

Kita bisamenyatakan bahwa nilaix1 , x2, x3danx4yang berada di ruas kiri tanda = (baca:

sama

dengan) sebagaix( ,! ). Sementara nilaix1, x2 , x3 danx4 yang berada di ruas kanan tanda=

(baca: sama dengan) sebagaix(!m!). Sehingga sistem persamaan tersebut dapat ditulis seperti

Page 141: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 141/279

x − x3 +

x + x − x4 +

1

x   8 1 x

1

x   8 1 x

x − x3 +

x + x − x4 +

10

10

ini

x( ,! ) 1 (!m!) 2 (!m!) 61 = 10 2 10 10

x( ,! ) 1 (!m!) 1 (!m!) 3 (!m!) 252 =

11 1 11 3 11 11

x( ,! ) 2 (!m!) 1 1 (!m!) 113

= − 10 

x1

+10 

x2 +10 

x4

−10

x( ,! ) 3  (!m!) 1 (!m!) 154

= − 8 

x2

+8 

x3

+8

yang secara umum dapat diformulasikan sebagai persamaan matrik berikut ini

x

( ,! ) 

=  ; x(!m!)

+ 0 (6.5)

dimana

x

( ,! ) 

0  1 2 

(!m!) 

 6

1 10 − 100 x1   10

x( ,! ) 

 1  1 3   

x(!m!) 

25 

2

 = 

11

011

− 11

 2

 +

11

( ,! )     

(!m!)  

x3

2 −10

100 1   

x311

− 10

( ,! ) 

4 0 − 3

 (!m!) 

80

4

15

8

Atau dapat pula ditulis seperti ini

xk =  ; xk $1 + 0 (6.6)

dimanak = 1, 2, 3, ..., n; sehingga persamaan matrik dapat dinyatakan sebagai berikut

x

(k)

0  1 2 

(k $1) 

 6

1 10− 

100 x1   10

x(k)

 1  1 3   

x(k $1) 

25 

2

 = 

11 0 11

− 11

 2

 +

11

(k)    

(k$1)  

x3

  2−10

100 1   

x311

− 10

(k)

4 0 − 3

 (k $1) 

80

4

15

8

Pada persamaan di atas, indeksk menunjukan jumlah perhitungan iterasi. Padak = 1, maka

penulisan sistem persamaan linear menjadi

x(1) 1 (0) 2 (0) 61 =

10 2 10 10

x(1) 1 (0) 1 (0) 3 (0) 252 =

11 1 11 3 11 11

x(1) 2 (0) 1 (0) 1 (0) 113

= − 10 

x1

+10 

x2

+10 

x4

−10

x(1) 3 (0) 1 (0) 154

= − 8 

x2

+8 

x3

+8

 Jika kita tentukan nilai-nilai awalx(0)sebagai berikutx

(0)= 0,x

(0)= 0,x

(0)= 0danx

(0)= 0.1 2 3 4

Atau dinyatakan seperti inix(0) = (0 0 0 0)T. Maka kita akan memperoleh nilai-nilaix(1)

yang

Page 142: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 142/279

1 =

2 =

4 =

x − x3 +

x + x − x4 +

x − x3 +

x + x − x4 +

tidak lain adalah hasil perhitungan iterasi pertama, yaitu

x(1) 6

10

x(1) 25

11

x(1) 113

= − 10

x(1) 15

8

ataux(1) = (0,  6000. 2,  2727. −1,  1000. 1,  8750)T . Setelah nilai-nilaix(1) diperoleh,

perhitungan tersebut diulang kembali guna mendapatkan hasil iterasi kedua, yaitu ketikak

= 2. Caranya adalah dengan memasukan nilai-nilaix(1) = (0,  6000. 2,  2727. −1,  1000. 1,

8750)T ke suku-suku pada ruas kanan tanda sama-dengan,

x(2) 1 (1) 2 (1) 61 =

10 2 10 10

x(2) 1 (1) 1 (1) 3 (1) 252 =

11 1 11 3 11 11

x(2) 2 (1) 1 (1) 1 (1) 113

= − 10 

x1

+10 

x2

+10 

x4

−10

x(2) 3 (1) 1 (1) 154

= − 8 

x2

+8 

x3

+8

maka nilai-nilaix(2) yang kita dapat adalahx(2) = (1, 0473. 1, 7159. −0, 8052. 0, 8852)T .

Sete- lah diperoleh nilai-nilaix(2), perhitungan tersebut diulangi kembali guna mendapatkan

hasil iterasi ketiga, dimana nilaik = 3. Caranya adalah dengan memasukan nilai-nilai

x(2) = (1, 0473. 1, 7159. −0, 8052. 0, 8852)T ke ruas kanan kembali,

x(3) 1 (2) 2 (2) 61

=10 2 10 10

x(3) 1 (2) 1 (2) 3 (2) 252 =

11 1 11 3 11 11

x(3) 2 (2) 1 (2) 1 (2) 113 = − 

10 

x1 +

10 

x2 +

10 

x4 −

10x

(3) 3 (2) 1 (2) 154

= − 8 

x2

+8 

x3

+8

maka kita akan memperoleh nilai-nilaix(3) = (0,  9326. 2,  0530. −1, 0493. 1, 1309)T . Lalu

proses perhitungan diulangi lagi dengank = 4. Begitulah seterusnya. Proses ini diulangi lagi

 berkali- kali untuk nilai-nilaik berikutnya. Proses yang berulang ini disebut prosesiterasi.

Sampai denganx(3) di atas, kita sudah melakukan tiga kali proses iterasi. Lantas sampai

kapan proses iterasi ini terus berlanjut? Jawabnya adalah sampaix( ,! ) mendekati solusi

yang tepat, yaitu

x= (1 2. −1. 1)T

Dengan kata lain, proses iterasi harus dihentikan bilax( ,! ) sudah mendekati solusi.Lalu

kriteria apa yang digunakan sehingga suatu hasil iterasi bisa dikatakan paling dekatdengan

Page 143: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 143/279

Page 144: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 144/279

106 BAB 6. METODE ITERASI10 %### inisialisasi e!r ###

11 = [6 ; 25 ; #11 ; 15];

Page 145: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 145/279

Page 146: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 146/279

27 E(3,2) = #A(3,2):A(3,3);

28 E(3,4) = #A(3,4):A(3,3);

29 '(3,1) = (3,1):A(3,3);

30

31 E(4,1) = #A(4,1):A(4,4);

32 E(4,2) = #A(4,2):A(4,4);

33 E(4,3) = #A(4,3):A(4,4);

34 '(4,1) = (4,1):A(4,4);

Statemen baris 16 sampai 34 berfungsi menghitung elemen matrik Jdan vektoru. Untuk

menyederhanakan baris 16 hingga 19, kita buat proses looping dengan indeks k, tetapi den-

gan pengecualian padak=1.

r ! = 1-4

i (! R= 1)

E(1,!) = #A(1,!):A(1,1);

en+

en+

'(1,1) = (1,1):A(1,1);

Mulai dari baris 21 hingga 24 juga bisa dibuat proses looping dengan pengecualian padak=2.

r ! = 1-4

i (! R= 2)

E(2,!) = #A(2,!):A(2,2);

en+en+

'(2,1) = (2,1):A(2,2);

Proses looping yang sama juga diterapkan terhadap baris ke-26 hingga ke-29.

r ! = 1-4

i (! R= 3)

E(3,!) = #A(3,!):A(3,3);

en+

en+

'(3,1) = (3,1):A(3,3);

Sementara untuk baris ke-31 hingga ke-34, penyerderhanaan dilakukan dengan cara yang

sama pula

r ! = 1-4

i (! R= 4)

E(4,!) = #A(4,!):A(4,4);

en+

en+

'(4,1) = (4,1):A(4,4);

Kalau seluruh penyederhanaan ini digabung, maka scriptnya akan seperti ini

1 clear all

2 clc

Page 147: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 147/279

3

4 A = [ 1 #1 2

5 #1 11 #1 3

6 2 #1 1 #1

7 3 #1 8];

8

9 = [ 6 ; 25 ; #11 ; 15 ];

10

11 [m,n] = sie(A);

12

13 E = ers(4);

14

15 r ! = 1-4

16 i (! R= 1)

17 E(1,!) = #A(1,!):A(1,1);

18 en+

19 en+

20 '(1,1) = (1,1):A(1,1);

21

22 r ! = 1-4

23 i (! R= 2)

24 E(2,!) = #A(2,!):A(2,2);

25 en+

26 en+

27 '(2,1) = (2,1):A(2,2);

28

29 r ! = 1-4

30 i (! R= 3)

31 E(3,!) = #A(3,!):A(3,3);32 en+

33 en+

34 '(3,1) = (3,1):A(3,3);

35

36 r ! = 1-4

37 i (! R= 4)

38 E(4,!) = #A(4,!):A(4,4);

39 en+

40 en+

41 '(4,1) = (4,1):A(4,4);

Selanjutnya, saya tampilkan indeks p. Perhatikan penempatannya

1 clear all

2 clc

3

4 A = [ 1 #1 2

5 #1 11 #1 3

6 2 #1 1 #1

7 3 #1 8];

8

9 = [ 6 ; 25 ; #11 ; 15 ];

10

11 [m,n] = sie(A);

12

13 E = ers(4);

14

15 $ = 1;

16 r ! = 1-4

Page 148: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 148/279

17 i (! R= $)

18 E($,!) = #A($,!):A($,$);

19 en+

20 en+

21 '($,1) = ($,1):A($,$);

22

23 $ = 2;

24 r ! = 1-4

25 i (! R= $)

26 E($,!) = #A($,!):A($,$);

27 en+

28 en+

29 '($,1) = ($,1):A($,$);

30

31 $ = 3;

32 r ! = 1-4

33 i (! R= $)

34 E($,!) = #A($,!):A($,$);

35 en+

36 en+

37 '($,1) = ($,1):A($,$);

38

39 $ = 4;

40 r ! = 1-4

41 i (! R= $)

42 E($,!) = #A($,!):A($,$);

43 en+

44 en+

45'($,1) = ($,1):A($,$);

Selanjutnya saya buat proses looping menggunakan indeks ptersebut. Perhatikan baik-baik

perubahannya

1 clear all

2 clc

3

4 A = [ 1 #1 2

5 #1 11 #1 3

6 2 #1 1 #1

7 3 #1 8];

8

9 = [ 6 ; 25 ; #11 ; 15 ];

10

11 [m,n] = sie(A);

12

13 E = ers(4);

14

15 r $ = 1-4

16 r ! = 1-4

17 i (! R= $)

18 E($,!) = #A($,!):A($,$);

19 en+

20 en+

21 '($,1) = ($,1):A($,$);

22 en+

Dan akhirnya, angka 4 dapat digantikan dengan huruf n agar script tersebut tidak dibatasi

oleh

Page 149: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 149/279

110 BAB 6. METODE ITERASI

matrik 4x4 saja.

1 clear all2 clc

3

4 A = [ 1 #1 2

5 #1 11 #1 3

6 2 #1 1 #1

7 3 #1 8];

8

9 = [ 6 ; 25 ; #11 ; 15 ];

10

11 [m,n] = sie(A);

12

13 E = ers(n);

14

15 r $ = 1-n

16 r ! = 1-n

17 i (! R= $)

18 E($,!) = #A($,!):A($,$);

19 en+

20 en+

21 '($,1) = ($,1):A($,$);

22 en+

Selanjutnya, vektorxlamadiinisialisasi; dan proses iterasi pertama dimulai

1 clear all

2 clc

3

4 A = [ 1 #1 2

5 #1 11 #1 3

6 2 #1 1 #1

7 3 #1 8];

8

9 = [ 6 ; 25 ; #11 ; 15 ];

10

11 [m,n] = sie(A);

12

13 E = ers(n);

14

15 r $ = 1-n

16 r ! = 1-n

17 i (! R= $)

18 E($,!) = #A($,!):A($,$);

19 en+

20 en+

21 '($,1) = ($,1):A($,$);

22 en+

23

24 lama = [ ; ; ; ]; % ### inisialisasi lama

25 ar' = E/lama * '; % ### ierasi $erama

xbaruyang didapat tak lain adalah hasil iterasi pertama, yaitux(1) = (0, 6000. 2, 2727. −1, 1000

1, 8750)T. Kemudian, sebelum iterasi ke-2 dilakukan,xbarutersebut mesti disimpan sebagai

xlama.

Page 150: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 150/279

6.3. ITERASI JACOBI 111

1 clear all

2 clc

3

4 A = [ 1 #1 2

5 #1 11 #1 3

6 2 #1 1 #1

7 3 #1 8];

8

9 = [ 6 ; 25 ; #11 ; 15 ];

10

11 [m,n] = sie(A);

12

13 E = ers(n);

14

15 r $ = 1-n

16 r ! = 1-n

17 i (! R= $)

18 E($,!) = #A($,!):A($,$);

19 en+

20 en+

21 '($,1) = ($,1):A($,$);

22 en+

23

24 lama = [ ; ; ; ]; % ### inisialisasi lama

25 ar' = E/lama * '; % ### ierasi $erama

26

27 lama = ar';

28 ar' = E/lama * '; % ### ierasi !e+'a

Sampai disini,xbaruyang didapat dari hasil iterasi ke-2 adalahx(2) = (1, 0473. 1, 7159

−0, 8052. 0, 8852)T. Setelah itu, untuk iterasi ke-3,xbarutersebutmestidisimpansebagai

xlama

kembali,

1 clear all

2 clc

3

4 A = [ 1 #1 2

5 #1 11 #1 3

6 2 #1 1 #1

7 3 #1 8];

8

9 = [ 6 ; 25 ; #11 ; 15 ];

10

11 [m,n] = sie(A);

12

13 E = ers(n);

14

15 r $ = 1-n

16 r ! = 1-n

17 i (! R= $)

18 E($,!) = #A($,!):A($,$);

19 en+

20 en+

21 '($,1) = ($,1):A($,$);

22 en+

23

24 lama = [ ; ; ; ]; % ### inisialisasi lama

Page 151: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 151/279

112 BAB 6. METODE ITERASI

25 ar' = E/lama * '; % ### ierasi $erama

26

27 lama = ar';

28 ar' = E/lama * '; % ### ierasi !e+'a

29

30 lama = ar';

31 ar' = E/lama * '; % ### ierasi !ei0a

Sampai disini,xbaruyang didapat adalah hasil iterasi ke-3, yaitux(3) = (0, 9326. 2, 0530

− 1, 0493. 1, 1309)T. Kemudian, untuk iterasi ke-4,scriptdi atas dimodifikasi dengan cara yang

sama. Tapi konsekuensinyascripttersebut akan semakin bertambah panjang. Guna menghin-

dari hal itu,scriptdi atas perlu dioptimasi dengan proses looping sebagai berikut

1clear all

2 clc

3

4 A = [ 1 #1 2

5 #1 11 #1 3

6 2 #1 1 #1

7 3 #1 8];

8

9 = [ 6 ; 25 ; #11 ; 15 ];

10

11 [m,n] = sie(A);

12

13 E = ers(n);

1415 r $ = 1-n

16 r ! = 1-n

17 i (! R= $)

18 E($,!) = #A($,!):A($,$);

19 en+

20 en+

21 '($,1) = ($,1):A($,$);

22 en+

23

24 lama = [ ; ; ; ]; % ### inisialisasi lama

25

26 ierma!s = 1; % ### iera!si ma!sim'm sam$ai 1 !ali

27 r ! = 1-ierma!s28 ar' = E/lama * ';

29 lama = ar';

30 en+

Dalam script di atas, jumlah iterasi dibatasi hanya sampai 10 kali saja. Maka keluaran dari

script di atas adalah hanya sampai hasil perhitungan iterasi yang ke-10. Hasil dari

keseluruhan iterasi, mulai dari iterasi ke-1 hingga iterasi ke-10 disajikan pada Tabel 6.1.

Berdasarkan Tabel 6.1,terlihat bahwa hasil iterasi ke-1,x(1) = (0, 6000. 2, 2727. −1, 1000. 1, 

8852)T

adalah hasil yang paling jauh dari solusi,x= (1 2. −1. 1)

T

. Coba bandingkan dengan hasil it-erasi ke-2! Jelas terlihat bahwa hasil iterasi ke-2 lebih mendekati solusi. Kalau terus

diurutkan, maka hasil iterasi ke-10 merupakan hasil yang paling dekat dengan solusi.

Sebelum dilanjutkan, saya ingin tuliskan script yang sudah dimodifikasi, dimana semua

 bagian inisialisasi saya letakkan di baris-baris awal

Page 152: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 152/279

Page 153: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 153/279

1 clear all

2 clc

3

4 A = [ 1 #1 2

5 #1 11 #1 3

6 2 #1 1 #1

7 3 #1 8];

8 = [ 6 ; 25 ; #11 ; 15 ];

9 lama = [ ; ; ; ];

10 ierma!s = 1;

11

12 [m,n] = sie(A);

13

14 % ### mem'a mari! E +an e!r ' ###

15 E = ers(n);

16 r $ = 1-n

17 r ! = 1-n

18 i (! R= $)

19 E($,!) = #A($,!):A($,$);

20 en+

21 en+

22 '($,1) = ($,1):A($,$);

23 en+

24

25 % ### $rses ierasi &aci ###

26 r ! = 1-ierma!s

27 ar' = E/lama * ';

28 selisi = ar' # lama;

29 e$siln = nrm2(selisi)

30 lama = ar';

31 en+

Tanda titik-koma pada baris ke-29 sengaja dihilangkan agar nilai epsilon selalu ditampilkan

ketika script tersebut dijalankan.

Nilai epsilon ini begitu penting untuk menentukan kapan proses iterasi harus dihentikan.

Oleh karenanya, nilai epsilon difungsikan sebagaistopping criteria. Berdasarkan Tabel 6.2, jika

nilai< ditentukan sebesar 0,2 , maka proses iterasi akan berhenti pada iterasi ke-4. Atau kalau

nilai< ditentukan sebesar 0,0001 , maka proses iterasi akan berhenti pada iterasi ke-10. Kes-

impulannya, semakin kecil nilai<, semakin panjang proses iterasinya, namun hasil akhirnyasemakin akurat.

Di bawah ini adalahscriptiterasi Jacobi yang memanfaatkan nilai epsilon untuk menghen-

tikan proses iterasi

1 clear all

2 clc

3

4 A = [ 1 #1 2

5 #1 11 #1 3

6 2 #1 1 #1

7 3 #1 8];8 = [ 6 ; 25 ; #11 ; 15 ];

9 lama = [ ; ; ; ];

10 ierma!s = 1;

11 e$siln = F1;

Page 154: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 154/279

12

13 [m,n] = sie(A);

14

15 % ### mem'a mari! E +an e!r ' ###

16 E = ers(n);

17 r $ = 1-n

18 r ! = 1-n

19 i (! R= $)

20 E($,!) = #A($,!):A($,$);

21 en+

22 en+

23 '($,1) = ($,1):A($,$);

24 en+

25

26 % ### $rses ierasi &aci ###

27 r ! = 1-ierma!s

28 ar' = E/lama * ';

29 selisi = ar' # lama;

30 i (nrm2(selisi) M e$siln)

31 rea!;

32 en+

33 lama = ar';

34 en+

35 ierasi = !

36 = ar'

Pada baris ke-11 saya tetapkan nilai epsilon sebesar 0,0001. Sementara baris ke-10, dimana

itermaks saya batasi hingga 1000 kali iterasi. Akan tetapi dengan adanya baris ke-30, maka jika norm2(xselisih) lebih kecil nilainya dari nilai epsilon yang dinyatakan pada baris ke-11,

proses iterasi akan dihentikan. Sementara, statemen baris ke-35 sengaja saya tambahkan

hanya untuk sekedar mengetahui berapa kali komputer kita melakukan proses iterasi.

Dengan nilai epsilon

0,0001, proses iterasi akan dihentikan pada iterasi yang ke-10. Jadi, walaupun itermaks telah

ditentukan yaitu 1000, komputer hanya melakukan proses iterasi sampai iterasi yang ke-10

saja.

6.3.3 Fungsi eksternal iterasi Jacobi

Fungsi eksternal metode iterasi Jacobi dapat diambil dari script yang terakhir di atas

adalah

1 'ncin [!,ar'] = i&c(A,,lama,ierma!s,e$siln)

2

3 [m,n] = sie(A);

4

5 % ### mem'a mari! E +an e!r ' ###

6 E = ers(n);

7 r $ = 1-n

8 r ! = 1-n9 i (! R= $)

10 E($,!) = #A($,!):A($,$);

11 en+

12 en+

13 '($,1) = ($,1):A($,$);

14 en+

15

Page 155: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 155/279

Page 156: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 156/279

4 = − 8 

x2 +8 

x3 +8

Page 157: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 157/279

6.4. ITERASI GAUSS-SEIDEL 117

x − x3 +

x + x − x4 +

x(1)

x(1)

x(1)

x(1)

x

x(k )

x(k )

Pada baris pertama,x ,!  

dihitung berdasarkanx!m! danx!m!

. Kemudianx ,!  tersebut1 2 3 1

langsung dipakai pada baris kedua untuk menghitungx ,! . Selanjutnyax ,!  

danx ,!  di-2 1 2

gunakan pada baris ketiga untuk mendapatkanx ,! . Begitu seterusnya hinggax ,!  pun3 4

diperoleh pada baris keempat. Sistem persamaan tersebut dapat dinyatakan dalam indeksk

seperti dibawah ini dimanakadalah jumlah iterasi.

x(k ) 1 (k $1) 2 (k$1) 61 =

10 2 10 10

x(k ) 1 (k ) 1 (k $1) 3 (k$1) 252 =

11 1 11 3 11 11

x(k ) 2 (k ) 1 (k ) 1 (k$1) 113

= − 10 

x1

+10 

x2

+10 

x4

−10

x(k ) 3 (k ) 1 (k) 154 = − 8 x2 +8 x3 +

8

Misalnya kita tentukan nilai-nilai awalx(0)sebagai berikutx

(0)= 0,x

(0)= 0,x

(0)= 0dan

x(0)

1 2 3

4 = 0. Atau dinyatakan seperti inix(0)= (0 0 0 0)

t . Maka padak = 1kita akan

memperoleh

nilai-nilaix(1) sebagai berikut

1 = 0, 6000

2 = 2, 3272

3 = −0, 9873

4 = 0, 8789

Lalu proses perhitungan diulangi lagi dengank = 2. Begitu seterusnya proses ini diulang-

ulang lagi untuk nilai-nilaik berikutnya sampaix(k) mendekati solusi yang sesungguhnya,

yaitu

x= (1 2. −1. 1)t

Marilah kita amati hasil seluruh iterasi. Tabel di bawah ini menampilkan hasil

perhitungan hingga iterasi yang ke-5. Kita bisa saksikan bahwa dibandingkan dengan iterasi Jacobi, prob- lem sistem persamaan linear yang sama, bisa diselesaikan oleh metode iterasi

Gauss-Seidel hanya dalam 5 kali iterasi. Dari kasus ini, bisa kita simpulkan bahwa iterasi

Gauss-Seidel bek-

Tabel 6.3: Hasil IterasiGauss-Seidelk 0 1 2 3 4 5(k )1

x(k )

0,0000 0,6000 1,030 1,0065 1,0009 1,0001

2 0,0000 2,3272 2,037 2,0036 2,0003 2,0000

3 0,0000 -0,9873 -1,014 -1,0025 -1,0003 -1,0000

4 0,0000 0,8789 0,9844 0,9983 0,9999 1,0000

erja lebih efektifdibandingkaniterasi Jacobi. Ya.., memang secara umum demikian, akan

tetapi

Page 158: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 158/279

118 BAB 6. METODE ITERASI

ternyata ditemukan kondisi yang sebaliknya pada kasus-kasus yang lain.

Page 159: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 159/279

2 −   3

1 3 −   4

8

8

8

0

81

08

0

08

0

8

6.4.1 Scriptiterasi Gauss-Seidel

Pembuatanscript iterasiGauss-Seideldimulai dari sistem persamaan linear yang telahdibahas di atas, yaitu

x ,!   1

!m!  2

!m!6

1 = x x +10 10 10

x ,!  1  ,!   

1!m!  

3!m!

252 = x + x x +

11 11 11 11

x ,!   2  ,!    1  ,!    1 !m! 11

3 = − 10 

x1 +10 

x2 +10 

x4 −10

x ,!  3  ,! 

1   ,!  15

4 = − 

x2 +

x3 +

8

Pada pembahasan iterasi Jacobi, saya telah membuat matrik J berisi konstanta yang menemani

variabel x. Matrik J ini akan saya gunakan lagi untuk menyusun script metode iterasi Gauss-

Seidel

 

0  1 2

10− 

100

 1  1 3

 ; =

11 0 11 − 11

 2  1  1

 

− 10 10

010

0 − 3 1

Kemudian matrik J dipecah menjadi matrik L dan matrik U, dimana J = L + U

 

0  1 2  

 1 2

10− 

100 0 0 0 0 0

10− 

100

  1  1 3

  1

    1  3

 

110

11− 

11 

110 0 0  

+ 0 0

11− 

11

  2 1  1

  2 1

  1

 

− 

10

100

10 

   − 

10

100 0

 0 0 0

10

0 − 3 1

80 − 3 1

   

0 0 0 0

Sampai disini saya nyatakan matrikL, matrikUdan vektorusebagai berikut

 

0 0 0 0    

 110

 2− 10

  6

10 1

    1  3 

   25

 

4 = 11

0 0 0 5 =

 0 011

− 11 

0 =

 11

  2 1

  1 

   11

 

− 10 10

00   

0 0 010 

   − 

10

0 − 3 0    

0 0 0 0

  15

8

Karena matrik L dan U berasal dari matrik J, maka pembuatan script iterasi Gauss-Seidel akan

saya mulai dari script perhitungan matrik J yang telah dibuat sebelumnya. Inilah script untuk

membuat matrik J,

1 clear all

2 clc

3

4 A = [ 1 #1 2 ;

5 #1 11 #1 3;

6 2 #1 1 #1;

Page 160: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 160/279

Page 161: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 161/279

9 = [ 6 ; 25 ; #11 ; 15 ];

10

11 +im = sie(A);

12 n = +im(1);

13

14 %#### <eri'n0an mari! E +an e!r '#####

15 r ! = 1-n

16 E(!,!) = ;

17 en+

18

19 r $ = 1-n#1

20 r ! = 1-n

21 i ! == $

22 ! = !*1;

23 en+

24 E($,!) = #A($,!):A($,$);

25 en+

26 '($,1) = ($,1):A($,$);

27 en+

28

29 r ! = 1-n#1

30 E(n,!) = #A(n,!):A(n,n);

31 en+

32 '(n,1) = (n,1):A(n,n);

Untuk memperoleh matrik L, pertama-tama matrik J dicopy ke matrik L. Kemudian seluruh

elemen segitiga di atas elemen diagonal diganti dengan angka nol. Proses ini dilakukan

mulai dari baris ke-34 hingga ke-43.

1 clear all

2 clc

3

4 A = [ 1 #1 2 ;

5 #1 11 #1 3;

6 2 #1 1 #1;

7 3 #1 8];

8

9 = [ 6 ; 25 ; #11 ; 15 ];

10

11 +im = sie(A);12 n = +im(1);

13

14 %#### <eri'n0an mari! E +an e!r '#####

15 r ! = 1-n

16 E(!,!) = ;

17 en+

18

19 r $ = 1-n#1

20 r ! = 1-n

21 i ! == $

22 ! = !*1;

23 en+

24 E($,!) = #A($,!):A($,$);

25 en+

26 '($,1) = ($,1):A($,$);

27 en+

28

Page 162: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 162/279

120 BAB 6. METODE ITERASI

29 r ! = 1-n#1

30 E(n,!) = #A(n,!):A(n,n);

31 en+

32 '(n,1) = (n,1):A(n,n);

33 %###########################################

34 K = E; % mari! E +ic$ !e mari! K

35 r ! = 2-4

36 K(1,!) = ;

37 en+

38 r ! = 3-4

39 K(2,!) = ;

40 en+

41 r ! = 4-4

42 K(3,!) = ;

43 en+

Proses perhitungan mulai dari baris ke-35 hingga ke-43 akan disederhanakan dengan

langkah-

langkah berikut. Saya munculkan indeks p,

K = E; % mari! E +ic$ !e mari! K

$ = 1;

r ! = 2-4

K($,!) = ;

en+

$ = 2;

r ! = 3-4

K($,!) = ;

en+

$ = 3;

r ! = 4-4

K($,!) = ;

en+

Dengan adanya indeks p, bagian looping dapat dimodifikasi menjadi

K = E; % mari! E +ic$ !e mari! K

$ = 1;

r ! = $*1-4

K($,!) = ;

en+

$ = 2;

r ! = $*1-4

K($,!) = ;

en+

$ = 3;

r ! = $*1-4

K($,!) = ;

en+

Kemudian, berdasarkan indeks p, dibuatlah proses looping,

K = E; % mari! E +ic$ !e mari! Kr $ = 1-3

r ! = $*1-4

K($,!) = ;

en+

en+

Page 163: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 163/279

Selanjutnya, angka 3 dan 4 dapat diganti dengan variabel n agar bisa digabung dengan script

utamanya. Perhatikan baris ke-35 dan ke-36 pada script berikut

1 clear all

2 clc

3

4 A = [ 1 #1 2 ;

5 #1 11 #1 3;

6 2 #1 1 #1;

7 3 #1 8];

8

9 = [ 6 ; 25 ; #11 ; 15 ];

10

11 +im = sie(A);

12 n = +im(1);

13

14 %#### <eri'n0an mari! E +an e!r '#####

15 r ! = 1-n

16 E(!,!) = ;

17 en+

18

19 r $ = 1-n#1

20 r ! = 1-n

21 i ! == $

22 ! = !*1;

23 en+

24 E($,!) = #A($,!):A($,$);

25 en+

26 '($,1) = ($,1):A($,$);

27 en+

28

29 r ! = 1-n#1

30 E(n,!) = #A(n,!):A(n,n);

31 en+

32 '(n,1) = (n,1):A(n,n);

33 %###########################################

34 K = E; % mari! E +ic$ !e mari! K

35 r $ = 1-n#1

36 r ! = $*1-n

37 K($,!) = ;

38 en+39 en+

OK, dengan demikian matrik L telah terbentuk dan tersimpan di memory komputer.

Sekarang

kita akan membentuk matrik U. Prosesnya sama seperti saat pembentukan matrik L, yaitu

dimulai denganmencopymatrik J ke dalam matrik U. Perhatikan mulai dari baris ke-41

 berikut ini,

1 clear all

2 clc

3

4 A = [ 1 #1 2 ;

5 #1 11 #1 3;

6 2 #1 1 #1;

7 3 #1 8];

8

Page 164: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 164/279

9 = [ 6 ; 25 ; #11 ; 15 ];

10

11 +im = sie(A);

12 n = +im(1);

13

14 %#### <eri'n0an mari! E +an e!r '#####

15 r ! = 1-n

16 E(!,!) = ;

17 en+

18

19 r $ = 1-n#1

20 r ! = 1-n

21 i ! == $

22 ! = !*1;

23 en+

24 E($,!) = #A($,!):A($,$);

25 en+

26 '($,1) = ($,1):A($,$);

27 en+

28

29 r ! = 1-n#1

30 E(n,!) = #A(n,!):A(n,n);

31 en+

32 '(n,1) = (n,1):A(n,n);

33 %###########################################

34 K = E; % mari! E +ic$ !e mari! K

35 r $ = 1-n#1

36 r ! = $*1-n

37 K($,!) = ;38 en+

39 en+

40 %###########################################

41 = E; % mari! E +ic$ !e mari!

42 r ! = 2-4

43 (!,1) = ;

44 en+

45 r ! = 3-4

46 (!,2) = ;

47 en+

48 r ! = 4-4

49 (!,3) = ;

50 en+

Kemudian, indeks p dimunculkan mulai diantara baris ke-42 hingga ke-50,

= E; % mari! E +ic$ !e mari!

$ = 1;

r ! = $*1-4

(!,$) = ;

en+

$ = 2;

r ! = $*1-4

(!,$) = ;

en+$ = 3;

r ! = $*1-4

(!,$) = ;

en+

Page 165: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 165/279

6.4. ITERASI GAUSS-SEIDEL 123

Selanjutnya, berdasarkan indeks p dibuatlah proses looping yang baru

= E; % mari! E +ic$ !e mari!

r $ = 1-3

r ! = $*1-4

(!,$) = ;

en+

en+

Akhirnya, script ini digabungkan ke script utamanya setelah mengganti angkan 3 dan 4 den-

gan variabel n.

1 clear all

2 clc

34 A = [ 1 #1 2 ;

5 #1 11 #1 3;

6 2 #1 1 #1;

7 3 #1 8];

8

9 = [ 6 ; 25 ; #11 ; 15 ];

10

11 +im = sie(A);

12 n = +im(1);

13

14 %#### <eri'n0an mari! E +an e!r '#####

15 r ! = 1-n

16 E(!,!) = ;17 en+

18

19 r $ = 1-n#1

20 r ! = 1-n

21 i ! == $

22 ! = !*1;

23 en+

24 E($,!) = #A($,!):A($,$);

25 en+

26 '($,1) = ($,1):A($,$);

27 en+

28

29 r ! = 1-n#130 E(n,!) = #A(n,!):A(n,n);

31 en+

32 '(n,1) = (n,1):A(n,n);

33 %###########################################

34 K = E; % mari! E +ic$ !e mari! K

35 r $ = 1-n#1

36 r ! = $*1-n

37 K($,!) = ;

38 en+

39 en+

40 %###########################################

41 = E; % mari! E +ic$ !e mari!

42 r $ = 1-n#143 r ! = $*1-n

44 (!,$) = ;

45 en+

46 en+

Page 166: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 166/279

i =

Secara umum, script iterasi Gauss-Seidel yang saya tuliskan disini hampir sama dengan it-

erasi Jacobi. Perbedaan kecil-nya terletak pada bagiannilai update, dimana elemenxbaruhasil

perhitungan dilibatkan langsung untuk menghitung elemenxbaruselanjutnya.

1 clear all

2 clc

3

4 %####nilai aal###########

5 lama(1,1)=;

6 lama(2,1)=;

7 lama(3,1)=;

8 lama(4,1)=;

9 lama10

11 n=4 %&'mla elemen e!r

12 ierma!s=1 %&'mla ierasi ma!simal

13 sc=F1 %s$$in0#crieria

14

15 r i=1-ierma!s

16 %######nilai '$+ae#############

17 ar'(1,1)=(1:1)/lama(2,1)#(2:1)/lama(3,1)*(6:1);

18 ar'(2,1)=(1:11)/ar'(1,1)*(1:11)/lama(3,1)#(3:11)/lama(4,1)*(25:11);

19 ar'(3,1)=#(2:1)/ar'(1,1)*(1:1)/ar'(2,1)*(1:1)/lama(4,1)#(11:1);

20 ar'(4,1)=#(3:8)/ar'(2,1)*(1:8)/ar'(3,1)*(15:8);

21 ar'

22

23 %######nrm selisi#############

24 s=;

25 r i=1-n

26 s=s*(ar'(i,1)#lama(i,1))G2;

27 en+

28 e$siln=sQr(s)

29

30 %######memeri!sa s$$in0 crieria, sc########

31 i e$silnMsc

32 rea!

33 en+

34

35 lama=ar'; %ar' +i&a+i!an lama 'n'! ierasi eri!'na

36 en+

Perumusan metode Iterasi Gauss-Seidel dapat dinyatakan sebagai berikut:

'i$1 

ai j x(k)

 

−'

ai j x(k $1)

 

+ bix

(k )−

 j=1  j j=i+1  j

aii

(6.7)

dimanai=1,2,3,...,n.

6.4.2 Algoritma

• Langkah 1: Tentukank=1

• Langkah 2: Ketika (k 7 * ) lakukan Langkah 3-6

Page 167: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 167/279

–Langkah 3: Untuki=1,...,n, hitunglah

'i$1 

ai j x j  −

'n

ai j X= j  + bixi  = −  j=1  j=i+1

aii

–Langkah 4: Jikakx− XOk < <, maka keluarkan OUTPUT(x1, ..., xn)lalu STOP

–Langkah 5: Tentukank=k+1

–Langkah 6: Untuki=1,...n, tentukanX=i = xi

• Langkah 7: OUTPUT (’Iterasi maksimum telah terlampaui’) lalu STOP

6.4.3 Scriptiterasi Gauss-Seidel dalam Fortran

1 ?><K?"?T @H@.

2 ?>.@?H@ A(1,1),B(1),J(1),JH(1)

3 .AK A,B,J,JH,.<,@H>,1,2

4 ?@T.. @,?,E,D,?T>AJ

5 ?T.(/,/)

6 ?T.(/,/) ’==L ?T.A? A#.?.K @TD ?T.> [email protected] M==’

7 ?T.(/,/)

8 ?T. (/,’(1J,A)’) ’E>KAN <.A>AA@ O ’

9 .A (/,/) @

10 ?T. (/,/) ’>ADA@ .K.>.@#.K.>.@ >AT?D A A@ .DTH B’

11 H 52 ? = 1,@

12 H 62 E = 1,@

13 ?T. (/,’(1J,A,?2,A,?2,A)’) ’A(’,?,’,’,E,’) = ’

14 .A (/,/) A(?,E)

15 62 "H@T?@.

16 ?T. (/,’(1J,A,?2,A)’) ’B(’,?,’) O ’

17 .A (/,/) B(?)

18 ?T. (/,/)

19 52 "H@T?@.

20 ?T. (/,’(1J,A)’) ’E>KAN ?T.A? >AD?>> O ’

21 .A (/,/) ?T>AJ

22 ?T. (/,’(1J,A)’) ’@?KA? .<?KH@ ATA THK.A@? O ’

23 .A (/,/) .<

24 ?T. (/,/) ’>ADA@ @?KA? AAK @TD JH’

25 H 72 ? = 1,@26 ?T. (/,’(1J,A,?2,A)’) ’JH(’,?,’) O ’

27 .A (/,/) JH(?)

28 72 "H@T?@.

29 ?T. (/,/)

30 " >.@A><?KDA@ >AT?D A

31 ?T. (/,’(1J,A)’) ’>AT?D A-’

32 H 11 ? = 1,@

33 ?T. (/,6) (A(?,E),E=1,@)

34 11 "H@T?@.

35 ?T. (/,/)

36 " >.@A><?KDA@ .DTH B

37 ?T. (/,’(1J,A)’) ’.DTH B-’

38 H 111 ? = 1,@39 ?T. (/,6) B(?)

40 111 "H@T?@.

41 ?T. (/,/)

42 " KA@DAN 1

Page 168: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 168/279

a

43 D = 1

44 " KA@DAN 2

45 1 ?C(DFTF?T>AJ) HTH 2

46 " KA@DAN 3

47 H 1 ? = 1,@

48 1 = F

49 H 2 E=?*1,@

50 1 = 1#A(?,E)/JH(E)

51 2 "H@T?@.

52 2 = F

53 H 23 E=1,?#1

54 2 = 2#A(?,E)/J(E)

55 23 "H@T?@.

56 J(?) = (2*1*B(?)):A(?,?)

57 1 "H@T?@.

58 " AIA <?K?N @H>#2F A@A BHK.N <ADA? @H> IA@ KA?@S

59 @H> = F

60 H 4 ?=1,@

61 @H> = @H> * (J(?)#JH(?))/(J(?)#JH(?))

62 4 "H@T?@.

63 @H> = PT(@H>)

64 ?T.(/,’(1J,A,?3)’) ’?T.A? D.#’, D

65 ?T.(/,’(1J,A,C14F8)’) ’@H>#2 = ’, @H>

66 ?T.(/,’(1J,A,?3,A,C14F8)’) (’J(’,?,’) = ’, J(?),?=1,@)

67 ?T.(/,/)

68 " KA@DAN 4

69 ?C(@H>FK.F.<) TN.@

70 ?T.(/,7) D,@H>

71HTH 4

72 .@ ?C

73 " KA@DAN 5

74 D = D*1

75 " KA@DAN 6

76 H 3 ?=1,@

77 JH(?) = J(?)

78 3 "H@T?@.

79 HTH 1

80 " KA@DAN 7

81 2 "H@T?@.

82 ?T.(/,9)

83 4 TH<

8485 5 CH>AT(1J,?3)

86 6 CH>AT(1J,(6(1J,C14F8)))

87 7 CH>AT(1J,’DH@..@ <AA ?T.A? IA@ D.# ’,?3,

88 /’ , @H>= ’,C14F8)

89 9 CH>AT(1J,’>.K.B?N? BATA >AD?>> ?T.A?’)

90 .@

6.5 Iterasi dengan Relaksasi

Metode Iterasi Relaksasi (Relaxationmethod ) dinyatakan dengan rumus berikut:

x(k ) (k$1) ω

i$1X n

(k)X

(k $1)i = (1 − ω) xi

+ii

bi − j=1

ai j x j − j=i+1

ai j x j (6.8)

Page 169: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 169/279

k 0 1 2 3 4 5 6 7

x(k )

1

x(k )

x(k )

1 6,3125 2,6223 3,1333 2,9570 3,0037 2,9963 3,0000

1 3,5195 3,9585 4,0102 4,0075 4,0029 4,0009 4,0002

1 -6,6501 -4,6004 -5,0967 -4,9735 -5,0057 -4,9983 -5,0003

x

x(k )

6.5. ITERASI DENGAN RELAKSASI 127

dimanai=1,2,3,...,n.

Untuk lebih jelasnya, marilah kita perhatikan contoh berikut, diketahui sistem persamaanlinearAx= byaitu

4x1 + 3x2 + = 24

3x1 + 4x2 − x3

−x2 + 4x3

=

=

30

−24

memiliki solusi(3,  4, −5)t . Metode Gauss-Seidel dan Relaksasi denganω = 1,  25 akan

digu- nakan untuk menyelesaikan sistem persamaan linear di atas denganx(0) = (1, 1, 1)t .

Untuk setiap nilaik = 1, 2, 3, ...,persamaan Gauss-Seidelnya adalah

x(k ) (k $1)1 = −0, 75x2 + 6

x(k ) (k ) (k $1)2 = −0, 75x1 + 0, 25x3 + 7, 5

x(k ) (k )3 = 0, 25x2 − 6

Sedangkan persamaan untuk metode Relaksasi denganω = 1, 25adalah

x(k ) (k $1) (k $1)1 = −0, 25x1 − 0, 9375x2 + 7, 5

x(k ) (k ) (k $1) (k $1)2 = −0, 9375x1 − 0, 25x2 + 0, 3125x3 + 9, 375

x(k ) (k ) (k $1)3 = 0, 3125x2 − 0, 25x3 − 7, 5

Tabel berikut ini menampilkan perhitungan dari masing-masing metode hingga iterasike-7.

Tabel 6.4: Hasil perhitungan iterasiGauss-Seidelk 0 1 2 3 4 5 6 7(k )1

x(k )

1 5,2500 3,1406 3,0879 3,0549 3,0343 3,0215 3,0134

2 1 3,8125 3,8828 3,9267 3,9542 3,9714 3,9821 3,9888

3 1 -5,0468 -5,0293 -5,0183 -5,0114 -5,0072 -5,0044 -5,0028

Tabel 6.5: Hasil perhitungan iterasi Relaksasi denganω = 1, 25

2

3

Dari kasus ini, bisa kita simpulkan bahwa iterasi Relaksasi memerlukan proses iterasi yanglebih singkat dibandingkan iterasi Gauss-Seidel. Jadi, pada kasus ini (dan juga secara umum),

Relaksasi lebih efektifdibandingkanGauss-Seidel.Pertanyaannyasekarang, bagaimanamenen-

tukan nilaiω optimal?

Page 170: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 170/279

128 BAB 6. METODE ITERASI

MetodeRelaksasi dengan pilihan nilaiωyang berkisar antara 0 dan 1 disebut metode

under-

relaxation, dimana metode ini berguna agar sistem persamaan linear bisa mencapai kondisikonvergen walaupun sistem tersebut sulit mencapai kondisi konvergen dengan metode

Gauss- Seidel. Sementara bilaω nilainya lebih besar dari angka 1, maka disebut metode

successive over-relaxation (SOR), yang mana metode ini berguna untuk mengakselerasi atau

mempercepat kondisi konvergen dibandingkan dengan Gauss-Seidel. Metode SOR ini juga

sangat berguna untukmenyelesaikansistempersamaanlinear yang muncul daripersamaan

diferensial-parsial tertentu.

6.5.1 Algoritma Iterasi Relaksasi

• Langkah 1: Tentukank=1

• Langkah 2: Ketika (k 7 * ) lakukan Langkah 3-6

–Langkah 3: Untuki=1,...,n,hitunglah

 j=1 ai j x j  − ' j=i+1 ai j X= j  + bi 

xi  = (1 − ω) X=i

+

ω − '

i$1 n

aii

–Langkah 4: Jikakx− XOk < <, maka keluarkan OUTPUT(x1, ..., xn)lalu STOP

–Langkah 5: Tentukank=k+1

–Langkah 6: Untuki=1,...n, tentukanX=i = xi

• Langkah 7: OUTPUT (’Iterasi maksimum telah terlampaui’) lalu STOP

Demikianlah catatan singkat dari saya tentang metode iterasi untuk menyelesaikan prob-

lem sistem persamaan linear. Saya cukupkan sementara sampai disini. Insya Allah akan saya

sambung lagi dilain waktu. Kalau ada yang mau didiskusikan, silakan hubungi saya melalui

email:[email protected].

Page 171: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 171/279

x

x

1

x x

Bab 7

Interpolasi

✍ Objektif :

⊲ Mengenalkan 5nterpolasi 1agrange

⊲ Mengenalkan 5nterpolasi pline-ubi

7.1 Interpolasi Lagrange

Interpolasi Lagrange diterapkan untuk mendapatkan fungsi polinomial# (x) berderajat ter-

tentu yang melewati sejumlah titik data. Misalnya, kita ingin mendapatkan fungsi polinomial

 berderajat satu yang melewati dua buah titik yaitu(x0 , y0 ) dan(x1 , y1 ). Langkah pertama

yang kita lakukan adalah mendefinisikan fungsi berikut

x − x140 (x) =0 − x1

danx − x0

41 (x) = 1 − x0

kemudian kita definisikan fungsi polinomial sebagai berikut

# (x) = 40 (x)y0 +

41(x)y1

 Jika semua persamaan diatas kita gabungkan, maka akan didapat

# (x) = 40 (x)y0 + 41 (x)y1

dan ketikax = x0

# (x) =x − x1

x0 − x1

y0 + x − x0

y

x1 −

x0

x0 − x1 x0 − x0# (x0 ) =0 − x1

y0 +1 − x0

y1 = y0

129

Page 172: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 172/279

130 BAB 7. INTERPOLASI

x x

0

1

2

2

0

0

dan pada saatx = x1x1 − x1 x1 − x0# (x1 ) =

0 − x1y0 +

1 − x0y1 = y1

dari contoh ini, kira-kira apa kesimpulan sementara anda? Ya.. kita bisa sepakat bahwa

fungsi polinomial

# (x) = x − x1

x0 − x1

y0 +x − x0

x1 − x0y1 (7.1)

 benar-benar melewati titik(x0 , y0 )dan(x1 , y1

).

Sekarangmari kita perhatikan lagi contoh lainnya. Misalnya ada tiga titik yaitu(x0 , y0 ),(x1,

y1 ) dan(x2 , y2 ). Tentukanlah fungsi polinomial yang melewati ketiganya! Dengan pola yang

sama kita bisa awali langkah pertama yaitu mendefinisikan

(x − x1 )(x −x2)

40 (x) =(x − x1 )(x0− x2 )

lalu

(x − x0 )(x − x2)

dan

41 (x) =(x − x0 )(x1− x2 )

(x − x0 )(x −x1)

42 (x) =(x − x0 )(x2− x1 )

kemudian kita definisikan fungsi polinomial sebagai berikut

# (x) = 40 (x)y0 + 41(x)y1 + 42(x)y2

 Jika semua persamaan diatas kita gabungkan, maka akan didapat fungsi polinomial

# (x) =(x − x1)(x − x2 )

(x0 − x1)(x0 − x2)

y0 +(x − x0)(x − x2 )

(x1 − x0)(x1 − x2)

y1 +(x − x0 )(x − x1)

y(x2 − x0 )(x2 − x1 )

Kita uji sebentar. Ketikax = x0

(x0 − x1)(x0 − x2

)(x0 − x0)(x0 − x2

)(x0 − x0)(x0 − x1 )

# (x0 ) =(x − x1)(x0

y0 +− x2 ) (x1 − x0)(x1

y1 +− x2 ) (x2 − x0)(x2

y2 = y0− x1 )

pada saatx = x1

(x1 − x1)(x1 − x2

)(x1 − x0)(x1 − x2

)(x1 − x0)(x1 − x1 )

# (x1 ) =(x − x1)(x0

y0 +− x2 ) (x1 − x0)(x1

y1 +− x2 ) (x2 − x0)(x2

y2 = y1− x1 )

pada saatx = x2 (x2−

x1)(x2 − x2 )

Page 173: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 173/279

Page 174: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 174/279

Terbukti bahwa fungsi polonomial

# (x) = (x − x1)(x − x2 )(x0 − x1)(x0 − x2)

y0 + (x − x0)(x − x2 )(x1 − x0)(x1 − x2)

y1 + (x − x0 )(x − x1)(x2 − x0 )(x2 − x1)

y2 (7.2)

melewati ketiga titik tadi.

Kalau kita bandingkan antara persamaan (7.1) dan persamaan (7.2), terlihat bahwa derajat

per- samaan (7.2) lebih tinggi dibandingkan dengan derajat persamaan (7.1). Hal ini terlihat

darix2pada persamaan (7.2) sementara pada persamaan (7.1) hanya adax. persamaan (7.2)

disebut funsipolinomial  berderajat 2, sedangkan persamaan (7.1) disebut fungsi polinomial

 berderajat

1.

7.2 Interpolasi Cubic Spline

Gambar 7.1: Fungsif  (x) dengan sejumlah titik data

Gambar 7.2: Pendekatan dengan polinomial cubic spline

Page 175: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 175/279

4.>  j

5.> j

Diketahui suatu fungsif  (x) (Figure 7.1) yang dibatasi oleh intervala danb, dan memiliki

sejumlah titik dataa = x0 < x1 < ... < xn = b. Interpolasi cubic spline(x) adalah sebuah

po-

tongan fungsi polinomial kecil-kecil (Figure 7.2) berderajat tiga(cubic ) yang

menghubungkan dua titik data yang bersebelahan dengan ketentuan sebagai berikut:

1.> j (x) adalah potongan fungsi yang berada pada sub-interval darix j hinggax j+1 untuk

nilai j = 0, 1, ..., n − 1;

2.>(x j ) = f  (x j ), artinya pada setiap titik data(x j ), nilaif  (x j ) bersesuaian dengan>(x j)

dimana j = 0, 1, ..., n;

3.> j+1 (x j+1) = > j (x j+1). Perhatikan titikx j+1 pada Figure 7.2. Ya.. tentu saja jika

fungsi itu kontinyu, maka titikx j+1 menjadi titik sambungan antara> j dan> j+1.

5 j+1(x j+1) = > (x j+1), artinya kontinyuitas menuntut turunan pertama dari> j dan

> j+1

pada titikx j+1 harus bersesuaian.

55 j+1(x j+1) = > 55 (x j+1), artinya kontinyuitas menuntut turunan kedua dari> j dan> j+1

pada titikx j+1 harus bersesuaian juga.

6. Salah satu syarat batas diantara 2 syarat batasx0 danxn berikut ini mesti terpenuhi:

• > 55 (x0) = > 55 (xn ) = 0ini disebut natural boundary

• > 5(x0 ) = f  5 (x0 )dan> 5(xn ) = f  5 (xn )ini disebut clamped boundary

Polinomial cubic spline (polinomial pangkat 3) untuk suatu fungsif berdasarkan

ketentuan di atas adalah

> j (x) = a j  + b j (x − x j ) + c j (x − x j )2

+ d j (x − x j )3 (7.3)

dimana j = 0, 1, ..., n − 1. Maka ketikax =

x j

> j (x j ) = a j  + b j (x j  − x j ) + c j (x j  − x j )2

+ d j (x j  − x j )3

> j (x j ) = a j  = f  (x j )

Itu artinya,a j  selalu jadi pasangan titik data darix j . Dengan pola ini maka pasangan titik

datax j+1  adalaha j+1, konsekuensinya>(x j+1 ) = a j+1. Berdasarkan ketentuan (3), yaitu

ketikax = x j+1 dimasukan ke persamaan (12.7)

a j+1  = > j+1(x j+1 ) = > j (x j+1 ) = a j  + b j (x j+1 − x j ) + c j (x j+1 − x j )2

+ d j (x j+1 −

x j )3

dimana j = 0, 1, ..., n − 2. Sekarang, kita nyatakanh j  = x j+1 − x j ,

sehingga

a j+1  = a j  + b j h j  + c j h2+ d j h

3(7.4)

 j j

Page 176: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 176/279

>5

Kemudian, turunan pertama dari persamaan (12.7) adalah

 j (x) = b j  + 2c j (x − x j ) + 3d j (x − x j )2

Page 177: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 177/279

Page 178: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 178/279

0 0 . . . . . . . . . 0

2(h0 + h1 ) h1 0 . . . . . . 0

h1 2(h1 + h2 ) h2 0 . . . 0

 j

h j j+1

h

.

A=0

sementara persamaan (7.5) menjadi

b j+1 = b j  + 2c j h j  + 3d j h2

= b j  + 2c j h j  + h j (c j+1 − c j )

= b j  + h j (c j  + c j+1) (7.9)

Sampai sini masih bisa diikuti, bukan? Selanjutnya, kita coba mendapatkanb j dari persamaan

(7.8)

dan untukb j$1

1b j  =

 j

1

(a j+1 − a j )

h j (2c + c ) (7.10)

3

h j$1b j$1 

= j$1

(a j 

− a j$1

) −

(2c j$1 

+ c j 

)(7.11)3

Langkah berikutnya adalah mensubtitusikan persamaan (7.10) dan persamaan (7.11) kedalam

persamaan (7.9),

3h j$1 c j$1 + 2(h j$1 + h j )c j  + h j c j+1  =

h3(a j+1 − a j ) −

h(a j  − a j$1) (7.12)

 j j$1

n$1 ndimana j = 1, 2, ..., n − 1. Dalam sistem persamaan ini, nilai9h j : j=0  dan nilai9a j :

 j=0 su-

dah diketahui, sementara nilai9c j n belum diketahui dan memang nilai inilah yang akan

dihitung dari persamaan ini.

Sekarang coba perhatikan ketentuan nomor (6), ketika> (x0 ) = > 55 (xn ) = 0, berapakah nilai

c0

dancn ? Nah, kita bisa evaluasi persamaan (7.6)

> 55 (x0 ) = 2c0 + 6d0 (x0 − x0 ) =

0

 jelas sekalic0 harus berharga nol. Demikian halnya dengancn harganya harus nol. Jadi untuk

natural boundary, nilaic0 = cn  = 0.

Persamaan (7.12) dapat dihitung dengan operasi matrikAx= bdimana

  1

  h0

 

. . . . . . . . . . . . . . . . . . . . .

 

. . . . . . . . . . . . hn$2 2(hn$2 + hn$1 ) hn$1 

 

0 . . . . . . . . . 0 0 1

 c0 

 c1

x=     

Page 179: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 179/279

  . 

 

cn

Page 180: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 180/279

h

.

 0

  3 3

b=

 

h1 (a2 − a1) − h0 (a1 − a0 )

  3

 hn$1

(an − an$1) − hn$2(an$1 − an$2)

0

Sekarang kita beralih ke clamped boundary dimana> (a) = f  5 (a) dan> 5 (b) = f  5 (b). Nah,

kita bisa evaluasi persamaan (7.10) dengan j = 0, dimanaf  5 (a) = > 5 (a) = > 5(x0 ) = b0 ,

sehingga

f  5 (a) =1

(ah0

− a ) − (2c + c )h0

1 03

0 1

konsekuensinya,3

2h0 c0 + h0 c1 =0

(a1 − a0 ) − 3f  5 (a) (7.13)

Sementara padaxn = bn dengan persamaan (7.9)

f  5 (b) = bn  = bn$1 + hn$1 (cn$1 + cn )

sedangkanbn$1  bisa didapat dari persamaan (7.11) dengan j = n − 1

1bn$1  =

h  (an − an$1) 

hn$1 (2c  j + c )

3n$1 n

n$1

 Jadi

f  5 (b)  =1

hn$1

1

(an − an$1hn$1) −

3(2c

hn$1

n$1 j + cn) + hn$1(cn$1 + cn )

= hn$1 (an − an$1 + 3 (cn$1  j + 2cn )

dan akhirnya kita peroleh

hn$1 cn$1 + 2hn$1 ,n = 3f  5 (b) 

3

hn$1(an − an$1) (7.14)

Persamaan (7.13) dan persamaan (7.14) ditambah persamaan (7.12 membentuk operasi matrik

Ax= bdimana

 2h0 h0 0 . . . . . . . . . 0

  h0 2(h0 + h1 ) h1 0 . . . . . . 0

A= 0 h1 2(h1 + h2 ) h2 0 . . . 0

 

. . . . . . . . . . . . . . . . . . . . .

Page 181: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 181/279

. . . . . . . . . . . . hn$2 2(hn$2 + hn$1 ) hn$1 

 0 . . . . . . . . . 0 hn$1 2hn$1 

Page 182: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 182/279

.

hn$1

.

Gambar 7.3: Profil suatuobject

c0 

c1 

x=     

  . 

 

cn

  3 5

 3

h0(a1 − a0) − 3f (a)

 3

b=

 

h1(a2 − a1) −

h0(a1 − a0 )

  3

 hn$1 (an − an$1) − hn$2(an$1 − an$2)

3f  5 (b) − 3 (an − an$1)

Page 183: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 183/279

Gambar 7.4: Sampling titikdata

Gambar 7.5: Hasil interpolasi cubic spline

Page 184: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 184/279

 j x j a j b j c j d j

0 0,9 1,3 5,4 0,00 -0,251 1,3 1,5 0,42 -0,30 0,952 1,9 1,85 1,09 1,41 -2,963 2,1 2,1 1,29 -0,37 -0,454 2,6 2,6 0,59 -1,04 0,455 3,0 2,7 -0,02 -0,50 0,176 3,9 2,4 -0,5 -0,03 0,087 4,4 2,15 -0,48 0,08 1,318 4,7 2,05 -0,07 1,27 -1,589 5,0 2,1 0,26 -0,16 0,0410 6,0 2,25 0,08 -0,03 0,00

11 7,0 2,3 0,01 -0,04 -0,0212 8,0 2,25 -0,14 -0,11 0,0213 9,2 1,95 -0,34 -0,05 -0,0114 10,5 1,4 -0,53 -0,1 -0,0215 11,3 0,9 -0,73 -0,15 1,2116 11,6 0,7 -0,49 0,94 -0,8417 12,0 0,6 -0,14 -0,06 0,0418 12,6 0,5 -0,18 0 -0,4519 13,0 0,4 -0,39 -0,54 0,6020 13,3 0,25

Gambar 7.6: Hasil interpolasi lagrange

Page 185: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 185/279

&t

  Bab 8

DiferensialNumerik

✍ Objektif :

⊲ Mengenalkan metode Euler 

⊲ Mengenalkan metode 6unge utta orde (

⊲ Mengenalkan metode Finite Difference

⊲ Mengenalkan 7ersamaan /iferensial 7arsial Eliptik

⊲ Mengenalkan 7ersamaan /iferensial 7arsial 8iperbolik

⊲ Mengenalkan 7ersamaan /iferensial 7arsial 7arabolik

8.1 Metode Euler

Suatu persamaan diferensial( &-) dinyatakan dalam fungsif  (t, y), dimanay(t) adalah per-

samaan asalnyady

dt= f  (t, y), a 7 t 7 b, y(a) = ? (8.1)

Nilait dibatasi daria hingga keb. Sementara, syarat awal telah diketahui yaitu pada saat

t = a makay bernilai?. Akan tetapi kita sama sekali tidak tahu bentuk formulasi persamaan

asalnyay(t). Gambar 8.1memperlihatkankurva persamaan asal

y(t)yang tidak diketahui ben- tuk formulasinya. Tantangannya adalah bagaimana kita bisa mendapatkan solusi

persamaan diferensial untuksetiap nilai y(t)yangt-nya terletak diantaraa danb?

Tahap awal solusi pendekatan numerik adalah dengan menentukan point-point dalam

 jarak yang sama di dalam interval [a,b]. Jarak antar point dirumuskan sebagai

b − ah =

*(8.2)

dengan* adalah bilanganintegerpositif. Nilaih ini juga dikenal dengan namastepsize.

Selanjutnya nilait diantaraa danbditentukan berdasarkan

ti = a + ih, i = 0, 1, 2, ..., * (8.3)

139

Page 186: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 186/279

140 BAB 8. DIFERENSIAL NUMERIK

 y

9

9(t3!:9(b!

9(t"!

9(t&!

h

9;:f(t,9!

9(a!:!

-(t)

-

-=(t,-)

-(!)=!

h

-(t)

-(!)=(!,!)

t0=a t1 t2 ..... t3=b t t0=a t

1t

2..... t =b t

Gambar 8.1:Kiri: Kurvay(t) dengan pasangan titik absis dan ordinat dimana jarak titik absis sebe-sarh. Pasangant1 adalahy(t1 ), pasangant2 adalahy(t2 ), begitu seterusnya.Kanan:Garissinggungyang menyinggung kurvay(t) pada t=a, kemudian berdasarkan garis singgung tersebut,ditentukan pasangant1 sebagaiw1. Perhatikan gambar itu sekali lagi!w1 dany(t1 ) beda tipisalias tidak sama persis.

Metode Euler diturunkan dari deret Taylor. Misalnya, fungsiy(t) adalah fungsi yang kon-

tinyu dan memiliki turunan dalam interval [a,b]. Dalam deret Taylor, fungsiy(t) tersebut

diru- muskan sebagai

y(ti+1 ) = y(ti ) + (ti+1 − ti)y5 (ti )

+

dengan memasukkanh = (ti+1 − ti),maka

(ti+1 − ti )2

2y55 

(@i ) (8.4)

y(ti+1 ) = y(ti ) + hy5 (ti )

+

h2

y55 (@i ) (8.5)

2

dan, karenay(t) memenuhi persamaan diferensial (8.1), dimanay5 (ti) tak lain adalah

fungsi turunanf  (ti , y(ti )), maka

y(ti+1 ) = y(ti ) + hf  (ti , y(ti ))

+

h255

2(@i ) (8.6)

Metode Euler dibangun dengan pendekatan bahwa suku terakhir dari persamaan (8.6),yang memuatturunan kedua, dapat diabaikan.Disampingitu, padaumumnya,notasi

penulisan bagiy(ti )diganti denganwi. Sehingga metode Euler diformulasikan sebagai

wi+1  = wi + hf  (ti , wi) dengan syarat awal w0 = ? (8.7)

dimanai = 0, 1, 2, .., * − 1.

Contoh

Diketahui persamaan diferensial

y5 = y − t2

+ 1 batas interval: 0 7 t 7 2 syarat awal: y(0) = 0, 5 (8.8)

dimana* = 10. Disini terlihat bahwa batas awal interval,a = 0; dan batas akhirb = 2.

Page 187: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 187/279

i

Dalam penerapan metode euler, pertama kali yang harus dilakukan adalah menghitung

step-size(h), caranya

h = b − a*

= 2 − 010

= 0, 2

kemudian dilanjutkan dengan menentukan posisi titik-titikti berdasarkan rumus

ti = a + ih = 0 + i(0, 2) sehingga ti = 0, 2i

serta menetapkan nilaiw0 yang diambil dari syarat awaly(0) = 0, 5

w0 = 0, 5

Dengan demikian persamaan euler dapat dinyatakan sebagai

wi+1 = wi + h(wi − t2+ 1)

= wi + 0, 2(wi − 0, 04i2 + 1)

= 1, 2wi − 0, 008i2 + 0,2

dimanai = 0, 1, 2, ..., * − 1. Karena* = 10, makai = 0, 1, 2, ..., 9.

Pada saati = 0dan dari syarat awal diketahuiw0 = 0, 5, kita bisa menghitungw1

w1 = 1, 2w0 − 0, 008(0)2

+ 0, 2 = 0,8000000

Pada saati = 1

Pada saati = 2

w2 = 1, 2w1 − 0, 008(1)2+ 0, 2 = 1, 1520000

w3 = 1, 2w2 − 0, 008(2)2+ 0, 2 = 1, 5504000

Demikian seterusnya, hingga mencapaii = 9

w10 = 1, 2w9 − 0, 008(9)2

+ 0, 2 = 4, 8657845

Berikut ini adalahscriptmatlab untuk menghitungw1 ,w2 , sampaiw10

1 clear all

2 clc

3

4 rma ln0

5

6 =2; %aas a!ir ineral

7 a=; %aas aal ineral

8 @=1; % ilan0an iner0er $sii

9 =(#a):@; % nilai se$#sie10 =F5; % nilai aal

11 =; % nilai aal

12

13 % $er'aan ses'ai se$#sie a+ala-

14 1=a*1/;

Page 188: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 188/279

15 2=a*2/;

16 3=a*3/;

17 4=a*4/;

18 5=a*5/;

19 6=a*6/;

20 7=a*7/;

21 8=a*8/;

22 9=a*9/;

23 1=a*1/;

24

25 % sl'sina-

26 1=*/(#G2*1)

27 2=1*/(1#1G2*1)

28 3=2*/(2#2G2*1)

29 4=3*/(3#3G2*1)

30 5=4*/(4#4G2*1)31 6=5*/(5#5G2*1)

32 7=6*/(6#6G2*1)

33 8=7*/(7#7G2*1)

34 9=8*/(8#8G2*1)

35 1=9*/(9#9G2*1)

Atau bisa dipersingkat sebagai berikut

1 clear all

2 clc

3

4 rma ln0

5

6 =2; %aas a!ir ineral

7 a=; %aas aal ineral

8 @=1; % ilan0an iner0er $sii

9 =(#a):@; % nilai se$#sie

10 =F5; % nilai aal

11 =; % nilai aal

12

13 % $er'aan ses'ai se$#sie a+ala-

14 r i=1-@

15 (i)=a*(i/);

16 en+

17

18 % sl'sina-

19 (1)=*/(#G2*1);

20 r i=2-@

21 !=i#1;

22 (i)=(!)*/((!)#(!)G2*1);

23 en+

24

Disisi lain, solusi exact persamaan diferensial (8.8) adalah

y(t) = (t + 1)2 − 0, 5et (8.9)

Scriptmatlab untuk mendapatkan solusi exact ini adalah:

1 clear all

2 clc

Page 189: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 189/279

3

4 rma ln0

5

6 =2; %aas a!ir ineral

7 a=; %aas aal ineral

8 @=1; % ilan0an iner0er $sii

9 =(#a):@; % nilai se$#sie

10

11 % $er'aan ses'ai se$#sie a+ala-

12 r i=1-@

13 (i)=a*(i/);

14 en+

15

16 % sl'si eac-

17 r i=1-@

18 (i)=((i)*1)G2#F5/e$((i));

19 en+

20

Tabel 8.1: Solusi yangditawarkanoleh metode eulerwi dan solusi exacty(ti )serta selisihantara keduanya

i ti wi yi  = y(ti ) |wi − yi |

0 0,0 0,5000000 0,5000000 0,00000001 0,2 0,8000000 0,8292986 0,02929862 0,4 1,1520000 1,2140877 0,0620877

3 0,6 1,5504000 1,6489406 0,09854064 0,8 1,9884800 2,1272295 0,13874955 1,0 2,4581760 2,6408591 0,18268316 1,2 2,9498112 3,1799415 0,23013037 1,4 3,4517734 3,7324000 0,28062668 1,6 3,9501281 4,2834838 0,33335579 1,8 4,4281538 4,8151763 0,387022510 2,0 4,8657845 5,3054720 0,4396874

Coba anda perhatikan sejenak bagian kolom selisih|wi − yi |.Terlihat angkanya tumbuh se-

makin besar seiring dengan bertambahnyati . Artinya, ketikati membesar, akurasi metodeeuler justru berkurang. Untuk lebih jelasnya, mari kita plot hasil-hasil ini dalam suatu gambar.

Gambar (8.2) memperlihatkan sebaran titik-titik merah yang merupakan hasil

perhitungan metode euler(wi). Sementara solusi exacty(ti  ) diwakili oleh titik-titik biru.

Tampak jelas bah- wa titik-titik biru dan titik-titik merah –pada nilait yang sama– tidak ada

yang berhimpit alias ada jarak yang memisahkan mereka. Bahkan semakin ke kanan, jarak

itu semakin melebar. Adanya jarak, tak lain menunjukkan keberadaanerror(kesalahan).

Hasil perhitungan metode euler yang diwakili oleh titik-titik merah ternyata menghadirkan

tingkat kesalahan yang se- makin membesar ketika menuju ke-* atau ketikati bertambah.

Untuk mengatasi hal ini, salah satupemecahannyaadalah denganmenerapkanmetodeRunge-Kuttaorde-4. Namun sebelum masuk ke pembahasan tersebut, ada baiknya kita

memodifikasiscriptmatlab yang terakhir ta- di.

Saya kira tidak ada salahnya untuk mengantisipasi kesalahan pengetikan fungsi turunan

Page 190: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 190/279

  9   (   t   !

#.#

#

(.#

(

'.#

'

".#

"

&.#

&

$.#$." $.( $.) $.+ & &." &.( &.) &.+   "

t

Gambar 8.2:Kurva biru adalah solusi exact, dimana lingkaran-lingkaran kecil warna biru pada kurvamenunjukkan posisi pasangan absist dan ordinaty(t) yang dihitung oleh Persamaan (8.9). Sedangkantitik-titik merah mengacu pada hasil perhitungan metode euler, yaitu nilaiwi .

yang terdapat dalamscriptsebelumnya yaitu,

(1)=*/(#G2*1);

dan

(i)=(!)*/((!)#(!)G2*1);

Ketika fungsi turunan memiliki formulasi yang berbeda dengan contoh di atas, bisa jadi

kita akan lupa untuk mengetikkan formulasi yang baru di kedua baris tersebut. Oleh karena

itu,lebih  baik fungsi turunan tersebut dipindahkan kedalam satu file terpisah. Di lingkungan

matlab, file tersebut disebut file function. Jadi, isi file functionuntuk contoh yang sedang kita bahas ini adalah

'ncin = ''r(,)

= # G2 * 1;

File functionini mesti di-savedengan nama file yang sama persis dengan nama fungsinya,

dalam contoh ini nama file functiontersebut harus bernama futur.m. Kemudian file ini harus

disimpandalam folder yang sama dimana disana juga terdapat file untuk memproses metode

euler.

Setelah itu, script metode euler dimodifikasi menjadi seperti ini

1 clear all

2 clc

3

Page 191: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 191/279

8.2. METODE RUNGE KUTTA 145

4 rma ln0

5

6 =2; %aas a!ir ineral

7 a=; %aas aal ineral

8 @=1; % ilan0an iner0er $sii

9 =(#a):@; % nilai se$#sie

10 =F5; % nilai aal

11 =; % nilai aal

12

13 % $er'aan ses'ai se$#sie a+ala-

14 r i=1-@

15 (i)=a*(i/);

16 en+

17

18 % sl'sina-

19 (1)=*/''r(,);

20 r i=2-@

21 !=i#1;

22 (i)=(!)*/''r((!),(!));

23 en+

24

Mulai dari baris ke-13 sampai dengan baris ke-24, tidak perlu diubah-ubah lagi. Artinya, jika

ada perubahan formulasi fungsi turunan, maka itu cukup dilakukan pada file futur.msaja.

Ok. Sekarang mari kita membahas metode Runge Kutta.

8.2 Metode Runge Kutta

Pada saat membahas metode Euler untuk penyelesaian persamaan diferensial, kita telah sam- pai

pada kesimpulan bahwa truncation error metode Euler terus membesar seiring dengan

 bertambahnya iterasi(ti). Dikaitkan denganhal tersebut,metode Runge-KuttaOrde-4

menawarkan penyelesaian persamaan diferensial dengan pertumbuhan truncation error yang

 jauh lebih ke-

cil. Persamaan-persamaan yang menyusun metode Runge-Kutta Orde-4 adalah

w0 = ?

k1 = hf  (ti , wi ) (8.10)

h 1k2 = hf  (ti +2 

, wi +2 

k1 ) (8.11)

h 1k3 = hf  (ti +

2 , wi +

2 k2 ) (8.12)

k4 = hf  (ti+1 , wi + k3 ) (8.13)

1wi+1 = wi +

6(k1 + 2k2 + 2k3 + k4) (8.14)

dimana fungsif  (t, w)adalah fungsi turunan.

Contoh

Saya ambilkan contoh yang sama seperti contoh yang sudah kita bahas pada metode Euler.

Diketahui persamaan diferensial

y5 = y − t2

+ 1, 0 7 t 7 2, y(0) = 0, 5

Page 192: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 192/279

0

−   0

−   0

1

146 BAB 8. DIFERENSIAL NUMERIK

 Jika* = 10, makastep-size bisa dihitung terlebih dahulu

h =

b − a

* =2 − 0

10 = 0, 2

dan

serta

ti = a + ih = 0 + i(0, 2) % ti = 0, 2i

w0 = 0, 5

Sekarang mari kita terapkan metode Runge-Kutta Orde-4 ini. Untuk menghitungw1, tahap-

tahap perhitungannya dimulai dari menghitungk1

k1 = hf  (t0 ,w0)

= h(w0 − t2+ 1)

= 0, 2((0, 5) − (0, 0)2+

1)

= 0, 3

lalu menghitungk2

hk2 = hf  (t0 +

2 , w0

+

k1

k1)

2h  2

= h"(w0 + ) (t + )2 2

0, 3

+ 1)#

0, 2= 0, 2"(0, 5 +

= 0, 3282

) − (0, 0 + )2+ 1)#

2

dilanjutkan dengank3

hk

3= hf  (t

0+

2 , w

0+

k2

k2

)2 h 2

= h"(w0 + ) (t + )2 2

0, 328

+ 1)#

0, 2= 0, 2"(0, 5 +

= 0, 33082

) − (0, 0 + )2+ 1)#

2

kemudiank4

k4 = hf  (t1 , w0 + k3 )

= h"(w0 + k3 ) − t2+

1#

= 0, 2"(0, 5 + 0, 3308) − (0, 2)2+ 1#

= 0, 35816

Page 193: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 193/279

akhirnya diperolehw1

1w1 = w0 + 6 (k1 + 2k2 + 2k3 + k4 )

1= 0, 5 +

= 0, 5 +

(0, 3 + 2(0, 328) + 2(0, 3308) + 0, 35816)61

(0, 3 + 0, 656 + 0, 6616 + 0, 35816)6

= 0, 8292933

Dengan cara yang sama,w2 , w3, w4 dan seterusnya dapat dihitung dengan program

komputer. Script matlab-nya sebagai berikut1:

1 clear all

2 clc

3

4 rma ln0

5

6 =2; %aas a!ir ineral

7 a=; %aas aal ineral

8 @=1; % ilan0an iner0er $sii

9 =(#a):@; % nilai se$#sie

10 =F5; % nilai aal

11 =; % nilai aal

12

13 % $er'aan ses'ai se$#sie a+ala-

14 r i=1-@

15 (i)=a*(i/);

16 en+

17

18 % sl'sina-

19 !1=/''r(,);

20 !2=/''r(*:2,*!1:2);

21 !3=/''r(*:2,*!2:2);

22 !4=/''r((1),*!3);

23 (1)=*1:6/(!1*2/!2*2/!3*!4);

24

25 r i=2-@

26 !=i#1;

27 !1=/''r((!),(!));

28 !2=/''r((!)*:2,(!)*!1:2);

29 !3=/''r((!)*:2,(!)*!2:2);

30 !4=/''r((i),(!)*!3);

31 (i)=(!)*1:6/(!1*2/!2*2/!3*!4);

32 en+

33

Dibandingkan dengan metode Euler, tingkat pertumbuhan truncation error, pada kolom |wi −

yi |(lihat Tabel 8.2), jauh lebih rendah sehingga metode Runge-Kutta Orde Empat lebih

disukai

untuk membantu menyelesaikan persamaan-diferensial-biasa.

Contoh tadi tampaknya dapat memberikan gambaran yang jelas bahwa metode Runge-

Kutta Orde Empat dapat menyelesaikan persamaan diferensial biasa dengan tingkat akurasi

1 Jangan lupa, file futur.mmesti berada dalam satu folder dengan file Runge Kutta nya!

Page 194: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 194/279

  9   (   t   !

Tabel 8.2: Solusi yang ditawarkan oleh metode Runge Kutta orde 4(wi) dan solusi exacty(ti )serta selisih antara keduanya

i ti wi yi  = y(ti ) |wi − yi |

0 0,0 0,5000000 0,5000000 0,00000001 0,2 0,8292933 0,8292986 0,00000532 0,4 1,2140762 1,2140877 0,00001143 0,6 1,6489220 1,6489406 0,00001864 0,8 2,1272027 2,1272295 0,00002695 1,0 2,6408227 2,6408591 0,00003646 1,2 3,1798942 3,1799415 0,00004747 1,4 3,7323401 3,7324000 0,00005998 1,6 4,2834095 4,2834838 0,0000743

9 1,8 4,8150857 4,8151763 0,000090610 2,0 5,3053630 5,3054720 0,0001089

#.#

#

(.#

(

'.#

'

".#

"

&.#

&

$.#$." $.( $.) $.+ & &." &.( &.) &.+   "

t

Gambar 8.3:Kurva biru adalah solusi exact, dimana lingkaran-lingkaran kecil warna biru pada kurvamenunjukkan posisi pasangan absist dan ordinaty(t) yang dihitung oleh Persamaan (8.9). Sedangkantitik-titik merah mengacu pada hasil perhitungan metode Runge Kutta orde 4, yaitu nilaiwi .

yang lebih tinggi. Namun, kalau anda jeli, ada suatu pertanyaan cukup serius yaitu apakah

metode ini dapat digunakan bila pada persamaan diferensialnya tidak ada variabelt ? Misal-

nya pada kasus pengisian muatan pada kapasitor berikut ini.

8.2.1 Aplikasi: Pengisian muatan pada kapasitor

Sebuah kapasitor yang tidak bermuatan dihubungkan secara seri dengan sebuah resistor dan

 baterry (Gambar 8.4). Diketahui< = 12 volt, = 5,00F danB = 8,00C105  . Saat

saklar

Page 195: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 195/279

Page 196: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 196/279

150 BAB 8. DIFERENSIAL NUMERIK

= 0, 150 C 10$5

Page 197: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 197/279

2

2

C

lalu menghitungk2

k2 = hf  (q0 +k

1 )2

k1= h"(m1 − (q0 + )m2 )#

2$5

= 0, 1"(1, 5 C 10$5 − ((0, 0) +0, 15 C

10

)(0, 25)#

= 0, 14813 C 10$5

dilanjutkan dengank3

k3 = hf  (q0 + k2)

2k2

= h"(m1 − (q0 + )m2 )#2

$5

= 0, 1"(1, 5 C 10$5 − ((0, 0) +0, 14813 C

10

)(0, 25)#

= 0, 14815 C 10$5

kemudiank4

k4 = hf  (q0 + k3 )

= h"(m1 − (q0 + k3 )m2 )#

= 0, 1"(1, 5 C 10$5 − ((0, 0) + 0, 14815 C 10$5)(0, 25)#

= 0, 14630 C 10$5

akhirnya diperolehq1

1q1 = q0 +

6(k1 + 2k2 + 2k3 + k4 )

1= 0, 0 + (0, 150 + 2(0, 14813) + 2(0, 14815) + 0, 14630) 10$5

6

= 0, 14814 C 10$5

Selanjutnyaq2 dihitung. Tentu saja pada saatt2 , dimanat2 = 0, 2, namun sekali lagi,t2

tidak terlibat dalam perhitungan ini. Dimulai menghitungk1 kembali

k1 = hf  (q1 )

= h(m1 − q1m2 )

= 0, 1((1, 5 C 10$5 ) − (0, 14814 C 10$5)(0, 25))

= 0, 14630 C 10$5

Page 198: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 198/279

8.2. METODE RUNGE KUTTA 151

2

2

6

lalu menghitungk2

k2 = hf  (q1 +k1

)2k1

= h"(m1 − (q1 + )m2 )#2

$5

= 0, 1"(1, 5 C 10$5 − ((0, 14814 C 10$5 ) +0, 14630 C

10

)(0, 25)#

= 0, 14447 C 10$5

dilanjutkan dengank3

k3 = hf  (q1 + k2)

2k2

= h"(m1 − (q1 + )m2 )#2

$5

= 0, 1"(1, 5 C 10$5 − ((0, 14814 C 10$5 ) +0, 14447 C

10

)(0, 25)#

= 0, 14449 C 10$5

kemudiank4

k4 = hf  (q1 + k3 )

= h"(m1 − (q1 + k3 )m2 )#

= 0, 1"(1, 5 C 10$5 − ((0, 14814 C 10$5 ) + 0, 14449 C 10$5 )(0, 25)#

= 0, 14268 C 10$5

akhirnya diperolehq2

1q2 = q1 +

6(k1 + 2k2 + 2k3 + k4 )

= 0, 14814 C 10$5 +1

(0, 14630 + 2(0, 14447) + 2(0, 14449) + 0, 14268) C 10$5

= 0, 29262 C 10$5

Dengan cara yang sama,q3 , q4 , q5 dan seterusnya dapat dihitung. Berikut ini adalah script

dalam matlab yang dipakai untuk menghitungq

1 clear all

2 clc

3

4 rma ln0

5

6 =1; % aas a!ir ineral

7 a=; % aas aal ineral

8 =F1; % ineral a!'

9 @=(#a):; % nilai se$#sie

10 Q=F; % m'aan m'la#m'la

11 =F; % a!' aal

12

Page 199: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 199/279

13 % $er'aan ses'ai se$#sie a+ala-

14 r i=1-@

15 (i)=a*(i/);

16 en+

17

18 % sl'sina-

19 !1=/''r(Q);

20 !2=/''r(Q*!1:2);

21 !3=/''r(Q*!2:2);

22 !4=/''r(Q*!3);

23 Q(1)=Q*1:6/(!1*2/!2*2/!3*!4);

24

25 r i=2-@

26 !=i#1;

27 !1=/''r(Q(!));

28 !2=/''r(Q(!)*!1:2);

29 !3=/''r(Q(!)*!2:2);

30 !4=/''r(Q(!)*!3);

31 Q(i)=Q(!)*1:6/(!1*2/!2*2/!3*!4);

32 en+

33 Q

Adapunscriptfungsi turunannya ( futur.m) adalah sebagai berikut:

1 'ncin =''r(Q)

2 .=12; % e0an0an (l)

3 =8; % amaan (m)

4 "=5e#6; % !a$asiansi (ara+)

5 m1=.:;

6 m2=1:(/");

7 =m1#(m2/Q);

Tabel 8.3:Perbandinganantara hasil perhitungan numerik lewat metode Runge Kutta danhasil perhitungan dari solusi exact, yaitu persamaan (8.16)

i ti qi q:!;t  = q(ti ) |qi − q:!;t |

0 0,0 0,00000C10$5 0,00000C10$5 0,000001 0,1 0,14814C10$5 0,14814C10$5 0,00000

2 0,2 0,29262C10$5 0,29262C10$5 0,000003 0,3 0,43354C10$5 0,43354C10$5 0,000004 0,4 0,57098C10$5 0,57098C10$5 0,00000

5 0,5 0,70502C10$5 0,70502C10$5 0,000006 0,6 0,83575C10$5 0,83575C10$5 0,000007 0,7 0,96326C10$5 0,96326C10$5 0,000008 0,8 1,0876C10$5 1,0876C10$5 0,000009 0,9 1,2089C10$5 1,2089C10$5 0,0000010 1,0 1,3272C10$5 1,3272C10$5 0,00000

Luar biasa!! Tak ada error sama sekali. Mungkin, kalau kita buat 7 angka dibelakangkoma,

error nya akan terlihat. Tapi kalau anda cukup puas dengan 5 angka dibelakang koma, hasil

inisangat memuaskan. Gambar 8.5 memperlihatkan kurva penumpukan muatanq terhadap

waktut – dengan batas atas interval waktu dinaikkan hingga 20 –.

Page 200: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 200/279

Page 201: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 201/279

Gambar 8.6: Kurva suatu fungsif  (x) yang dibagi sama besar berjarakh. Evaluasi kurva yangdilakukanFinite-Differencedimulai dari batas bawahX0 = a hingga batas atasx6 = b

Dengan demikian maka titik-titikx yang merupakan sub-interval antaraa danb dapat diny-

atakan sebagai

xi  = a + ih, i = 0, 1, ..., * + 1 (8.20)

Pencarian solusi persamaan diferensial melalui pendekatan numerik dilakukan dengan me-

manfaatkanpolinomialTaylor untukmengevaluasiy dany5  padaxi+1  danxi$1  seperti

 berikut ini

dan

y(xi+1 ) = y(xi + h) = y(xi ) + hy5 (xi )

+

y(xi$1 ) = y(xi − h) = y(xi ) − hy

(xi )+

h2

y55 (xi ) (8.21)

2

h2

y55 (xi ) (8.22)

2

 Jika kedua persamaan ini dijumlahkan

y(xi+1 ) + y(xi$1 ) = 2y(xi ) + h2 y55 (xi )

Dari siniy dapat ditentukan

h2 y55 (xi ) = y(xi+1 ) − 2y(xi ) +

y(xi$1 )

y55 (x ) =y(xi+1 ) − 2y(xi ) + y(xi$1

)i

h2

Dengan cara yang sama,y5 (xi )dapat dicari sebagai berikut

y5 (x ) =y

i

2h

Page 202: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 202/279

Page 203: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 203/279

0 . . . . . . . . .   0h p(2 )   0 . . . . . .   0

h2 >(3 )h 0 . . .   0

2hi i i

2

2

Selanjutnya persamaan (8.23) dan (8.24) disubstitusikan ke persamaan (8.18) maka

y(xi+1 ) − 2y(xi ) + y(xi$1 )h2 = p(xi)

−y(xi+1 ) + 2y(xi ) − y(xi$1 )

h2= −p(xi)

y(xi+1 ) −

y(xi$1 ) + q(x )y(x ) + 1(x )

2hi i i

y(xi+1 ) − y(xi$1 )

2h− q(xi )y(xi ) − 1(xi )

−y(xi+1 ) + 2y(xi ) − y(xi$1 )

h2+ p(xi )

y(xi+1 ) − y(xi$1 )+ q(x )y(x ) = −1(x )

Sebelum dilanjut, saya nyatakan bahway(xi+1 )=wi+1 dany(xi )=wi sertay(xi$1 )=wi$1. Maka

persamaan di atas dapat ditulis sebagai berikut

 

−wi+1 + 2wi − wi$1 + p(x )

wi+1 − wi$1 + q(x )

w

= −1(x )

h2 i

h

2hi i i

2 2(−wi+1 + 2wi − wi$1) +2 

p(xi ) (wi+1 − wi$1 ) + h q(xi )wi = −h 1(xi)

h h 2 2−wi+1 + 2wi − wi$1 +2 

p(xi )wi+1 −2 

p(xi )wi$1 + h q(xi )wi = −h 1(xi)

h2

h2−wi$1 − 2 p(xi)wi$1 + 2wi + h q(xi )wi − wi+1 + 2 p(xi )wi+1  = −h 1(xi)

h 2 h 2− 1 + p(xi ) wi$1 + 2 + h q(xi ) 

wi 

(1 −2 

p(xi ) wi+1  = −h 1(xi) (8.25)

dimanai=1,2,3...sampai N, karena yang ingin kita cari adalahw1 ,w2 ,w3,...,w . Sementara,

satu hal yang tak boleh dilupakan yaituw0 danw  +1 biasanya selalusudah diketahui. Pada

persamaan (8.17), jelas-jelas sudah diketahui bahwaw0=? danw  +1=D; keduanya dikenal se-

 bagaisyarat batasatau istilah asingnya adalahboundary value. Topik yang sedang bahas ini

 juga sering disebut sebagaiMasalah Syarat BatasatauBoundary Value Problem.

Sampai disini kita mendapatkan sistem persamaan linear yang selanjutnya dapat dinyatakan

sebagai bentuk operasi matrik

Aw= b (8.26)

dimanaAadalah matrik tridiagonal dengan orde* C *

  2 + h2 >(1 ) $1 + h p(1 )

$1 $h p(2 ) 2 + h2 >(2 ) $1 + 2

h2

0 $1 $

2 p(3 ) 2 + $1 +

2 p(3 )

A=   0 0 $1 $h p(4 ) 2 + h2 >(4 ) $1 +

h p(4 ) 0 0

2 2

. . . . . . . . . . . . . . . . . . . . .

 

. . . . . . . . . . . . $1 $ h p(  $1 ) 2 + h2 >(  $1 ) $1 + h  p(  $1)

2 2

Page 204: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 204/279

20 . . . . . . . . . . . . $1 $

h p(  ) 2 + h2 >(  )

Page 205: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 205/279

 

 

2

−h  1(x  ) + 1 − p(x  ) 

  

.

2

w1

w2

w3

w=

w4

 .

 

 

    

b= 

    

−h2 1(x1) + 1 +h p(x1 )

 w0

−h2 

1(x2 )

−h2 1(x3 )

−h2 1(x4 )

w  $1

−h2 1(x  $1)

 

8.3.1 Script Finite-Difference

1 clear all

2 clc

3

4 a=1F; %0ani an0!ana ses'ai +aa an0 an+a mili!i

5 =2F; %0ani an0!ana ses'ai +aa an0 an+a mili!i

6 n=9; %0ani an0!ana ses'ai +aa an0 an+a mili!i

7 =(#a):(n*1);

8 al$a=1; %0ani an0!ana ses'ai +aa an0 an+a mili!i

9 ea=2; %0ani an0!ana ses'ai +aa an0 an+a mili!i

10

11 %====== >encari .lemen >ari! A ========

12 r i=1-n

13 =a*i/;

14 A(i,i)=2*G2/'n0siP();

15 en+

16 r i=1-n#1

17 =a*i/;

18 A(i,i*1)=#1*((:2)/'n0si<());

19 en+20 r i=2-n

21 =a*i/;

22 A(i,i#1)=#1#((:2)/'n0si<());

23 en+

24 A

25 %====== >encari .lemen e!r ========

26 =a*;

27 (1,1)=#G2/'n0si()*(1*((:2)/'n0si<()))/al$a;

28 r i=2-8

29 =a*i/;30 (i,1)=#G2/'n0si();

31 en+

32 n=a*n/

33 (n,1)=#G2/'n0si(n)*(1#((:2)/'n0si<(n)))/ea;

34

Page 206: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 206/279

8.3. METODEFINITE DIFFERENCE 157

x

x

Pada akhirnya, elemen-elemen matrikAdan vektorbsudah diketahui. Sehingga vektorw

dapat dihitung dengan berbagai metode pemecahan sistem persamaan linear, seperti

EliminasiGauss, Gauss-Jourdan, Iterasi Jacobi dan Iterasi Gauss-Seidel.

Contoh

Diketahui persamaan diferensial seperti berikut ini

y= − 

2 y5 

+2

y +?in(n

x)

x x2x2

, 1 7 x 7 2, y(1) = 1, y(2) = 2

memiliki solusi exactc2 3 1

dimana

dan

y = c1x +x2

−10

?in(n x) −10

;*?(n x),

1c2 =

70"8 − 12 ?in(n 2) − 4 ;*?(n 2)# E −0,

03920701320

11c1 =

10− c2 E 1,

1392070132.

Dengan metode Finite-Difference, solusi pendekatan dapat diperoleh dengan membagi inter-

val1 7 x 7 2menjadi sub-interval, misalnya kita gunakan* = 9, sehingga spasih diperoleh

h =b − a

=* + 1

2 − 1

9 + 1= 0, 1

Dari persamaan diferensial tersebut juga didapat

2p(xi ) = − 

xi

2

q(xi ) = 2i

1(xi) =?in(n xi)

2i

Script matlab telah dibuat untukmenyelesaikancontoh soal ini. Untukmemecahkanpersoalan

ini, saya membuat 4 buah script, terdiri dari script utama, script fungsiP, script fungsiQ dan

script fungsiR. Berikut ini adalah script fungsiP yang disimpan dengan nama file fungsiP.m:

1 'ncin = 'n0si<()

2 = #2:;

lalu inilah script fungsiQ yang disimpan dengan nama file fungsiQ.m:

1 'ncin = 'n0siP()

2 = 2:G2;

Page 207: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 207/279

158 BAB 8. DIFERENSIAL NUMERIK

kemudian ini script fungsiR yang disimpan dengan nama file fungsiR.m::

Page 208: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 208/279

1 'ncin = 'n0si()

2

= sin(l0()):G2;

dan terakhir, inilah script utamanya:

1 clear all

2 clc

3

4 a=1F;

5 =2F;

6

7 al$a=1;8 ea=2;

9

10 %=======&i!a +i!ea'i n, ma!a +ii'n0 ====

11 n=9;

12 =(#a):(n*1);

13

14 %=======&i!a +i!ea'i , ma!a n +ii'n0 ====

15 %=F1;

16 %n=((#a):)#1;

17

18 %====== >encari .lemen >ari! A ========

19 r i=1-n

20 =a*i/;

21 A(i,i)=2*G2/'n0siP();

22 en+

23 r i=1-n#1

24 =a*i/;

25 A(i,i*1)=#1*((:2)/'n0si<());

26 en+

27 r i=2-n

28 =a*i/;

29 A(i,i#1)=#1#((:2)/'n0si<());

30 en+

31 A

32 %====== >encari .lemen e!r ========

33 =a*;

34 (1,1)=#G2/'n0si()*(1*((:2)/'n0si<()))/al$a;

35 r i=2-8

36 =a*i/;

37 (i,1)=#G2/'n0si();

38 en+

39 n=a*n/

40 (n,1)=#G2/'n0si(n)*(1#((:2)/'n0si<(n)))/ea;

41

Page 209: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 209/279

42 %====== >en00a'n0!an e!r !e+alam mari! A ========

43 r i=1-n

44 A(i,n*1)=(i,1);45 en+

46 A

47

48 % <rses .liminasi a'ss

49 %#########<rses Trian0'larisasi###########

50 r &=1-(n#1)

51

52 %####m'lai $rses $i###

53 i (A(&,&)==)

54 r $=1-n*155 '=A(&,$);

56 =A(&*1,$);

57 A(&*1,$)=';

58 A(&,$)=;

59 en+

60 en+

61 %####a!ir $rses $i###

62 &&=&*1;

63 r i=&&-n

64 m=A(i,&):A(&,&);

65 r !=1-(n*1)

66 A(i,!)=A(i,!)#(m/A(&,!));

67 en+

68 en+

69 en+

70 %###########################################

71

72 %######<rses 'si'si m'n+'r#############

73 (n,1)=A(n,n*1):A(n,n);

74

75 r i=n#1-#1-1

76 =;

77 r &=n-#1-i*1

78 =*A(i,&)/(&,1);

79 en+

80 (i,1)=(A(i,n*1)#):A(i,i);

81 en+

82 %

83

84 %===== >enam$il!an e!r =================

85 =

Tabel berikutinimemperlihatkanhasil perhitungandengan pendekatan metodeFinite-

Difference

wi dan hasil perhitungan dari solusi exacty(xi ), dilengkapi dengan selisih antara keduanya

Page 210: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 210/279

160 BAB 8. DIFERENSIAL NUMERIK

|wi − y(xi )|. Tabel ini memperlihatkan tingkat kesalahan (error) berada pada orde10$5 . Un-

xi wi y(xi ) |wi − y(xi )|

1,0 1,00000000 1,000000001,1 1,09260052 1,09262930 2,88C 10$5

1,2 1,18704313 1,18708484 4,17C 10$5

1,3 1,28333687 1,28338236 4,55C 10$5

1,4 1,38140205 1,38144595 4,39C 10$5

1,5 1,48112026 1,48115942 3,92C 10$5

1,6 1,58235990 1,58239246 3,26C 10$5

1,7 1,68498902 1,68501396 2,49C 10$5

1,8 1,78888175 1,78889853 1,68C 10$5

1,9 1,89392110 1,89392951 8,41C 10$6

2,0 2,00000000 2,00000000

tuk memperkecil orde kesalahan, kita bisa menggunakan polinomial Taylor berorde tinggi.

Akan tetapi proses kalkulasi menjadi semakin banyak dan disisi lain penentuan syarat batas

lebih kompleks dibandingkan dengan pemanfaatan polinomial Taylor yang sekarang. Untuk

menghindari hal-hal yang rumit itu, salah satu jalan pintas yang cukup efektif adalah dengan

menerapkan ekstrapolasi Richardson.

Contoh

Pemanfaatan ekstrapolasi Richardson pada metode Finite Difference untuk persamaan difer-

ensial seperti berikut ini

y = − 2 

y5 +

2y +

?in(n x)

x x2x2

, 1 7 x 7 2, y(1) = 1, y(2) = 2,

denganh = 0, 1,h = 0, 05,h = 0, 025. Ekstrapolasi Richardson terdiri atas 3 tahapan, yaitu

ekstrapolasi yang pertama

Ext1i =4wi (h = 0, 05) − wi (h = 0,

1)3

kemudian ekstrapolasi yang kedua

Ext2i =4wi (h = 0, 025) − wi (h = 0,

05)

3

dan terakhir ekstrapolasi yang ketiga

Ext3i =

16Ext2i − Ext1i

15

Tabel berikut ini memperlihatkan hasil perhitungan tahapan-tahapan ekstrapolasi tersebut.

 Ji-

ka seluruh angka di belakang koma diikut-sertakan, maka akan terlihat selisih antara solusi

exact dengan solusi pendekatan sebesar6,  3 C 10$11 . Ini benar-benar improvisasi yang

Page 211: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 211/279

8.3. METODEFINITE DIFFERENCE 161

luar biasa.

Page 212: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 212/279

7 7 − −

10

2

xi wi(h = 0, 1) wi(h = 0, 05) wi(h = 0, 025) Ext1i Ext2i Ext3i

1,0 1,00000000 1,00000000 1,00000000 1,00000000 1,00000000 1,00000000

1,1 1,09260052 1,09262207 1,09262749 1,09262925 1,09262930 1,092629301,2 1,18704313 1,18707436 1,18708222 1,18708477 1,18708484 1,187084841,3 1,28333687 1,28337094 1,28337950 1,28338230 1,28338236 1,283382361,4 1,38140205 1,38143493 1,38144319 1,38144598 1,38144595 1,381445951,5 1,48112026 1,48114959 1,48115696 1,48115937 1,48115941 1,481159421,6 1,58235990 1,58238429 1,58239042 1,58239242 1,58239246 1,582392461,7 1,68498902 1,68500770 1,68501240 1,68501393 1,68501396 1,685013961,8 1,78888175 1,78889432 1,78889748 1,78889852 1,78889853 1,788898531,9 1,89392110 1,89392740 1,89392898 1,89392950 1,89392951 1,893929512,0 2,00000000 2,00000000 2,00000000 2,00000000 2,00000000 2,00000000

8.3.2 Aplikasi

Besar simpangan terhadap waktu (y(t)) suatu sistem osilator mekanik yang padanya

diberikan gaya secara periodik ( forced-oscilations) memenuhi persamaan diferensial seperti

dibawah ini berikut syarat-syarat batasnya

d2y dy F Fdt2

= + 2y + cG(t), 0 t , y(0) = 0, 3, y( ) = 0, 1dt 2 2

Denganmetode Finite-Difference,tentukanlah besarmasing-masing simpangandi setiap inter-

valh = F)8. Buatlah table untuk membandingkan hasil finite-difference dengan solusi analitik

yang memenuhiy(t) = −1

"in(t) + 3cG(t)#.

 jawab:

Secara umum, persamaan diferensial dapat dinyatakan sbb:

d2 y dy

dx2(x) = p(x) 

dx (x) + q(x)y(x) + 1(x), a 7 x 7 b, y(a) = ?, y(b) = D

Dengan membandingkan kedua persamaan di atas, kita bisa definisikan

Fp(t) = 1 q(t) = 2 1(t) = ;*?(t) a = 0 b = 2 ? = −0, 3 D = −0, 1

Adapun persamaan finite-difference adalah

h 2 h2− 1 + p(xi ) wi$1 + 2 + h q(xi )

 wi 

(1 −

p(xi ) wi+1  = −h 1(xi)

Persamaan diatas dikonversi kedalam operasi matriks

Aw= b (8.27)

Page 213: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 213/279

162 BAB 8. DIFERENSIAL NUMERIK

0 . . . . . . . . .   0h p(2 )   0 . . . . . .   0

h2 >(3 )h 0 . . .   0

2

$

2

−h  1(x  ) + 1 − p(x  ) 

@

−  

2

 

 

.

2

dimanaAadalah matrik tridiagonal dengan orde* C *

  2 + h2 >(1 ) $1 +

h p(1 )

$1 $h p(2 ) 2 + h2 >(2 ) $1 +  2

h2

 0 $1 $

2 p(3 ) 2 + $1 +

2 p(3 )

A=  0 0 $1 $h p(4 ) 2 + h2 >(4 ) $1 +

h p(4 ) 0 0

 2 2

 

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . $1 $ h p(  $1 ) 2 + h2 >(  $1 ) $1 + h  p(  $1)

2

0 . . . . . . . . . . . . $1h

2

 p(  ) 2 + h2 >(  )

   w1

   w2

     w3

 

w=  

w4

.

   

b=

−h2 1(x1) + 1 +h p(x1 )

 w0

−h2 1(x2 )

−h2 1(x3 )

−h2 1(x4 )

 w  $1

   −h2 1(x  $1)

 

 Jumlah baris matrik ditentukan oleh bilangann. Namun disoal hanya tersedia informasi nilai

h = F)8, sehinggan harus dihitung terlebih dahulu:

h =b − an + 1 n =

b − ah

− 1 = 2 − 0F)8

− 1 = 3

perhitungan ini dilakukan didalam script matlab. Selanjutnya seluruh elemen matrikAdan

vektorbdihitung dengan matlab

    2, 3084 −0, 8037 0

   w1

  −0, 5014

  −1, 1963 2, 3084 −0, 8037   w2= 0, 1090

0 −1, 1963 2, 3084

     w3

    −0, 1394

Proses diteruskan dengan metode Eliminasi Gauss dan didapat hasil akhir berikut

ini

w1 = −0.3157 w2 = −0.2829 w3 = −0.2070

8.4 Persamaan Diferensial Parsial

Dalam sub-bab ini, penulisan ’persamaan diferensial parsial’ akan dipersingkat menjadi PDP.

Page 214: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 214/279

8.5. PDP ELIPTIK 163

PDP dapat dibagi menjadi 3 jenis, yaitu persamaan diferensial eliptik, parabolik dan hiperbo-

lik. PDP eliptik dinyatakan sebagai berikut

H2

0 H2 

0Hx2

(x, y) +Hy2

(x, y) = f  (x, y) (8.28)

Page 215: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 215/279

2

Di bidang fisika, persamaan (8.28) dikenal sebagaiPersamaan Poisson. Jikaf  (x, y)=0, maka

diperoleh persamaan yang lebih sederhana

H20 H2 0

Hx2(x, y) +

Hy2(x, y) = 0 (8.29)

yang biasa disebut sebagaiPersamaan Laplace. Contoh masalah PDP eliptik di bidang fisika

adalah distribusi panas pada kondisisteady-statepada obyek 2-dimensi dan 3-dimensi.

 Jenis PDP kedua adalah PDP parabolik yang dinyatakan sebagai berikut

H0 (x, t) ?2

Ht

H2 0Hx2 (x, t) = 0 (8.30)

Fenomena fisis yang bisa dijelaskan oleh persamaan ini adalah masalah aliran panas pada su-atu obyek dalam fungsi waktut.

Terakhir, PDP ketiga adalah PDP hiperbolik yang dinyatakan sebagai berikut

?2 H 0 H20

H2x (x, t) =

Ht2(x, t) (8.31)

 biasa digunakan untuk menjelaskan fenomena gelombang.

Sekarang,mari kita bahas lebih dalamsatu-persatu, difokuskanpada bagaimanacara

meny- atakan semua PDP di atas dalam formulasiFinite-Difference.

8.5 PDP eliptik

Kita mulai dari persamaan aslinya

H20 H2 0

Hx2(x, y) +

Hy2(x, y) = f  (x, y) (8.32)

dimanaB = "(x, y)|a < x < b, c < y < d#.Maksudnya, variasi titik-titikx berada di antaraa

danb. Demikian pula dengan variasi titik-titiky, dibatasi mulai daricsampaid(lihat Gambar

8.7). Jikah adalah jarak interval antar titik yang saling bersebelahan pada titik-titik dalamrentang horizontala danb, maka titik-titik variasi di antaraa danb dapat diketahui melalui

rumus ini

xi  = a + ih, dimanai = 1, 2, . . . , n (8.33)

dimanaa adalah titik awal pada sumbu horisontalx. Demikian pula pada sumbuy. Jikak

adalah jarak interval antar titik yang bersebelahan pada titik-titik dalam rentang vertikalc

dand,maka titik-titik variasi di antaracdanddapat diketahui melalui rumus ini

y j  = c + jk, dimana j = 1, 2, . . . , m (8.34)

dimanac adalah titik awal pada sumbu vertikaly. Perhatikan Gambar 8.7, garis-garis yang

sejajar sumbu horisontal,y = yi dangaris-garisyang sejajar sumbu vertikal,x = xi disebut

grid lines. Sementara titik-titik perpotongan antara garis-garis horisontal dan vertikal

dinamakan

Page 216: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 216/279

 .

 .

 .

 .

 .

 .

mesh points

dym

y2

grid lines

ky1

c

a x1x2... x

n b

h

Gambar 8.7: Skema grid linesdanmesh pointspada aplikasi metodeFinite-Difference

mesh points.

Turunan kedua sebagaimana yang ada pada persamaan (8.32) dapat dinyatakan dalam rumuscentered-differencesebagai berikut

H20 0(xi+1 , y j ) − 20(xi , y j ) + 0(xi$1 , y j )

h2 H40

Hx2(xi , y j ) =

h2−

12 Hx4(@i , y j ) (8.35)

H20 0(xi , y j+1) − 20(xi , y j ) + 0(xi , y j$1)

k2 H40

Hy2(xi , y j )

=k2

−12 Hy4

(xi , I j ) (8.36)

MetodeFinite-Difference biasanya mengabaikansuku yang terakhir,sehinggacukup

dinyatakan sebagaiH20

Hx2(xi , y j ) =

H20

Hy2(xi , y j )

=

0(xi+1 , y j ) − 20(xi , y j ) + 0(xi$1 , y j )

h2(8.37)

0(xi , y j+1) − 20(xi , y j ) + 0(xi, y j$1 )

k2(8.38)

Pengabaian suku terakhir otomatis menimbulkanerroryang dinamakantruncation error. Ja-

di, ketika suatu persamaan diferensial diolah secara numerik dengan metodeFinite-Difference,

maka solusinya pasti meleset alias keliru "sedikit", dikarenakan adanyatruncation errorterse-

 but. Akan tetapi, nilaierrortersebut dapat ditolerir hingga batas-batas tertentu yang

uraiannya akan dikupas pada bagian akhir bab ini.

Ok. Mari kita lanjutkan!Sekarang persamaan(8.37) dan (8.38)disubstitusikepersamaan

(8.32),

Page 217: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 217/279

hasilnya adalah

0(xi+1 , y j ) − 20(xi, y j ) + 0(xi$1 , y j)

h2 +

0(xi, y j+1) − 20(xi , y j ) + 0(xi , y j$1)

k2= f  (xi , y j ) (8.39)

Page 218: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 218/279

k2

dimanai = 1, 2, ..., n − 1dan j = 1, 2, ..., m − 1dengan syarat batas sebagai berikut

0(x0 , y j ) = 3(x0 , y j ) 0(xn , y j ) = 3(xn , y j )0(xi , y0 ) = 3(xi , y0) 0(xi , ym ) = 3(xi , ym)

Pengertian syarat batas disini adalah bagian tepi atau bagian pinggir dari susunanmesh points.

Pada metodeFinite-Difference, persamaan (8.39) dinyatakan dalam notasiw, sebagai

 berikut

wi+1, j  − 2wi, j  + wi$1, j

h2+

h2

wi, j+1 − 2wi, j  + wi, j$1

k2= f  (xi , y j )

2wi+1, j  − 2wi, j  + wi$1, j  +

k2(wi, j+1 − 2wi, j  + wi, j$1 ) = h f  (xi , y j )

h2 h2 h22wi+1, j  − 2wi, j  + wi$1, j  +

k2wi, j+1 − 2 

k2wi, j  +

k2wi, j$1 = h f  (xi , y j )

h2 h22−2"1 +

k2#wi, j  + (wi+1, j  + wi$1, j ) +

k2(wi, j+1 + wi, j$1 ) = h f  (xi , y j )

2"1 +h2

k2#wi, j  − (wi+1, j  + wi$1, j ) 

h2

(wi, j+1 + wi, j$1 ) = −h2 f  (xi , y j ) (8.40)

dimanai = 1, 2, ..., n − 1dan j = 1, 2, ..., m − 1, dengan syarat batas sebagai berikut

w0, j  = 3(x0 , y j ) wn, j  = 3(xn , y j )  j = 0, 1, ..., m −

wi,0  = 3(xi , y0 ) wi,m = 3(xi , ym) i = 1, 2, ..., n −

Persamaan (8.40) adalah rumusan akhir metodeFinite-Differenceuntuk PDP Eliptik.

8.5.1 Contoh pertama

Misalnya kita dimintamensimulasikandistribusi panas pada lempengan logam berukuran0,

5 m x0, 5 m. Temperatur pada 2 sisi tepi lempengan logam dijaga pada0A  , sementara

pada 2 sisi tepi lempengan logam yang lain, temperaturnya diatur meningkat secara lineardari0A  hingga100A ,. Problem ini memenuhi PDP Eliptik:

H2 0 H2 0

Hx2(x, y) +

Hy2(x, y) = 0 0 < x < 0, 5, 0 < y < 0,

5

dengan syarat-syarat batas

0(0, y) = 0, 0(x, 0) = 0, 0(x, 0.5) = 200x, 0(0.5, y) = 200y

 Jikan = m = 4sedangkan ukuran lempeng logam adalah0, 5m x0, 5m, maka

0, 5h =

4= 0, 125 k =

0, 5

4= 0, 125

Grid lines berikutmesh pointsdibuat berdasarkan nilaih dank tersebut (lihat Gambar 8.8).

Page 219: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 219/279

Langkah berikutnya adalah menyusun persamaanFinite-Difference, dimulai dari persamaan

Page 220: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 220/279

B1,4

B2,4

B3,4

B1,3

B2,3 B

3,3 B

B4,2

B4,1

B1,2

B2,2

B3,2

B1,1 B

2,1B

3,1

       U      (      0  ,    y

      )    =      0

       U      (      0  .      5  ,    y

      )    =      2      0      0    y

k2

C U(x,0.5)=200x

0.5

B0,3

B0,2

B0,1

4,3

B1,0 B2,0 B3,0

U(x,0)=0

0.5 X

Gambar 8.8: Susunan grid linesdanmesh pointsuntuk mensimulasikan distribusi temperaturpada lempeng logam sesuai contoh satu

asalnya (persamaan 8.40)

2"1 +h2

k2#wi, j  − (wi+1, j  + wi$1, j ) 

h2

(wi, j+1 + wi, j$1 ) = −h2 f  (xi , y j )

Karenah = k = 0, 125danf  (xi , y j ) = 0, maka

4wi, j  − wi+1, j  − wi$1, j  − wi, j$1 − wi, j+1  = 0 (8.41)

Disisi lain, karenan = 4, maka nilaii yang bervariasii = 1, 2, ..., n − 1 akan menjadii

=

1, 2, 3. Demikian hal-nya dengan j,karenam = 4, maka variasi j = 1, 2, ..., m − 1 atau j

=

1, 2, 3. Dengan menerapkan persamaan (8.41) pada setiapmesh pointyang belum diketahui

temperaturnya, diperoleh

4w1,3 − w2,3 − w1,2 = w0,3 + w1,4

4w2,3 − w3,3 − w2,2 − = w2,4

4w3,3

− w3,2

− w2,3

= w4,3

+ w3,4

4w1,2 − w2,2 − w1,1 − = w0,2

4w2,2 − w3,2 − w2,1 − w1,2 − = 0

4w3,2 − w3,1 − w2,2 − = w4,2

4w1,1 − w2,1 − w1,2 = w0,1 + w1,0

Page 221: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 221/279

4w2,1 − w3,1 − w1,1 − = w2,0

4w3,1 − w2,1 − w3,2 = w3,0 + w4,1

Page 222: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 222/279

 

 

0 0 −1 0 −1 4 0 0 −1 w3,2

 

 

 

0  

Semua notasiw yang berada diruas kanan tanda sama-dengan sudah ditentukan nilainya

 berdasarkan syarat batas, yaitu

w1,0 = w2,0 = w3,0 = w0,1 = w0,2 = w0,3 =

0,

w1,4 = w4,1 = 25, w2,4 = w4,2 = 50, dan

w3,4 = w4,3 = 75

Dengan memasukkan syarat batas tersebut ke dalam sistem persamaan linear, maka

4w1,3 − w2,3 − w1,2 = 25

4w2,3 − w3,3 − w2,2 − = 50

4w3,3 − w3,2 − w2,3 = 150

4w1,2 − w2,2 − w1,1 − = 0

4w2,2 − w3,2 − w2,1 − w1,2 − = 0

4w3,2 − w3,1 − w2,2 − = 50

4w1,1 − w2,1 − w1,2 = 0

4w2,1 − w3,1 − w1,1 − = 0

4w3,1 − w2,1 − w3,2 = 25

Kemudian dijadikan operasi perkalian matrik

4 −1 0 −1 0 0 0 0 0

−1 4 −1 0 −1 0 0 0 00 −1 4 0 0 −1 0 0 0

 w1,3 

 w2,3 

     

3,3 

  

25

50

 

150

   

−1 0 0 4 −1 0 −1 0 0   

w1,2 

   

0

   

0 −1 0 −1 4 −1 0 −1 0

   w2,2

 =

0      

                 

 

50

  0 0 0 −1 0 0 4 −1 0

 w1,1

 

     

0 0 0 0 −1 0 −1 4 −1 

w2,1 

0

 

0 0 0 0 0 −1 0 −1 4 w3,1 25

Mari kita perhatikan sejenak susunanelemen-elemenangka pada matrik berukuran9x9 di

atas.

Terlihat jelas pada elemen diagonal selalu berisi angka 4. Ini sama sekali bukan

ketidaksenga- jaan. Melainkan susunan itu sengaja direkayasa sedemikian rupa sehingga

elemen-elemen tri- diagonal terisi penuh oleh angka bukan0 dan pada diagonal utamanya

diletakkan angka yang terbesar. Metode Eliminasi Gauss dan Iterasi Gauss-Seidel telah

diaplikasikan untuk menyele- saikan persamaan matrik di atas.

Page 223: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 223/279

8.5.2 ScriptMatlab untuk PDP Elliptik

InilahscriptMatlab yang dipakai untuk menghitung nila-nilaiw menggunakan metodeElimi- nasi Gauss.

1 clear all

2 clc

3 n=9;

4 A=[ 4 #1 #1 ;

5 #1 4 #1 #1 ;

6 #1 4 #1 ;

7 #1 4 #1 #1 ;

8 #1 #1 4 #1 #1 ;

9 #1 #1 4 #1;

10 #1 4 #1 ;11 #1 #1 4 #1;

12 #1 #1 4];

13

14 =[25; 5; 15; ; ; 5; ; ; 25];

15

16 % <rses .liminasi a'ss

17 %====== >en00a'n0!an e!r !e+alam mari! A ========

18 %====== sein00a eren'! mari! A'0menasiF ========

19 r i=1-n

20 A(i,n*1)=(i,1);

21 en+

22

23 %#########<rses Trian0'larisasi###########24 r &=1-(n#1)

25

26 %####m'lai $rses $i###

27 i (A(&,&)==)

28 r $=1-n*1

29 '=A(&,$);

30 =A(&*1,$);

31 A(&*1,$)=';

32 A(&,$)=;

33 en+

34 en+

35 %####a!ir $rses $i###

36 &&=&*1;37 r i=&&-n

38 m=A(i,&):A(&,&);

39 r !=1-(n*1)

40 A(i,!)=A(i,!)#(m/A(&,!));

41 en+

42 en+

43 en+

44 %###########################################

45

46 %######<rses 'si'si m'n+'r#############

47 (n,1)=A(n,n*1):A(n,n);

48

49 r i=n#1-#1-150 =;

51 r &=n-#1-i*1

52 =*A(i,&)/(&,1);

53 en+

Page 224: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 224/279

54 (i,1)=(A(i,n*1)#):A(i,i);

55 en+

56 %

57

58 %===== >enam$il!an e!r =================

59 =

Sementara berikutini adalahscriptMatlabuntukmenghitung nila-nilaiwmenggunakanmetode

Iterasi Gauss-Seidel.

1 clear all

2 clc

3

4 n=9;

5 A=[ 4 #1 #1 ;6 #1 4 #1 #1 ;

7 #1 4 #1 ;

8 #1 4 #1 #1 ;

9 #1 #1 4 #1 #1 ;

10 #1 #1 4 #1;

11 #1 4 #1 ;

12 #1 #1 4 #1;

13 #1 #1 4];

14

15 =[25; 5; 15; ; ; 5; ; ; 25];

16

17 % ?T.A? A#.?.K

18 ierma=1; %ierasi ma!sim'm19 %####nilai aal###########

20 l=[; ; ; ; ; ; ; ; ];

21 =l;

22 %####s$$in0 crieria###########

23 sc=F1;

24 %####mem'lai ierasi#############

25 r ierasi=1-ierma

26 smr1=;

27 r &=2-n

28 smr1=smr1*A(1,&)/l(&,1);

29 en+

30 (1,1)=(#smr1*(1,1)):A(1,1);

31 %##############################################32 r i=2-n#1

33 smr2=;

34 r &=i*1-n

35 smr2=smr2#A(i,&)/l(&,1);

36 en+

37 smr3=;

38 r !=1-i#1

39 smr3=smr3#A(i,!)/(!,1);

40 en+

41 (i,1)=(smr3*smr2*(i,1)):A(i,i);

42 en+

43 %##############################################

44 smr4=;

45 r !=1-n#1

46 smr4=smr4#A(n,!)/(!,1);

47 en+

48 (n,1)=(smr4*(n,1)):A(n,n);

Page 225: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 225/279

170 BAB 8. DIFERENSIAL NUMERIK

49 %######$eri'n0an nrm2 #############

50 s=;

51 r i=1-n

52 s=s*((i,1)#l(i,1))G2;

53 en+

54 e$siln=sQr(s);

55 %#####################################

56 l=;

57 %######memeri!sa s$$in0 crieria########

58 i e$silnMsc

59 =

60 rea!

61 en+

62 %#########################################

63 en+

Tabel berikut memperlihatkan hasil pemrosesan dengan metode Eliminasi Gauss (disingkat:

EG) dan iterasi Gauss-Seidel (disingkat: GS)

w1,3 w2,3 w3,3 w1,2 w2,2 w3,2 w1,1 w2,1 w3,1

E. 18.7500 37.5000 56.2500 12.5000 25.0000 37.5000 6.2500 12.5000 18.7500

.> 18.7497 37.4997 56.2498 12.4997 24.9997 37.4998 6.2498 12.4998 18.7499

Inilah solusi yang ditawarkan olehFinite-Difference. Kalau diamati dengan teliti, angka-

angka distribusi temperatur pada 9 buahmesh pointsmemang logis dan masuk akal. Dalam

kondisi riil, mungkin kondisi seperti ini hanya bisa terjadi bila lempengan logam tersebut ter-

 buat dari bahan yang homogen.

Hasil EG dan GS memang berbeda, walaupun perbedaannya tidaksignificant. Namun per-

lu saya tegaskan disini bahwa jika sistem persamaan linear yang diperoleh dariFinite Dif-

 ference berorde 100 atau kurang dari itu, maka lebih baik memilih metode Eliminasi Gauss

sebagai langkah penyelesaian akhir. Alasannya karena,direct methodseperti eliminasi Gauss,lebih stabil dibandingkan metode iterasi. Tapi jika orde-nya lebih dari 100, disarankan

memilih metode iterasi seperti iterasi Gauss-Seidel, ataumenggunakanmetode SOR yang

terbukti lebih efisien dibanding Gauss-Seidel. Jika matrik A bersifat positive definite, metode

Court Factoriza- tionadalah pilihan yg paling tepat karena metode ini sangat efisien sehingga

 bisa menghemat memori komputer.

8.5.3 Contoh kedua

Diketahui persamaan poisson sebagai berikut

H2 0 H20 -

Hx2(x, y) +

Hy2(x, y) = xe , 0 < x < 2, 0 < y < 1,

Page 226: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 226/279

Page 227: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 227/279

(8.44)

2

Pada Bab ini ada beberapa istilah yang masing-masing menggunakan katadifference, yaitu finite difference, for-ward difference,centered differencedanbackward difference. Setiap istilah punya arti yang berbeda.

Page 228: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 228/279

Sementara itu, turunan kedua persamaan (8.42) terhadapx berdasarkan deret Taylor adalah

H2 

0 0 (xi + h, tD ) − 20 (xi, t j ) + 0 (xi − h, tD ) h2

H4 

0

Hx2(xi, t j ) =

h2−

12 Hx4(@i , t j ) (8.45)

Pengabaian suku terakhir menjadikan persamaan di atas ditulis kembali sebagai berikut

H2 0

Hx2(xi , t j ) =

0 (xi + h, t j ) − 20 (xi , t j ) + 0 (xi − h, t j )

h2(8.46)

Kemudian persamaan (8.44) dan (8.46) disubstitusi kedalam persamaan (8.42), maka

diperoleh

0 (xi, t j  + k) − 0 (xi , t j ) = ?2 0 (xi + h, t j ) − 20 (xi , t j ) + 0 (xi −h, t j )

k h2(8.47)

atau dapat dinyatakan dalam notasiw

wi, j+1 − wi, j

k− ?2 wi+1, j  − 2wi, j  + wi$1, j

h2= 0 (8.48)

Dari sini diperoleh solusi untukwi, j+1 , yaitu

wi, j+1  =

2?2 k 

1 − h2 wi, j  + ?2 k

h2 (wi+1, j  + wi$1, j ) (8.49)

 jika

maka

?2 k$ =h2

(8.50)

(1 − 2$) wi, j  + $wi+1, j  + $wi$1, j  = wi, j+1 (8.51)

8.6.2 Contoh ketiga:One dimensional heat equation

Misalnya diketahui, distribusi panas satu dimensi (1D) sebagai fungsi waktu (t) pada

sebatang logam memenuhi persamaan berikut

H0

Ht(x, t) −

H2 0Hx2 (x, t) = 0, 0 < x < 1 0 7 t,

dengan syarat batas

0(0, t) = 0(1, t) = 0, 0 < t,

dan kondisi mula-mula

0(x, 0) = ?in(Fx), 0 7 x 7 1,Solusi analitik atas masalah ini adalah

0(x, t) = e$@2 t?in(Fx)

Adapun sebaran posisimesh-pointsdalam 1-D diperlihatkan pada Gambar 8.9.Sementara

Page 229: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 229/279

h=0.1

Gambar8.9:Sebatang logam dengan posisi titik-titik simulasi (mesh-points) distribusi temperatur. Jarak antar titik ditentukan sebesarh = 0, 1.

Gambar 8.10 melengkapi Gambar 8.9, dimana perubahan waktu tercatat setiap intervalk =

0, 0005. Sepintas Gambar 8.10 terlihat seolah-olah obyek yang mau disimulasikan berbentuk

2-dimensi, padahal bendanya tetap 1-dimensi yaitu hanya sebatang logam.

t

0.0.....

k=0.0005

0 1 x

h=0.1

Gambar 8.10:Intervalmesh-pointsdengan jarakh = 0, 1dalam interval waktuk = 0, 0005

Selanjutnya, Gambar 8.11 memperlihatkan tepi-tepi syarat batas yaitu angka0 di ujung

kiri dan angka1 di ujung kanan pada sumbu horisontalx. Diantara batas-batas itu terdapat

sebaran titik simulasi berjarakh = 0, 1. Sementara, sumbu vertikal menunjukan perubahan

dari waktu ke waktu dengan intervalk = 0, 0005. Karena? = 1,h = 0, 1 dank = 0, 0005

maka

t

0.0.....

0.0015

0.0010

0.0005

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 +

Gambar 8.11:Posisimesh-points. Arahx menunjukkan posisi titik-titik yang dihitung dengan forward-difference, sedangkan araht menunjukkan perubahan waktu yg makin meningkat

$ dapat dihitung dengan persamaan (8.50)

?2 k$ =h2

0, 1=

0, 00052= 0, 05

Page 230: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 230/279

Page 231: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 231/279

8.6. PDP PARABOLIK 175

w

  

 w3,1

   w4,1

 0 0 0 0, 5 0, 9 0, 5 0 0 0

     =

 w5,1

  

0 0 0 0 0, 5 0, 9 0, 5 0 0

  0 0 0 0 0 0, 5 0, 9 0, 5 0 

      

6,0 

    

w7,0 

 

 w6,1

 w7,1

 

0 0 0 0 0 0 0, 5 0, 9 0, 5  

w8,0    

 w8,1

0 0 0 0 0 0 0 0, 5 0, 9

w9,0 w9,1

Page 232: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 232/279

Page 233: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 233/279

0 0 0 0 0 0 0, 5 0, 9 0, 5 0, 5849

0 0 0 0 0 0 0 0, 5 0, 9 0, 3075

 0 0 0 0, 5 0, 9 0, 5 0 0 0

   0, 9951

 =

  w5,2

     

 0 0 0 0 0, 5 0, 9 0, 5 0 0

     0, 9464 

  w6,2

    

 0 0 0 0 0 0, 5 0, 9 0, 5 0

   0, 8051 

  w7,2

      

 

  w8,2

w9,2

Perhitungan dengan cara seperti ini diulang-ulang sampai mencapai waktu maksimum. Jika

waktu maksimum adalah + = 0, 5 detik, berarti mesti dilakukan 1000 kali iterasi5. Untuk

3Topik tentang perkalian matrik sudah diulas pada Bab 14karenastep timek -nya sudah ditentukan sebesar0, 00055cara menghitung jumlah iterasi:T 0k = 0, 500, 0005 = 1000

Page 234: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 234/279

sampai 1000 kali, maka indeks j bergerak dari 1 sampai 1000. Dengan bantuan script Matlab,

proses perhitungan menjadi sangat singkat.

8.6.2.1 Script Forward-Difference

Script matlabForward-Differenceuntuk menyelesaikan contoh masalah ini, dimanah = 0, 1

dan

k = 0, 0005

1 clear all

2clc

3

4 n=9;

5 al$a=1F;

6 !=F5;

7 =F1;

8 lam+a=(al$aG2)/!:(G2);

9

10 % Dn+isi aal

11 r i=1-n

12 s''(i)=sin($i/i/F1);

13 en+

14

15 %>en0c$ !n+isi aal !e 16 r i=1-n

17 (i,1)=s''(i);

18 en+

19

20 A=[ (1#2/lam+a) lam+a ;

21 lam+a (1#2/lam+a) lam+a ;

22 lam+a (1#2/lam+a) lam+a ;

23 lam+a (1#2/lam+a) lam+a ;

24 lam+a (1#2/lam+a) lam+a ;

25 lam+a (1#2/lam+a) lam+a ;

26 lam+a (1#2/lam+a) lam+a ;

27 lam+a (1#2/lam+a) lam+a ;

28 lam+a (1#2/lam+a) ];29

30 ierasi=1;

31 r !=1-ierasi

32 +is$(’$er!alian mari!s’)

33 %======================================

34 r i=1-n

35 (i,1)=F;

36 en+

37

38 r i=1-n

39 r &=1-n

40 (i,1)=(i,1)*A(i,&)/(&,1);

41 en+42 en+

43 %====================================

44

45 =;

46 en+

Page 235: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 235/279

Tabel 8.4 memperlihatkan hasil perhitungan yang diulang-ulang hingga 1000 kali. Tabel

terse-

 but juga menunjukkan hasil perbandingan antara pemilihan nilai intervalk = 0, 0005 dank = 0, 01. Tabel ini menginformasikan satu hal penting, yaitu pada saat intervalk = 0,

0005, forward-difference  berhasil mencapai konvergensi yang sangat baik. Namun pada saat

intervalk = 0.01, dengan jumlah iterasi hanya50 kali untuk mencapaitimemaksimum 0, 5

detik, ter- lihat jelas hasil forward-differencetidak konvergen (Bandingkan kolom ke-4 dan

kolom ke-6!), dan ini dianggap bermasalah. Masalah ini bisa diatasi dengan metodebackward-

difference.

Tabel 8.4:Hasil simulasi distribusi panas bergantung waktu dalam 1-dimensi. Kolom ke-2 adalahsolusianalitik/exact, kolom ke-3 dan ke-5 adalah solusi numerik forward-difference. Kolom ke-4dan ke-6 adalah selisih antara solusi analitik dan numerik

xi 0(xi , 0.5)wi,1000

k = 0, 0005 |0(xi , 0.5) − wi,1000 |wi,50

k = 0, 01 |0(xi, 0.5) − wi,50 |

0,0 0 0 0

0,1 0,00222241 0,00228652 6, 411 C 10$5 8, 19876 C 107 8, 199 C 107

0,2 0,00422728 0,00434922 1, 219 C 10$4 −1, 55719 C 108 1, 557 C 108

0,3 0,00581836 0,00598619 1, 678 C 10$4 2, 13833 C 108 2, 138 C 108

0,4 0,00683989 0,00703719 1, 973 C 10$4 −2, 50642 C 108 2, 506 C 108

0,5 0,00719188 0,00739934 2, 075 C 10$4 2, 62685 C 108 2, 627 C 108

0,6 0,00683989 0,00703719 1, 973 C 10$4 −2, 49015 C 108 2, 490 C 108

0,7 0,00581836 0,00598619 1, 678 C 10$4 2, 11200 C 108 2, 112 C 108

0,8 0,00422728 0,00434922 1, 219 C 10$4 −1, 53086 C 108 1, 531 C 108

0,9 0,00222241 0,00228652 6, 511 C 10$5 8, 03604 C 107 8, 036 C 107

1,0 0 0 0

8.6.3 MetodeBackward-difference

Kalau kita ulang lagi pelajaran yang lalu tentang forward-difference, kita akan dapatkan formula

 forward-differenceadalah sebagai berikut (lihat persamaan (8.48))

wi, j+1 − wi, j

k− ?2 wi+1, j  − 2wi, j  + wi$1, j

h2= 0

Sekarang, dengan sedikit modifikasi, formulabackward-differencedinyatakan sebagai

wi, j  − wi, j$1

k− ?2 wi+1, j  − 2wi, j  + wi$1, j

h2= 0 (8.54)

 jika ditetapkan?2 k$ =h2

makabackward-differencedisederhanakan menjadi

(1 + 2$) wi, j  − $wi+1, j  − $wi$1, j  = wi, j$1 (8.55)

Page 236: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 236/279

− −

 

coba sejenak anda bandingkan dengan formula forward-differencedalam$ sebagaimana diny-

atakan oleh persamaan (8.51)

(1 − 2$) wi, j  + $wi+1, j  + $wi$1, j  =

wi, j+1

O.K., mari kita kembali ke contoh soal kita yang tadi, dimana ada perubahan nilaik yang

semulak  = 0, 0005 menjadik = 0, 01. Sementara? danh nilainya tetap. Maka$ dapat

dihitung dengan persamaan (8.50) kembali

?2 k$ =h2

0, 1=

0, 012= 1

Berdasarkan persamaan (8.55), sistem persamaan linear mengalami sedikit perubahan

3w1, j  − 1w2, j = w1, j$1 + 1w0, j

3w2, j  − 1w3, j  − 1w1, j = w2, j$1

3w3, j  − 1w4, j  − 1w2, j = w3, j$1

3w4, j  − 1w5, j  − 1w3, j = w4, j$1

3w5, j  − 1w6, j  − 1w4, j = w5, j$1

3w6, j  − 1w7, j  − 1w5, j = w6, j$1

3w7, j  − 1w8, j  − 1w6, j = w7, j$1

3w8, j  − 1w9, j  − 1w7, j = w8, j$1

3w9, j  − 1w8, j = w9, j$1 + 1w10, j

Syarat batas masih sama, yaituw0, j  = w10, j  = 0. Lalu jika dinyatakan dalam bentuk operasi

matrik

3 −1 0 0 0 0 0 0 0

 w1, j 

w1, j$1 

−1 3 −1 0 0 0 0 0 01 0 0 0 0 0

  w2, j       

w

w2, j$1    w

1 3 −   

3, j 

   

3,j$1

 

0 0 −1 3 −1 0 0 0 0   

w4, j 

   

w4, j$1 

 

0 0 0 −1 3 −1 0 0 0

     =

w5, j$1 

0 0 0 0 −1 3 −1 0 00 0 0 0 0 −1 3 −1 0

         

6, j 

     w7, j 

   

 

w6, j$1 

  w7, j$1 

 

0 0 0 0 0 0 1 3 1   w8, j 

   

w8, j$1 

0 0 0 0 0 0 0 −1 3 w9, j w9, j$1

Persamaan matriks di atas dapat direpresentasikan sebagai

Page 237: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 237/279

Aw( j) = w( j$1) (8.56)

Page 238: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 238/279

3 −1 0 0 0 0 0 0 0 

w1,1

 

−1 3 −1 0 0 0 0 0 0   w2,1 w2,0

0 −1 3 −1 0 0 0 0 0 w   w

   

0 0 0 −1 3 −1 0 0 0 w   =

     0 0 0 0 0 −1 3 −1 0 w   w

   

 0 0 0 0 0 0 0 −1 3 w9,1 w9,0

3 −1 0 0 0 0 0 0 0

−1 3 −1 0 0 0 0 0 0

1 3 −1 0 0 0 0 0

0 0 −1 3 −1 0 0 0 0

0 0 0 −1 3 −1 0 0 0

0 0 0 0 −1 3 −1 0 0

 

Perhitungan dimulai dari iterasi pertama, dimana j = 1

0 0 −1 3 −1 0 0 0 0

0 0 0 0 −1 3 −1 0 0

   

 w4,1 

   

 w6,1 

 

w4,0

 

w6,0

0 0 0 0 0 0 −1 3 −1 

w8,1 

w8,0

Dengan memasukan kondisi awal, ruas kanan menjadi

   w1,1 

w2,1

     

0, 3090

0, 5878  

   

   

       

w3,1 

 

0, 8090

   w4,1 

0, 9511

               

=

1, 0000

                   

w6,1 

0, 9511

       

0 0 0 0 0 −1 3 −1 0 

w7,1 

0, 8090

               

0 0 0 0 0 0 −1 3 −1   w8,1  0, 5878

0 0 0 0 0 0 0 −1 3

   

w9,1

 

0, 3090

Berbeda dengan operasi matrik forward difference, operasi matrikbackward differenceini bukan

perkalianmatrik biasa.Operasimatriktersebutakandipecahkanolehmetode Eliminasi

Gauss6. Untuk jumlah iterasi hingga j = 50, perhitungannya dilakukan dalamscriptMatlab.

8.6.3.1 Script Backward-Differencedengan Eliminasi Gauss

1 clear all2 clc

3

4 n=9;

5 al$a=1F;

6 !=F1;

7 =F1;

8 lam+a=(al$aG2)/!:(G2);

Page 239: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 239/279

9

10 %Dn+isi aal

11 r i=1-n

12 s''(i)=sin($i/i/F1);

13 en+

14

15 %>en0c$ !n+isi aal !e

16 r i=1-n

6Uraian tentang metode Eliminasi Gauss tersedia di Bab 2

Page 240: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 240/279

180 BAB 8. DIFERENSIAL NUMERIK

17 (i,1)=s''(i);

18 en+

19

20 AA=[ (1*2/lam+a) #lam+a

21 #lam+a (1*2/lam+a) #lam+a ;

22 #lam+a (1*2/lam+a) #lam+a ;

23 #lam+a (1*2/lam+a) #lam+a ;

24 #lam+a (1*2/lam+a) #lam+a ;

25 #lam+a (1*2/lam+a) #lam+a ;

26 #lam+a (1*2/lam+a) #lam+a ;

27 #lam+a (1*2/lam+a) #lam+a ;

28 #lam+a (1*2/lam+a) ];

29

30 ierasi=5;

31 r i=1-ierasi

32 % <rses .liminasi a'ss

33 A=AA; %>ari!s Bac!ar+ ierence +ic$ s'$aa i

34

35 r i=1-n

36 A(i,n*1)=(i,1);

37 en+

38

39 %#########<rses Trian0'larisasi###########

40 r &=1-(n#1)

41

42 %####m'lai $rses $i###

43 i (A(&,&)==)

44 r $=1-n*1

45 '=A(&,$);

46 =A(&*1,$);

47 A(&*1,$)=';

48 A(&,$)=;

49 en+

50 en+

51 %####a!ir $rses $i###

52 &&=&*1;

53 r i=&&-n

54 m=A(i,&):A(&,&);

55 r !=1-(n*1)

56 A(i,!)=A(i,!)#(m/A(&,!));

57 en+

58 en+59 en+

60 %###########################################

61

62 %######<rses 'si'si m'n+'r#############

63 (n,1)=A(n,n*1):A(n,n);

64

65 r i=n#1-#1-1

66 =;

67 r &=n-#1-i*1

68 =*A(i,&)/(&,1);

69 en+

70 (i,1)=(A(i,n*1)#):A(i,i);

71 en+72 %

73 =;

74 en+

75

Page 241: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 241/279

Page 242: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 242/279

inilah formula Crank-Nicolson. Adapun$ tetap dinyatakan sebagai

?2 k$ =h2

maka

$wi, j+1 − wi, j  −

2"wi+1, j  − 2wi, j  + wi$1, j  + wi+1, j+1 − 2wi, j+1 + wi$1, j+1 # = 0

$ $ $ $wi, j+1 − wi, j  −

2 wi+1, j  + $wi, j  −

2 wi$1, j  −

2 wi+1, j+1 + $wi, j+1 −

2 wi$1, j+1  = 0

$ $ $ $− 

2 wi$1, j+1 + wi, j+1 + $wi, j+1 −

2 wi+1, j+1 −

2 wi$1, j  − wi, j  + $wi, j  −

2 wi+1, j  = 0

$ $ $ $− 2 

wi$1, j+1 + wi, j+1 + $wi, j+1 −2 

wi+1, j+1  =2 

wi$1, j  + wi, j  − $wi, j  +2 

wi+1, j

dan akhirnya

$ $ $ $− 

2 wi$1, j+1 + (1 + $)wi, j+1 −

2 wi+1, j+1  =

2 wi$1, j  + (1 − $)wi, j  +

2 wi+1, j

(8.59)

Dalam bentuk persamaan matrik dinyatakan sebagai

Aw( j+1) = Jw( j), untuk j = 0, 1, 2, ... (8.60)

Dengan menggunakan contoh soal yang sama, yang sebelumnya telah diselesaikan dengan

metodeForward-DifferencedanBackward-Difference, maka penyelesaian soal tersebut dengan

metode Crank-Nicolson juga akan didemonstrasikan di sini. Dengan nilaik = 0, 01;h = 0, 1;

$ = 1dan berdasarkan persamaan (8.59) diperoleh

−0, 5wi$1, j+1 + 2wi, j+1 − 0, 5wi+1, j+1  = 0, 5wi$1, j  + 0wi, j  + 0, 5wi+1, j

ScriptMatlab untuk menyelesaikan persamaan ini adalah

1 clear all

2 clc3

4 n=9;

5 ierasi=5;

6 al$a=1F;

7 !=F1;

8 =F1;

9 lam+a=(al$aG2)/!:(G2);

10

11 %Dn+isi aal

12 r i=1-n

13 s''(i)=sin($i/i/F1);

14 en+

15

16 %>en0c$ !n+isi aal !e

17 r i=1-n

18 (i,1)=s''(i);

Page 243: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 243/279

66 i (A(&,&)==)

67 r $=1-n*1

68   '=A(&,$);

69 =A(&*1,$);

70 A(&*1,$)=';

71   A(&,$)=;

72 en+

73 en+74 %####a!ir $rses $i###

75 &&=&*1;

76 r i=&&-n

77 m=A(i,&):A(&,&);

19 en+

20

21 AA=[(1*lam+a) #lam+a:2 ;

22 #lam+a:2 (1*lam+a) #lam+a:2 ;

23 #lam+a:2 (1*lam+a) #lam+a:2 ;

24 #lam+a:2 (1*lam+a) #lam+a:2 ;

25 #lam+a:2 (1*lam+a) #lam+a:2 ;

26 #lam+a:2 (1*lam+a) #lam+a:2 ;

27 #lam+a:2 (1*lam+a) #lam+a:2 ;

28 #lam+a:2 (1*lam+a) #lam+a:2;

29 #lam+a:2 (1*lam+a)];

30

31 B=[(1#lam+a) lam+a:2 ;

32 lam+a:2 (1#lam+a) lam+a:2 ;

33 lam+a:2 (1#lam+a) lam+a:2 ;

34 lam+a:2 (1#lam+a) lam+a:2 ;

35 lam+a:2 (1#lam+a) lam+a:2 ;

36 lam+a:2 (1#lam+a) lam+a:2 ;

37 lam+a:2 (1#lam+a) lam+a:2 ;

38 lam+a:2 (1#lam+a) lam+a:2;

39 lam+a:2 (1#lam+a)];

40

41 ierasi=5;

42 r ier=1-ierasi

43

44 %===$er!alian mari!s===================

45 r i=1-n

46 (i,1)=F;

47 en+48 r i=1-n

49 r &=1-n

50 (i,1)=(i,1)*B(i,&)/(&,1);

51 en+

52 en+

53 %======================================

54

55 % <rses .liminasi a'ss

56 A=AA; %>ari!s Bac!ar+ ierence +ic$ s'$aa i

57

58 r i=1-n

59 A(i,n*1)=(i,1);

60 en+61

62 %#########<rses Trian0'larisasi###########

63 r &=1-(n#1)

64

65 %####m'lai $rses $i###

Page 244: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 244/279

78 r !=1-(n*1)

79 A(i,!)=A(i,!)#(m/A(&,!));

80 en+

81 en+

82 en+

83 %###########################################

84

85 %######<rses 'si'si m'n+'r#############

86 (n,1)=A(n,n*1):A(n,n);

87

88 r i=n#1-#1-1

89 =;

90 r &=n-#1-i*1

91 =*A(i,&)/(&,1);

92 en+

93 (i,1)=(A(i,n*1)#):A(i,i);

94 en+

95 %

96 =;

97 en+

98 ier

99

Tabel 8.6: Hasil simulasi distribusi panas bergantung waktu (t) dalam 1-dimensi denganmetodebackward-differencedan Crank-Nicolson

BD CN Backward-Diff Crank-Nicolson

xi 0(xi, 0.5) wi,50 wi,50 |0(xi, 0.5) − wi,50 | |0(xi , 0.5) − wi,50 |0,0 0 0 00,1 0,00222241 0,00289802 0,00230512 6, 756 C 10$4 8, 271 C 10$5

0,2 0,00422728 0,00551236 0,00438461 1, 285 C 10$3 1, 573 C 10$4

0,3 0,00581836 0,00758711 0,00603489 1, 769 C 10$3 2, 165 C 10$4

0,4 0,00683989 0,00891918 0,00709444 2, 079 C 10$3 2, 546 C 10$4

0,5 0,00719188 0,00937818 0,00745954 2, 186 C 10$3 2, 677 C 10$4

0,6 0,00683989 0,00891918 0,00709444 2, 079 C 10$3 2, 546 C 10$4

0,7 0,00581836 0,00758711 0,00603489 1, 769 C 10$3 2, 165 C 10$4

0,8 0,00422728 0,00551236 0,00438461 1, 285 C 10$3 1, 573 C 10$4

0,9 0,00222241 0,00289802 0,00230512 6, 756 C 10$4 8, 271 C 10$5

1,0 0 0 0

Terlihat disini bahwa orde kesalahan metode Crank-Nicolson (kolom ke-6) sedikit lebih ke-

cil dibandingkan metodeBackward-Difference(kolom ke-5). Ini menunjukkan tingkat akurasi

Crank-Nicolson lebih tinggi dibandingkanBackward-Difference.

8.7 PDP Hiperbolik

Pada bagian ini, kita akanmembahassolusi numerik untukpersamaan gelombangyang

meru- pakan salah satu contoh PDP hiperbolik. Persamaan gelombang dinyatakan dalampersamaan diferensial sebagai berikut

H2 0

Ht2(x, t) − ?2 H2 0

Hx2(x, t) = 0, 0 < x <  8, t > 0 (8.61)

Page 245: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 245/279

7 7

8.7. PDP HIPERBOLIK 185

dengan suatu kondisi

0 (0, t) = 0 ( 8, t) = 0, untuk t > 0,

H00 (x, 0) = f (x) , dan (x, 0) = 3 (x) , untuk 0 x  8Ht

dimana? adalah konstanta. Kita tentukan ukurantime-stepsebesark, jarak tiapmesh point

adalahh.

xi  = ih dan t j  = jk

dengani = 0, 1, ..., m dan j = 0, 1, .... Pada bagian interior, posisimesh pointsditentukan

oleh koordinat(xi , t j ), karenanya persamaan gelombang ditulis menjadi

H2 0

Ht2

(xi, t j ) − ?2 H2 0

Hx2

(xi, t j ) = 0 (8.62)

Formulacentered-differencedigunakan sebagai pendekatan numerik persamaan gelombang pa-

da tiap-tiap suku. Untuk turunan kedua terhadapt

H2 0

Ht2(xi, t j ) =

0 (xi , t j+1) − 20 (xi , t j ) + 0 (xi ,t j$1)

k2

dan turunan kedua terhadapx

H2 0

Hx2 (xi, t j ) =

0 (xi+1 , t j ) − 20 (xi , t j ) + 0 (xi$1 ,

t j )h2

Dengan mensubtitusikan kedua persamaan di atas kedalam persamaan (8.62)

0 (xi, t j+1) − 20 (xi, t j ) + 0 (xi, t j$1)

k2− ?2 0 (xi+1 , t j ) − 20 (xi, t j ) + 0 (xi$1, t j )

h2= 0

maka dapat diturunkan formula finite-difference untuk PDP hiperbolik sebagai berikut

wi, j+1 − 2wi, j  + wi, j$1

k2− ?2 wi+1, j  − 2wi, j  + wi$1, j

h2= 0 (8.63)

 Jika$ = ?k)h,maka persamaan ini dapat ditulis kembali

wi, j+1 − 2wi, j  + wi, j$1 − $2 wi+1, j  + 2$2 

wi, j  − $2 wi$1, j  = 0

sehinggawi, j+1 selakusolusi numerik dapat dihitung dengan merubah sedikitsuku-suku

pada formula di atas

wi, j+1  = 2 1 − $2 wi, j  + $2(wi+1, j  + wi$1, j ) − wi, j$1 (8.64)

dengani = 1, 2, ..., m − 1dan j = 1, 2, .... Kondisi syarat batas ditentukan sebagai berikut

w0, j  = wm, j  = 0, untuk j = 1, 2, 3, ... (8.65)

Page 246: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 246/279

186 BAB 8. DIFERENSIAL NUMERIK

sementara kondisi awal dinyatakan

wi,0  = f (xi) , untuk i = 1, 2, ..., m − 1 (8.66)

Berbeda dengan PDP eliptik dan PDP parabolik, pada PDP hiperbolik, untuk menghitung

mesh point( j + 1), diperlukan informasi mesh point( j)dan( j − 1). Hal ini sedikit menim-

 bulkan masalah padalangkah/iterasi pertama karena nilai untuk j = 0 sudah ditentukan

oleh persamaan(8.66) sementara nilai untuk j = 1 untuk menghitungwi,2 , harus diperoleh

lewat kondisi kecepatan awalH0

Ht(x, 0) = 3 (x) , 0 7 x 7  8 (8.67)

Salah satu cara pemecahan dengan pendekatan forward-difference adalah

H0

Ht(xi , 0) =

0 (xi, t1 ) − 0 (xi,

0)

k

(8.68)

H00 (xi, t1) = 0 (xi, 0) + k

Ht(xi, 0)

= 0 (xi, 0) + k3 (xi)

konsekuensinya

wi,1  = wi,0 + k3(xi ), untuk i = 1, 2, ..., m − 1 (8.69)

8.7.1 Contoh

Tentukan solusi dari persamaan gelombang berikut ini

H2 0 H2 0

Ht2−

Hx2= 0, 0 < x < 1, 0 < t

dengan syarat batas

0 (0, t) = 0 ( 8, t) = 0, untuk 0 < t,

dan kondisi mula-mula

0 (x, 0) = ?in Fx, 0 7 x 7 1

H0

Ht= 0, 0 7 x 7 1

menggunakan metode finite-difference, denganm = 4,* = 4, dan + = 1, 0. Bandingkan hasil

yang diperoleh dengan solusi analitik0(x, t) = ;*? Ft ?in Fx.

 Jika persamaan gelombang pada contoh soal ini dibandingkan dengan persamaan (8.61),

maka diketahui nilai? = 1dan 8 = 1. Dari sini, nilaih dapat dihitung, yaituh = 8)m = 1)4 =

0, 25. Sementara nilaik diperoleh darik = + )* = 1, 0)4 = 0, 25. Dengan diketahuinya nilai

?,

h, dank, maka$ dapat dihitung, yaitu$ = ?k)h = 1. Selanjutnya, nilai$ ini dimasukkan ke

Page 247: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 247/279

8.8. LATIHAN 187

persamaan (8.64)

wi, j+1 = 2 1 − $2  wi, j  + $2 (wi+1, j  + wi$1, j  ) −

wi, j$1 wi, j+1 = 2 1 − 12 

wi, j  + 12

(wi+1, j  + wi$1, j )

− wi, j$1 wi, j+1= 0wi, j  + (wi+1, j  + wi$1, j ) − wi, j$1

dimanai bergerak dari 0 sampaim, ataui = 0, 1, 2, 3, 4. Sementara j, bergerak dari 0

sampai

 + )k = 4, atau j = 0, 1, 2, 3, 4.

Catatan kuliah baru sampaisini!!

8.8 Latihan

1. Carilah solusi persamaan differensial elliptik berikut ini dengan pendekatan numerik

menggunakan metodeFinite Difference

H2 0 H20 2 2 -

Hx2+

Hy2= (x + y )e , 0 < x < 2, 0 < y < 1

gunakanh = 0, 2dank = 0, 1

0(0, y) = 1, 0(2, y) = e2- , 0 7 y 7 1

0(x, 0) = 1, 0(x, 1) = e, 0 7 x 7 2

Bandingkan hasilnya dengan solusi analitik0(x, t) = e- .

2. Carilah solusi persamaan differensial parabolik berikut ini dengan pendekatan numerik

menggunakan metodeFinite DifferenceBackward-Difference

H0 1 H2 0

Ht − 16 Hx2 = 0, 0 < x < 1, 0 < t.

0(0, t) = 0(1, t) = 0, 0 < t.

0(x, 0) = 2 ?in 2Fx, 0 7 x 7 1

gunakanm = 3, + = 0, 1, dan* = 2. Bandingkan hasilnya dengan solusi analitik

0(x, t) = 2e$(@2 04)t ?in 2Fx

H0 k2 H20 k3 H3 00 (xi , t1) = 0 (xi, 0) + k

Ht(xi , 0)

+2 Ht2

(xi , 0) +6 Ht3

(xi, AEi ) (8.70)

H2 02 H2 0 2 d7 

2

Page 248: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 248/279

Page 249: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 249/279

188 BAB 8. DIFERENSIAL NUMERIK

2h2

2

?2 k2 k3 H300 (xi, t1 ) = 0 (xi , 0) + k3 (xi)

+

f  F (xi) +2 6 Ht3

(xi , AEi ) (8.72)

wi1  = wi0 + k3 (xi )

+

?2 k2

f  F (xi ) (8.73)2

f (xi+1 ) − 2f (xi) + f (xi$1

) h2 (4)  G

 

f  F (xi) =h2

−12 f  @ (8.74)

k2 ?2

2 3 2 20 (xi, t1) = 0 (xi, 0) + k3 (xi )+

 

f (xi+1 ) − 2f (xi ) + f (xi$1 ) h + =k

+ h k

 

(8.75)

$22 3 2 20 (xi , t1) = 0 (xi, 0) + k3 (xi )

+

 f (xi+1 ) − 2f (xi ) + f (xi$1 ) h + =

k+ h k

 (8.76)

= 1 − $2

f (xi) +

$2

2

f (xi+1) +$2

f (xi$1 ) + k3 (xi) + = k3+ h2 k2 (8.77)

2

wi,1  = 1 − $2 f (xi)

+

$2

2f (xi+1 ) +

$2

2f (xi$1 ) + k3 (xi ) (8.78)

Page 250: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 250/279

 

    3

 

Bab 9

Integral Numerik

✍ Objektif :

⊲ Mengenalkan metode Trape>oida

⊲ Mengenalkan metode impson

⊲ Mengenalkan metode Composite-impson

⊲ Mengenalkan metode Adaptive ?uardrature

⊲ Mengenalkan metode Gaussian ?uadrature

9.1 Metode Trapezoida

Integral terhadap suatu fungsi, f(x), yang dievaluasi dariahinggabdapat dinyatakan oleh

rumus berikut iniH

f  (x)dx (9.1)!

Pendekatan numerik yang paling dasar dalam memecahkan masalah integral adalah metode

Trapezoida, yang dirumuskan sebagai berikut

Hf  (x)dx =

!

h2"f  (x0 ) + f  (x1 )# 

hf  55 (@) (9.2)

12

dimanax0 = a,x1 = b danh = b − a. Akan tetapi, suku yang terakhir pada ruas kanan

dimana terdapat faktor turunan ke-2,f  55 , seringkali diabaikan dengan tujuan agar persamaan

(9.2) menjadi lebih sederhana.

H

f  (x)dx =!

h

2"f  (x0 ) + f  (x1 )# (9.3)

Akibatnya pendekatanTrapezoida hanya bekerjaefektif padafungsi-fungsiyang turunan

kedua-

nya bernilai nol(f  55 = 0). Gambar (9.1) memperlihatkan prinsip metode trapezoida dalam

 bentuk grafik. Sementara, script berikut ini dibuat berdasarkan persamaan (9.3).

189

Page 251: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 251/279

190 BAB 9. INTEGRAL NUMERIK

 

5

 

f(x1) f(x)

f(x0)

x0=a   x

1=b   x

0=a   x

1=b

Gambar 9.1:Metode Trapezoida. Gambar sebelah kiri menunjukkan kurva fungsif  (x) dengan batas bawah integral adalaha dan batas atasb. Gambar sebelah kanan menunjukan cara metode Trapesoi-da menghitung integral dengan cara menghitung luas area integrasi, dimana luas area integrasi samadengan luas trapesium di bawah kurvaf  (x) dalam batas-batasa danb. Jika anda perhatikan dengan

teliti, ada area kecil dibawah garis kurva dan diatas garis miring yang berada diluar bidang trapesium.Metode Trapesoida tidak menghitung luas area kecil tersebut. Disinilah letak kelemahan metode trape-zoida.

1 clear all

2 clc

3

4 a = FFF %aas aa ine0ral;

5 = FFF %aas aas ine0ral;

6

7 = a;

8 1 = ;

9 = #a;10

11 % ## me+e ra$ei+a ##

12 ?nUra$ei+a = :2/(()*(1))

Dengan fungsi eksternal fungsi f(x)adalah

1 'ncin = ()

2 = FFF % r'm's 'n0si an0 +i#ine0ral!an;

9.2 Metode SimpsonMetode pendekatan yang lebih baik dibanding metode Trapezoida dalam integral numerik

adalah metode Simpson yang diformulasikan sebagai berikut

H

f  (x)dx =!

h

3"f  (x0 ) + 4f  (x1 ) + f  (x2 )# 

hf  4

(@) (9.4)90

denganx0 = a,x2 = b, danx1 = a + h dimanah = (b − a))2. Jika suku terakhir diabaikan,

maka H

f  (x)dx =!

h3 "f  (x0 ) + 4f  (x1 ) + f  (x2 )# (9.5)

Gambar (9.2) memperlihatkan prinsip metode trapezoida dalam bentuk grafik. Sementara,

script berikut ini dibuat berdasarkan persamaan (9.5).

Page 252: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 252/279

Page 253: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 253/279

3

5

9.3 Peran faktor pembagi, n

Kalau diamati lebih teliti, akan kita dapatkan bahwa interval [0,2] telah dibagi 2 padametodeSimpson, sementara pada metode Trapesoida tidak dibagi sama sekali. Sebenarnyadengan

membagi interval lebih kecil lagi, makaerror -nya akan semakin kecil. Misalnya, banyaknya

pembagian interval dinyatakan dengann

ketika n = 1:Trapesioda

H 1

0

f  (x)dx =h

2"f  (x0 ) + f  (x1 )# 

hf  55 (@) (9.6)

12

ketikan = 2: Simpson

H 2

0

f  (x)dx =h

3"f  (x0 ) + 4f  (x1 ) + f  (x2 )# 

hf  4

(@) (9.7)90

ketikan = 3: Simpson tiga-per-delapan

H 3

0

f  (x)dx =3h

8"f  (x0 ) + 3f  (x1 ) + 3f  (x2 ) + f  (x3 )#

3h5

80 f  4(@) (9.8)

ketikan = 4:

H4

f  (x)dx =0

2h

45"7f  (x0 ) + 32f  (x1 ) + 12f  (x2 ) + 32f  (x3 ) + 7f  (x4

)# −

8h7

945f  6(@) (9.9)

9.3.1 Source code metode integrasi

Source code untuk persamaan (9.8) disajikan sebagai berikut

1 clc

2 clear all

3

4 % ## aas ine0rasi ##

5 a = ;

6 = 2;

7

8 = a;

9 3 = ;

10 = (#a):3;

11 1 = a * ;

12 2 = a * 2/;

13 % #####################

14

15 % ## me+e sim$sn 3:8 ##

16 ?nU38 = 3/:8/(()*3/(1)*3/(2)*(3))

Sementara, source code untuk persamaan (9.9) disajikan sebagai berikut

Page 254: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 254/279

1 clc

2 clear all

3

Page 255: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 255/279

194 BAB 9. INTEGRAL NUMERIK

0

E

4 % ## aas ine0rasi ##

5 a = ;

6 = 2;

7

8 = a;

9 4 = ;

10 = (#a):4;

11 1 = a * ;

12 2 = a * 2/;

13 3 = a * 3/;

14 % #####################

15

16 % ## me+e sim$sn n=4 ##

17 ?nUn4 = 2/:45/(7/()*32/(1)*12/(2)*32/(3)*7/(4))

Perbandingantingkat akurasi hasil perhitungan seluruh metode integral numerik yang su-

dah dibahas adalah sebagai berikut

f  (x) x2 x4 1)(x + 1)K

1 + x2 ?in x e

Nilai exact 2,667 6,400 1,099 2,958 1,416 6,389Trapezoida 4,000 16,000 1,333 3,326 0,909 8,389Simpsonn=2 2,667 6,667 1,111 2,964 1,425 6,421Simpsonn=3 2,667 6,519 1,105 2,960 1,420 6,403Simpsonn=4 2,667 6,400 1,099 2,958 1,416 6,389

Keempat bentuk persamaan integral numerik di atas dikenal denganclosed Newton-

Cotes

formulas. Keterbatasan metode Newton-Cotes terlihat dari jumlah pembagian interval. Di

atastadipembagian interval baru sampai padan = 4. Bagaimana bila interval evaluasinya

dipersempit supaya solusi numeriknya lebih mendekati solusi exact? Atau dengan kata lain

n > 4.

9.4 Metode Composite-Simpson

Persamaan(9.9)terlihatlebih rumitdibandingkan persamaan-persamaansebelumnya. Bisakah

anda bayangkan bentuk formulasi untukn = 5 ataun = 6 dan seterusnya? Pasti akan lebih

kompleks dibandingkan persamaan (9.9).

Metode CompositeSimpsonmenawarkancara mudahmenghitungintergal numerik ketikanilain > 4. Perhatikan contoh berikut, tentukan solusi numerik dari

< 4edx. MetodeSimpson

denganh = 2 (atau interval evaluasi integral dibagi 2 ,n = 2) memberikan

hasil

H 4

e dx2

e0+ 4e2

+ e4= 56, 76958

0 3

Padahal solusi exact dari integral tersebut adalahe4 − e0 = 53, 59815, artinya terdapat er-

ror sebesar 3,17143 yang dinilai masih terlampau besar untuk ditolerir. Bandingkan dengan

Page 256: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 256/279

2

4

2

4

E

1 2 3 4

 

9.4. METODE COMPOSITE-SIMPSON 193

f(x)

  h

x0=a x

1x

2x

3x

4x

5x

6x7

  xn=b

Gambar 9.3:Metode Composite Simpson. Kurva fungsif  (x) dengan batas bawah integral adalahadan batas atasb. Luas area integrasi dipecah menjadi 8 area kecil dengan lebar masing-masing adalahh.

metode yang sama namun denganh = 1 (atau interval evaluasi integral dibagi 4 ,n =

4)

H

edx  =0

H

e dx +0

H

edx2

 1 e0

31

+ 4e + e2  +1

e2

3

+ 4e3+ e4 

= e0 

+ 4e + 2e2 + 4e3 

+ e4

3= 53, 86385

Hasil ini memperlihatkan error yang makin kecil, yaitu menjadi 0,26570. Jadi dengan mem-

perkecilh, errormenjadi semakinkecil dan itu artinya solusiintegral numerik semakin

mendekati solusi exact. Sekarang kita coba kecilkan lagi nilaih menjadih =1 (atau interval

evaluasi in-

tegral dibagi 8 ,n = 8),

H 4

e dx =

0

H

edx +

0

H

e dx +

1

H

edx +

2

H

e dx

3 1 0E6

e + 4e102 + e + 

6e + 4e302

+ e2+

1 e2 

+ 4e502 + e3 

+ 1 

e3 + 4e702 

+ e4 

6

=1 

6

6

e0+ 4e102 

+ 2e + 4e302 + 2e2

+ 4e502 + 2e3

+ 4e702 + e4

= 53, 61622

dan seperti yang sudah kita duga,error -nya semakin kecil menjadi

0,01807. Prosedur ini dapat digeneralisir menjadi suatu formula sebagai

 berikut

H

f  (x)dx =

n02X H 2 j

f  (x)dx!  j=1

n02

2 j$2

5

Page 257: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 257/279

Page 258: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 258/279

!

 

!

 

    1

9.5. ADAPTIVE QUARDRATURE 195

dimanah = (b − a))n danx j  = a +  jh, untuk j = 1, ..., n)2, denganx0 = a danxn = b. 

Formula ini dapat direduksi menjadi

H

f  (x)dx =!

3f  (x0 ) +

2

(n02)$1X

 j=1

n02

f  (x2 j ) + 4X

f  (x2 j$1 ) + f  (xn )

 − j=1

h5 n02X f  (4)

(@ j ) (9.11)90

 j=1

Formula ini dikenal sebagai metodeComposite Simpson.

9.5 Adaptive Quardrature

Metode composite mensyaratkan luas area integrasi dibagi menjadi sejumlahregiondengan jarak interval yang seragam yaitu sebesar nilaih. Akibatnya, bila metodecomposite

diterapkan pada fungsi yang memiliki variasi yang tinggi dan rendah sekaligus, maka

intervalh yang kecil menjadi kurang efektif, sementara intervalh yang besar mengundang

e11G1 yang besar pula. Metode Adaptive Quadraturemuncul untuk mendapatkan langkah

yang paling efektif dimana nilai intervalh tidak dibuat seragam, melainkan mampu

 beradaptasi sesuai dengan tingkat variasi kurva fungsinya.

Misalnya kita bermaksud mencari solusi numerik dari integral< f  (x)dx dengan toleransi

< > 0. Sebagai langkah awal adalah menerapkan metode Simpson dimana step sizeh = (b −

a))2

dengan

H   h

5

f  (x)dx = >(a, b) −90 

h

(4)() (9.12)

(a, b) =

Langkah berikutnya adalah men

"f  (a) + 4f  (a + h) + f  (b)#3

Hf  (x)dx =

!

h f  (a) + 4f  a +

6

h + 2f (a + h) + 4f a +

2

3h 2 + f  (b)

 

h4

(b −a)

(4)

f 2 180

(AG) (9.13)

9.6 Gaussian Quadrature

Suatu integral dapat ditransformasi kedalam bentuk Gaussian quadrature melalui formulasi

 berikut H

f  (x)dx =

H

f(b − a)t + (b + a) (b −

a)dt (9.14)

! $1 2 2

dimana perubahan variabel memenuhi

t =2x − a −

b b − a / x =1

2"(b − a)t + a + b# (9.15)

Page 259: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 259/279

Berikut adalah table polinomial Legendre untuk penyelesaian Gaussian quadrature

Page 260: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 260/279

Page 261: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 261/279

Page 262: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 262/279

198 BAB 9. INTEGRAL NUMERIK

2

3

Latihan

1. Hitunglah integral-integral berikut ini dengan metode Composite Simpson!

a.H

1

2

x n xdx, n = 4

b.H

0

c.H

1

2

2

x2 + 4

x

x2 + 4

dx, n = 6

dx, n = 8

d.H

$2x3 

edx, n = 4

e.H

0

3@08

5

t!n xdx, n = 8

f .H

3

1K 

x2 − 4dx, n = 8

2. Tentukan nilain danh untuk mengevaluasi

H 2

e2 ?in 3xdx0

dengan metode Composite Simpson, bila error yang ditolerir harus lebih kecil dari10$4

.

3. Dalam durasi 84 detik, kecepatan sebuah mobil balap formula 1 yang sedang melaju di arena

 grandprixdicatat dalam selang interval 6 detik:

time(dt) 0 6 12 18 24 30 36 42 48 54 60 66 72 78 84

peed(f  t)dt) 124 134 148 156 147 133 121 109 99 85 78 89 104 116 123

Gunakan metode integral numerik untuk menghitung panjang lintasan yang telah dilalui mo-

 bil tersebut selama pencatatan waktu di atas!

Page 263: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 263/279

L

2

2

  Bab 10

Mencari Akar

✍ Objektif :

⊲ Menari akar 

10.1 Metode Newton

Metode Newton sangat populer dan powerfulluntuk mencari akar suatu fungsi yang

kontinyu. Ada banyak jalan untukmemperkenalkanmetode ini. Salah satunya bisa didahului

mulai dari deret Taylor atau polinomial Taylor. Suatu fungsi yang kontinyu dapat dinyatakan

dalam deret Taylorsebagai  berikut

f  (x) = f  (x I) + (x x I )f  5 (x I) +(x −

x I)

2

f  55 (@(x))

0 = f  (x I) + (p x I )f  5 (x I) +(p −

x I)

2

f  55 (@(p))

0 = f  (x I) + (p − x I )f  5

(x I )

f  (x)p − x I = − 

f  5

(x I )

f  (x)p E x I − f  5

(x I )

f  (pn$1 )pn  = pn$1 −f  5 

(p

n$1, n 1

)

Page 264: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 264/279

199

Page 265: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 265/279

200 BAB 10. MENCARI AKAR

Gambar 10.1: MetodeNewton

Page 266: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 266/279

Bab 11

Metode MonteCarlo

✍ Objektif :

⊲ Mengenalkan metode Monte Carlo

11.1 Penyederhanaan

Kita awali pembahasan metode Monte Carlo dengan mengetengahkan contoh yang sangat

terkenal yaitu menghitung luas suatu lingkaran. Fugure 1 memperlihatkan lingkaran den-

gan radius1 = 1 berada di dalam kotak bujursangkar. Luas lingkaran adalahF12  = F(1)2  = F

sementara luas bujursangkar adalah(2)2 = 4. Rasio antara luas lingkaran dan luas bola

adalah

60a 6in3ka1an FM = =60a b0 j01an3ka1 4 = 0, 7853981633974483 (11.1)

Gambar 11.1: Lingkaran dan bujursangkar

201

Page 267: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 267/279

Page 268: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 268/279

11.1. PENYEDERHANAAN 203

Gambar 11.3: Dart yang menancap pada bidang1/4 lingkaran dan bujursangkar

Lumayan akurat bukan? Semakin banyak jumlah dart, semakin akurat nilaiFyang anda per-

oleh.

Sekarangmari kitakembangkanmetode Monte Carlo ini untukmenghitungluas suatu

area yang terletak di bawah garis kurva suatu fungsif   (x). Atau sebut saja menghitung

integral suatu fungsif   (x) yang dievaluasi antara batasa dan b. Luas kotakRyang

melingkupi luas bidang integralAadalah

R= 9(x, y) a 7 x 7 b dan 0 7 y7 d: (11.4)

dimana

d = makim0m f  (x) , a 7 x 7 b (11.5)

Page 269: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 269/279

204 BAB 11. METODE MONTE CARLO

Page 270: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 270/279

  Bab 12

Inversi

✍ Objektif :

⊲ Mengenalkan inversi linear 

⊲ Mengenalkan inversi non-linear 

12.1 Inversi Linear

Diketahui data eksperimen tersaji dalam tabel berikut ini

xi yi xi yi

12345

1,33,54,25,07,0

678910

8,810,112,513,015,6

Lalu data tersebut di-plot dalam sumbux dany. Sekilas, kita bisa melihat bahwa data yang

&)

&(

&"

&$

 Y +

)

(

"

$& " ' ( # ) * +   &$

@

telah di-plot tersebut dapat didekati dengan sebuah persamaan garis, yaitua1 xi + a0 .

Artinya,

205

Page 271: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 271/279

206 BAB 12. INVERSI

kita melakukan pendekatan secara linear, dimana fungsi pendekatan-nya adalah

# (xi ) = a1 xi + a0 (12.1)

Problemnya adalah berapakah nilai konstantaa1dana0yangsedemikianrupa, sehingga

posisi

garis tersebut paling mendekati atau bahkan melalui titik-titik data yang telah di-plot di atas?

Dengan kata lain, sebisa mungkinyi sama dengan# (xi )atau dapat diformulasikan sebagai

mX yi − # (xi ) = 0 (12.2)

i=1

mX yi − (a1 xi + a0) = 0 (12.3)

i=1

dimana jumlah data,m = 10. Suku yang berada disebelah kiri dinamakan fungsi error (error

 function), yaitu

m

E(a0 , a1) =X

yi − (a1 xi + a0) (12.4)i=1

Semua data yang diperoleh melalui eksperimen, fungsi error-nya tidak pernah bernilai nol.

 Ja-

di, tidak pernah didapatkan garis yang berhimpit dengan semua titik data ekperimen.

Namun demikian, kita masih bisa berharap agar fungsi error menghasilkan suatu nilai,

dimana nilai tersebut adalah nilai yang paling minimum atau paling mendekati nol.

Harapan tersebut di- wujudkan oleh metodeleast squaredengan sedikit modifikasi pada

fungsi error-nya sehingga menjadi

m

E(a0, a1) =X

"yi − (a1 xi + a0)#2 (12.5)

i=1

Agar fungsi error bisa mencapai nilai minimum, maka syarat yang harus dipenuhi adalah:

HE(a0, a1)= 0 (12.6)

Hai

dimanai = 0dan1, karena dalam kasus ini memang cuma adaa0 dana1 . Maka mesti ada

dua

 buah turunan yaitu:

HE(a0, a1)=

H mX"yi − (a1 xi+ a0)#

2= 0

Ha0 Ha0i=1

m

2 X

(yi − a1 xi − a0)(−1) = 0i=1

Page 272: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 272/279

207 BAB 12. INVERSIm

a0 .m + a1

X xi =

i=1

mX yi (12.7)

i=1

Page 273: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 273/279

i

im

'm

i=1

m '

i=1 xi 

'

im i=1

i

m

12.1. INVERSI LINEAR 207

dan

HE(a0, a1)=

H mX

"yi − (a1 xi+ a0 )#2 = 0Ha1 Ha1i=1

m

2 X

(yi − a1xi − a0 )(−xi ) = 0

i=1

m m m

a0

X xi + a1

X x2

=X

xi yi (12.8)i=1 i=1 i=1

Akhirnya persamaan (12.7) dan (12.8) dapat dicari solusinya berikut ini:

'm 

x2'm

yi −

'm

xi yi 

'm 

xia0 = i=1  i i=1 i=1 i=1 (12.9)i=1 

x2 

− ('m 

xi )2

dan

a1 =

mi=1 xi yi −

'mi=1 yi

(12.10)i=1 

x2 

− ('

m xi )

2

Coba anda bandingkan kedua hasil di atas dengan rumus least square yang terdapat pada

 bukuPraktikum Fisika Dasarkeluaran Departemen Fisika-UI. Mudah-mudahan sama per-

sis. OK, berdasarkan data ekperimen yang ditampilkan pada tabel diawal catatan ini, maka

didapat:

dan

a0 =385(81) − 55(572, 4)

= 0, 360 (12.11)10(385) − (55)2

10(572, 4) − 55(81)a1 = = 1, 538 (12.12)

10(385) − (55)2

 Jadi, fungsi pendekatan-nya,# (xi  ),

adalah

# (xi ) = 1, 538xi − 0, 360 (12.13)

Solusi least square dengan pendekatan persamaan garis seperti ini juga dikenal dengan nama

lain yaituregresi linear. Sedangkan nilaia0 dana1 disebutkoefisienregresi. Gambar di

 bawah ini menampilkan solusi regresi linear tersebut berikut semua titik datanya

Tentu saja anda sudah bisa menduga bahwa selain regresi linear, mungkin saja terdapat

regresi parabola atau quadratik dimana fungsi pendekatannya berupa persamaan parabola,

yaitu:

# (xi ) = a2 x2+ a1xi + a0 (12.14)

dimana koefisien regresinya ada tiga yaitua0  , a1 dana2. Kalau anda menduga demikian,

maka dugaan anda benar! Bahkan sebenarnya tidak terbatas sampai disitu. Secara umum,

fungsi pendekatan,# (xi ), bisa dinyatakan dalam aljabar polinomial berikut ini:

# (xi ) = an xn

+ an$1xn$1 + ... + a2x

2+ a1 xi + a0 (12.15)i i i

Page 274: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 274/279

208 BAB 12. INVERSI

i

"

m'm

" 'm

'mi

'm 'm

&)

P(x) = 1.538*x − 0.36&

&"

&$

+

)

"

$

<"$ " ( ) + &$

Namun untuk saat ini, saya tidak ingin memperluas pembahasan hingga regresi parabola,

dan

polinomial. Saya masih ingin melibatkan peranan metode eliminasi gauss dalam menyele-

saikan problem least square seperti yang selalu saya singgung pada catatan-catatan kuliah

saya yang terdahulu. Nah, kalau metode eliminasi gauss hendak digunakan untuk mencari

solusi regresi linear, kita bisa mulai dari persamaan (12.7) dan (12.8), yaitu:

m

a0.m + a1

xi =i=1

mX 

yi

i=1

m m m

a0

X xi + a1

x2

=X

xiyi

i=1 i=1 i=1

Keduanya bisa dinyatakan dalam operasi matrik:

i=1 xi

# "

a0

#

i=1 yi

#

i=1 xii=1 x

2=

a1 i=1 xi yi

(12.16)

Kalau anda mengikuti catatan-catatan terdahulu, pasti anda tidak asing lagi dengan dengan

semua elemen-elemen matrik di atas. Semua sudah saya ulas pada catatan yang berjudulAp-

likasi Elimininasi Gauss: Model Garis. Silakan anda lanjutkan perhitungan matrik tersebut

hingga diperoleh koefisien regresia0 dana1 . Selamat mencoba!

12.2 Inversi Non-Linear

Persamaan least squares linear adalah sebagai berikut:

"Jt J#Nm = J

t Nd (12.17)

Persamaan least squares non-linear dapat dinyatakan sebagai berikut:

"Jt J + $I#Nm = J

t Nd (12.18)

Page 275: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 275/279

12.2. INVERSI NON-LINEAR 209

dimanaJ adalah matrikkernel, namun dia juga biasa dikenal dengan sebutan matrik Ja-

cobian, sementara$ adalah faktor pengali Lagrange, danIadalah matrik identitas yang or-

denya disesuaikan denganJt 

J. Adapun definisiNm danNd akan dijelaskan pada bagianakhircatatan ini.

Langkah-langkah untuk menyelesaikan problem least squares non-linear

adalah:

1. Menentukan model, misalf  (x) = xm

2. Menghitung jacobian,J. Caranya adalah menghitung turunan pertama dari model ter-

hadap model-parameter,m. Sesuai permisalan pada point 1, didapat

Hf  (x) =Hm

= xm6n(x) (12.19)

3. Membuat perhitungan simulasi, misalnya ditentukanm = 2. Nilaim adalah nilai yang

hendak dicari. Dalam simulasi, nilaim dianggap sudah diketahui bahkan ditentukan.

Lalu hitunglahf   (x) = xm denganx  bergerak darix = 1, 2, 3.., 10. Jadi, nanti akan

didapat

10 buahf  (x). Mau lebih dari 10 juga boleh, terserah saja. Hasil hitungannya dikasih

namad, jadid = f   (x). Karena dalam simulasi inix-nya bergerak hanya sampai 10,

maka

hasilnya mesti ada 10d,yaitud1,  d2  ,  ..,

d10.

4. Buatlah perhitungan untukm sembarang, misal mula-mula dipilihm = 5. Ini adalah

ni- lai awal darimyang akan diiterasikan sedemikian rupa hingga nantinyamakan

menuju

2 sesuai dengan nilaim pada simulasi (point 3). Bagusnya dibedakan penulisannya,

atau tulissaja m0 = 5, dimanam0 maksudnya adalahm mula-mula. Lalu hitung lagi

nilaif   (x) = xm0. Sekarang dinamakand; = f   (x). Jangan lupa bahwa saat

perhitungan, nilaix bergerak dari 1 sampai 10. Jadi, nanti didapat 10d;

.

5. HitunglahNd,dimanaNd = d; − d.Sebelumnya sudah dinyatakan bahwad; ada 10

 buah, demikian jugadada 10 buah, makaNd harus ada 10 buah juga.

6. Selanjutnya hitung||Nd||yang rumusnya seperti ini

 1 ;||Nd|| =

*K(d − d)

2 =1

KNd2

*(12.20)

dimana* = 10karenaNd-nya ada 10. Rumus ini tidak mutlak harus demikian, anda

 bisa juga menggunakan norm 2, 82 .

7. Tentukan nilai epsilon,<,misal< = 0.000001. Lalu lakukan evaluasi sederhana. Cek,

apakah||Nd|| < < ? Pasti awalnya||Nd|| > <, kenapa? Karenam = m0 . Kalau begini

situasinya,Nd yang ada 10 biji itu dimasukan kedalam proses berikutnya.

Page 276: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 276/279

8. Hitunglah operasi matriks berikut ini untuk mendapatkanNm

"Jt J + $I#Nm = J

t Nd (12.21)

Page 277: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 277/279

210 BAB 12. INVERSI

dengan$-nya dikasih nilai sembarang antara 0 dan 1, misalnya$ = 0.005. Perhitungan

ini bisa diselesaikan dengan metode eliminasi gauss.

9. Ganti nilaim0 menjadim1 sesuai dengan rumus

m1= m0

+ Nm (12.22)

Nah,m1 ini dimasukan ke proses yang dijelaskan pada point 4 kemudian proses diu-

langi hingga point 9, begitu seterusnya. Dari sinilah dimulai proses iterasi. Iterasiakan

 berhenti bila||Nd|| < <. Pada saat itu, nilaimk akan mendekatim = 2 sesuai denganm

simulasi.

Selamat mencoba! Saya juga telah menulis beberapa persamaan non-linear sebagai bahan

latihan. Lihat saja di Latihan 1. Tapi tolong diperiksa lagi, apakah jacobiannya sudah be-

nar atau ada kekeliruan. Selanjutnya, kalau ada pertanyaan atau komentar, silakan kirim ke

[email protected]

Page 278: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 278/279

Daftar Pustaka

[1] Burden, R.L. and Faires, J.D., (2001),Numerical Analysis, Seventh Edition,Brooks/Cole,

Thomson Learning Academic Resource Center.

[2] Haliday and Resnick, (2001),Fundamental of Physics,Brooks/Cole, Thomson Learning

Aca- demic Resource Center.

211

Page 279: komputasi_matlab_3.doc

8/15/2019 komputasi_matlab_3.doc

http://slidepdf.com/reader/full/komputasimatlab3doc 279/279

Indeks