Anda di halaman 1dari 226

Komputasi untuk Sains dan Teknik -Menggunakan Matlab-

Supriyanto Suparno ( Website: http://supriyanto.fisika.ui.edu ) ( Email: supri@fisika.ui.ac.id atau supri92@gmail.com )

Edisi III Revisi terakhir tgl: 29 Juni 2010

Departemen Fisika-FMIPA, Univeristas Indonesia Dipublikasikan pertama kali pada September 2007

Untuk

Nina Marliyani

Muflih Syamil

dan

Hasan Azmi

Usia bukan ukuran kedewasaan

( Supriyanto, 2006)

Ketekunan adalah jalan yang terpercaya untuk mengantarkan k ita menuju kesuksesan

( Supriyanto, 2007 )

Kata Pengantar

Alhamdulillah , buku ini memasuki edisi ke-3. Penomoran edisi ini sebenarnya hanya untuk menandakan perubahan isi buku yang semakin kaya metode nume rik dibandingkan dengan edisi-edisi sebelumnya. Pengayaan isi buku ini, sejujurnya, berasal dari sejumlah pertanyaan yang sampai ke mailbox saya, entah itu dalam bentuk konsultasi Tugas Akhir mahasiswa S1 sebagaimana yang saya terima dari mahasiswa UNPAD, 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-pertanyaan itu 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 perkul iahan 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 tahun 2007 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 fis ika 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 akan metode-metode komputasi yang banyak digunakan u ntuk mensimulasikan 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 judul Numerical Analysis edisi ke-7, diterbitkan oleh Penerbit Brooks/Cole, Thomson Learning Aca- demic Resource Center. Disamping itu, buku ini dilengkapi o leh sejumlah contoh aplikasi komputasi pada upaya penyelesaian problem-problem fisika.

Pada edisi ke-3 ini saya mulai menfokuskan menulis script dalam lingkungan Matlab . Padahal, dalam edisi ke-2 yang lalu, script numerik disalin ke dalam 2 bahasa pemrograman, yaitu Fortran77 dan Matlab . Namun mayoritas ditulis dalam Matlab .

Akhirnya saya ingin mengucapkan rasa terima kasih yang tak te rhingga kepada Dede Djuhana yang telah berkenan memberikan format L A T E X-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 ku liah Komputasi Fisika PTA 2006/2007 di Departemen Fisika, FMIPA, Universitas Indonesi a atas diskusi yang berlangsung

iii

iv

selama kuliah. Kepada seluruh mahasiswa dari berbagai unive rsitas di Timur dan di Barat Indonesia juga saya ungkapkan terima kasih atas pertanyaan-pertanyaan yang turut mem- perkaya isi buku ini. Walaupun buku ini masih jauh dari sempurna, namun semoga ia d apat menyumbangkan kontribusi yang berarti untuk kebangkitan ilmu pengetahuan pada diri anak bangsa Indonesia yang saat ini sedang terpuruk. Saya wariskan buku ini untuk siswa dan mahasiswa Indonesia dimanapun mereka berada. Anda berhak memanfaatkan buku ini. Saya izinkan anda untuk meng- copy dan menggunakan buku ini selama itu ditujukan untuk belajar dan bukan untuk tujuan komersial, kecuali kalau saya dapat bagian komisi-nya :) . Bagi yang ingin berdiskusi, memberikan masukan, kritikan dan saran, silakan dikirimkan ke email: supri92@gmail.com

Depok, 8 Juni 2008 Supriyanto Suparno

masukan, kritikan dan saran, silakan dikirimkan ke email: supri92@gmail.com Depok, 8 Juni 2008 Supriyanto Suparno

Daftar Isi

Lembar Persembahan

 

i

Kata Pengantar

iii

Daftar Isi

iv

Daftar Gambar

viii

Daftar Tabel

x

1 Matrik dan Komputasi

 

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

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

4

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

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

6

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

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

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

42

3.4 Matrik dan Eliminasi Gauss

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

43

3.4.1 Matrik Augmentasi

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

43

3.4.2 Penerapan pada contoh pertama

 

44

3.4.3 Source-code dasar

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

47

3.4.4 Optimasi source code

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

49

3.4.5 Pentingnya nilai n

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

56

3.4.6 Jangan puas dulu

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

57

3.4.7 Pivoting

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

57

3.5 Function Eliminasi Gauss

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

58

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

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

75

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

 

99

6.1 Kelebihan Vektor-kolom

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

99

6.2 Pengertian Norm

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

100

6.2.1

Script perhitungan norm dua

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

100

vii

6.2.2 Script perhitungan norm tak hingga

 

101

6.2.3 Perhitungan norm-selisih

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

101

6.3 Iterasi Jacobi

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

102

6.3.1 Script metode iterasi Jacobi

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

105

6.3.2 Stopping criteria

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

113

6.3.3 Fungsi eksternal iterasi Jacobi

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

115

6.4 Iterasi Gauss-Seidel

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

116

6.4.1 Script iterasi Gauss-Seidel

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

118

6.4.2 Algoritma

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.