Komputasi untuk Sains dan Teknik -Dalam Matlab PDF

Title Komputasi untuk Sains dan Teknik -Dalam Matlab
Author Luckyto Septian War
Pages 188
File Size 8.5 MB
File Type PDF
Total Downloads 233
Total Views 314

Summary

Komputasi untuk Sains dan Teknik -Dalam Matlab- Supriyanto Suparno ( Website: http://supriyanto.fisika.ui.edu ) ( Email: [email protected] atau [email protected] ) Edisi III Revisi terakhir tgl: 25 Agustus 2008 Departemen Fisika-FMIPA, Univeristas Indonesia Dipublikasikan pertama kali pada Septe...


Description

Accelerat ing t he world's research.

Komputasi untuk Sains dan Teknik Dalam Matlab Luckyto Septian War

Related papers

Download a PDF Pack of t he best relat ed papers 

Comput at ional Physics wit h MAT LAB Moht ar Yuniant o

Komput asi unt uk Sains dan Teknik -Menggunakan Mat lab Mesin Pt k Bahasa Komput asi Teknis ahmad al imbron

Komputasi untuk Sains dan Teknik -Dalam Matlab-

Supriyanto Suparno ( Website: http://supriyanto.fisika.ui.edu ) ( Email: [email protected] atau [email protected] ) Edisi III Revisi terakhir tgl: 25 Agustus 2008

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

Untuk Nina Marliyani Muflih Syamil dan Hasan Azmi

Ketekunan adalah jalan yang terpercaya untuk mengantarkan kita 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 numerik 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 penulis terima dari mahasiswa UNPAD, UDAYANA, UNESA dan UNSRI serta UI sendiri, ataupun sekedar pertanyaan seputar pekerjaan rumah 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 akan menyajikan sebagian besar yang masih kurang lengkap itu secara bertahap. Ibarat pohon yang akan terus tumbuh semakin besar, buku ini pun memiliki tabiat pertumbuhan sebagaimana pohon itu. Mulai ditulis pada tahun 2005 dengan isi yang seadanya, pokoknya asal tercatat. Kemudian di tahun 2006akhir menjadi catatan perkuliahan Komputasi Fisika. Pengayaan isi terus berlangsung hingga akhir 2007. Lalu di awal tahun 2008 diisi dengan tambahan materi perkuliahan Analisis Numerik. Itulah yang saya maksud dengan tabiat pertumbuhan dari buku ini. Jika saya ditugaskan untuk mengajar mata kuliah Komputasi Fisika lagi pada awal September 2008, saya bertekad akan menurunkan seluruh isi buku ini kepada mahasiswa yang akan mengambil kuliah tersebut. Jadi materi Komputasi Fisika tahun 2007 dan materi Analisis Numerik 2008, digabung jadi satu kedalam satu semester dengan nama mata kuliah Komputasi Fisika. Kepada rekan-rekan mahasiswa yang akan ngambil mata kuliah tersebut, saya sampaikan permohonan maaf jika rencana ini akan membuat anda kurang tidur karena bakal semakin lama berada di depan komputer, menyelesaikan tugas dan report. Secara garis besar, ilmu fisika dapat dipelajari lewat 3 jalan, yaitu pertama, dengan menggunakan 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 pemahaman akan metode-metode komputasi yang banyak digunakan untuk mensimulasikan fenomena 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 Academic Resource Center. Disamping itu, buku ini dilengkapi oleh sejumlah contoh aplikasi komputasi pada upaya penyelesaian problem-problem fisika. iii

iv Pada edisi ke-3 ini saya mulai mencoba membiasakan diri menulis script dalam lingkungan Python dan Octave. Padahal, dalam edisi ke-2 yang lalu, script numerik disalin ke dalam 2 bahasa pemrograman, yaitu Fortran77 dan Matlab. Namun mayoritas ditulis dalam Matlab. Saya ingin ganti ke Python, lantaran dengan Python ataupun Octave, saya dan juga mahasiswa saya tidak perlu menginstal Matlab bajakan ke dalam komputer kami masing-masing. Buku yang sedang anda baca ini masih jauh dari sempurna. Keterkaitan antar Bab berikut isi-nya masih perlu perbaikan. Kondisi ini berpotensi membuat anda bingung, atau setidaknya menjadi kurang fokus. Oleh karena itu saya menghimbau kepada pembaca untuk menfokuskan diri melalui penjelasan singkat berikut ini: • Bab 1 berisi pengenalan matrik, operasi matrik, inisialisasi matrik pada Matlab dan Fortran. Saran saya, setiap pembaca yang masih pemula di dunia pemrograman, harus menguasai Bab I terlebih dahulu. Disamping itu penjelasan lebih terperinci tentang bagaimana menentukan indeks i, j dan k dalam proses looping disajikan pada Bab I, untuk memberi pondasi yang kokoh bagi berdirinya bangunan pemahaman akan teknikteknik numerik selanjutnya. • Untuk mempelajari metode Finite-Difference, dianjurkan mulai dari Bab 1, Bab 2, Bab 4, Bab 7, dan Bab 8.

• Untuk mempelajari dasar-dasar inversi, dianjurkan mulai dari Bab 1, Bab 2, dan Bab 3. Akhirnya saya ingin mengucapkan rasa terima kasih yang tak terhingga kepada Dede Djuhana yang telah berkenan memberikan format LATEX-nya sehingga tampilan tulisan pada buku ini benar-benar layaknya sebuah buku yang siap dicetak. Tak lupa, saya pun sepatutnya berterima kasih kepada seluruh rekan diskusi yaitu para mahasiswa yang telah mengambil mata kuliah Komputasi Fisika PTA 2006/2007 di Departemen Fisika, FMIPA, Universitas Indonesia. Kepada seluruh mahasiswa dari berbagai universitas di Timur dan di Barat Indonesia juga perlu saya tulis disini sebagai ungkapan terima kasih atas pertanyaan-pertanyaan mereka yang turut memperkaya isi buku ini. Walaupun buku ini masih jauh dari sempurna, namun semoga ia dapat menyumbangkan kontribusi yang berarti bagi terciptanya gelombang kebangkitan ilmu pengetahuan pada diri anak bangsa Indonesia yang saat ini sedang terpuruk. Saya wariskan ilmu ini untuk siswa dan mahasiswa Indonesia dimanapun mereka berada. Kalian berhak memanfaatkan buku ini. Saya izinkan kalian 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: [email protected]

Depok, 8 Juni 2008 Supriyanto Suparno

Daftar Isi

Lembar Persembahan

i

Kata Pengantar

iii

Daftar Isi

iv

Daftar Gambar

vii

Daftar Tabel

x

1 Matrik dan Komputasi

1

1.1

Pengenalan matrik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1

1.2

Inisialisasi matrik dalam memori komputer . . . . . . . . . . . . . . . . . . . . . .

2

1.3

Macam-macam matrik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

1.3.1

Matrik transpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

1.3.2

Matrik bujursangkar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

1.3.3

Matrik simetrik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

1.3.4

Matrik diagonal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

1.3.5

Matrik identitas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

1.3.6

Matrik upper-triangular . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

1.3.7

Matrik lower-triangular . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

1.3.8

Matrik tridiagonal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

1.3.9

Matrik diagonal dominan . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

1.3.10 Matrik positive-definite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

1.3.11 Vektor-baris dan vektor-kolom . . . . . . . . . . . . . . . . . . . . . . . . .

6

Operasi matematika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7

1.4.1

Penjumlahan matrik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7

1.4.2

Komputasi penjumlahan matrik . . . . . . . . . . . . . . . . . . . . . . . .

8

1.4.3

Perkalian matrik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

1.4.4

Komputasi perkalian matrik . . . . . . . . . . . . . . . . . . . . . . . . . .

12

1.4.5

Perkalian matrik dan vektor-kolom . . . . . . . . . . . . . . . . . . . . . .

14

1.4.6

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

15

1.5

Penutup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16

1.6

Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16

1.4

2 Metode Eliminasi Gauss

17

2.1

Sistem persamaan linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17

2.2

Triangularisasi dan Substitusi Mundur . . . . . . . . . . . . . . . . . . . . . . . . .

18

v

vi 2.3

Matrik dan Eliminasi Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

2.4

Algoritma eliminasi Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23

2.4.1

Algoritma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25

Contoh aplikasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

29

2.5.1

Menghitung arus listrik . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

29

2.6

Menghitung invers matrik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

31

2.7

Penutup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

37

2.5

3 Aplikasi Eliminasi Gauss pada Masalah Inversi 3.1

39

Inversi Model Garis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

39

3.1.1

Script matlab inversi model garis . . . . . . . . . . . . . . . . . . . . . . . .

42

Inversi Model Parabola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

45

3.2.1

Script matlab inversi model parabola . . . . . . . . . . . . . . . . . . . . .

48

3.3

Inversi Model Bidang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

51

3.4

Contoh aplikasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

53

3.4.1

53

3.2

Menghitung gravitasi di planet X . . . . . . . . . . . . . . . . . . . . . . . .

4 Metode LU Decomposition

61

4.1

Faktorisasi matrik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

61

4.2

Algoritma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

65

5 Metode Iterasi

71

5.1

Kelebihan Vektor-kolom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

71

5.2

Pengertian Norm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

72

5.2.1

Script perhitungan norm dalam Matlab . . . . . . . . . . . . . . . . . . . .

72

5.2.2

Perhitungan norm-selisih . . . . . . . . . . . . . . . . . . . . . . . . . . . .

73

Iterasi Jacobi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

73

5.3.1

Script Matlab metode iterasi Jacobi . . . . . . . . . . . . . . . . . . . . . . .

76

5.3.2

Optimasi script Matlab untuk menghitung iterasi . . . . . . . . . . . . . .

79

5.3.3

Algoritma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

81

5.3.4

Program dalam Fortran . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

82

Iterasi Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

83

5.4.1

Script iterasi Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . . . . . . . .

84

5.4.2

Algoritma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

85

5.4.3

Script iterasi Gauss-Seidel dalam Fortran . . . . . . . . . . . . . . . . . . .

86

Iterasi dengan Relaksasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

87

5.5.1

89

5.3

5.4

5.5

Algoritma Iterasi Relaksasi . . . . . . . . . . . . . . . . . . . . . . . . . . .

6 Interpolasi

91

6.1

Interpolasi Lagrange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

91

6.2

Interpolasi Cubic Spline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

93

vii 7 Diferensial Numerik

101

7.1

Metode Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

7.2

Metode Runge Kutta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 7.2.1

7.3

Aplikasi: Pengisian muatan pada kapasitor . . . . . . . . . . . . . . . . . . 110

Metode Finite Difference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 7.3.1

Script Finite-Difference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

7.3.2

Aplikasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

7.4

Persamaan Diferensial Parsial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

7.5

PDP eliptik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

7.6

7.7

7.5.1

Contoh pertama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

7.5.2

Script Matlab untuk PDP Elliptik . . . . . . . . . . . . . . . . . . . . . . . . 130

7.5.3

Contoh kedua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

PDP parabolik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 7.6.1

Metode Forward-difference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

7.6.2

Contoh ketiga: One dimensional heat equation . . . . . . . . . . . . . . . . . 134

7.6.3

Metode Backward-difference . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

7.6.4

Metode Crank-Nicolson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

PDP Hiperbolik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 7.7.1

7.8

Contoh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

8 Integral Numerik

151

8.1

Metode Trapezoida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

8.2

Metode Simpson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

8.3

Metode Composite-Simpson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

8.4

Adaptive Quardrature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

8.5

Gaussian Quadrature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 8.5.1

Contoh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

8.5.2

Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

9 Mencari Akar 9.1

159

Metode Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

10 Metode Monte Carlo

161

10.1 Penyederhanaan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 11 Inversi

165

11.1 Inversi Linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 11.2 Inversi Non-Linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 Daftar Pustaka

171

Indeks

173

viii

Daftar Gambar

3.1

Sebaran data observasi antara temperatur dan kedalaman . . . . . . . . . . . . .

40

3.2

Grafik data pengukuran gerak batu . . . . . . . . . . . . . . . . . . . . . . . . . . .

54

3.3

Grafik hasil inversi parabola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

57

6.1

Fungsi f (x) dengan sejumlah titik data . . . . . . . . . . . . . . . . . . . . . . . .

93

6.2

Pendekatan dengan polinomial cubic spline . . . . . . . . . . . . . . . . . . . . . .

93

6.3

Profil suatu object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

98

6.4

Sampling titik data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

99

6.5

Hasil interpolasi cubic spline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

99

6.6

Hasil interpolasi lagrange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

7.1

Kiri: Kurva y(t) dengan pasangan titik absis dan ordinat dimana jarak titik absis sebesar h. Pasangan t1 adalah y(t1 ), pasangan t2 adalah y(t2 ), begitu seterusnya. Kanan: Garis singgung yang menyinggung kurva y(t) pada t=a, kemudian berdasarkan garis singgung tersebut, ditentukan pasangan t1 sebagai w1 . Perhatikan gambar itu sekali lagi! w1 dan y(t1 ) beda tipis alias tidak sama persis. . . . . . . . . . . . . . . . . . . . . 102

7.2

Kurva biru adala...


Similar Free PDFs