Komputasi untuk Sains dan Teknik - Universitas Indonesia

staff.fisika.ui.ac.id

Komputasi untuk Sains dan Teknik - Universitas Indonesia

Komputasi untuk Sains dan TeknikSupriyanto Suparno( Website: http://supriyanto.fisika.ui.edu )( Email: supri@fisika.ui.ac.id atau supri92@gmail.com )Edisi IIRevisi terakhir tgl: 28 April 2008Departemen Fisika-FMIPA, Univeristas IndonesiaDipublikasikan pertama kali pada September 2007


UntukNina MarliyaniMuflih SyamildanHasan Azmi


Ketekunan adalah jalan yang terpercaya untuk mengantarkan kita menuju kesuksesan(Supriyanto, 2007)


Kata PengantarSecara garis besar, ilmu fisika dapat dipelajari lewat 3 jalan, yaitu pertama, dengan menggunakankonsep atau teori fisika yang akhirnya melahirkan fisika teori. Kedua, dengan caraeksperimen yang menghasilkan aliran fisika eksperimental, dan ketiga, fisika bisa dipelajarilewat simulasi fenomena alam yang sangat mengandalkan komputer serta algoritma numerik.Tujuan penyusunan buku ini adalah untuk meletakkan pondasi dasar dari bangunan pemahamanakan metode-metode komputasi yang banyak digunakan pada simulasi-simulasi fenomenafisika.Rujukan utama buku ini bersumber pada buku teks standar yang sangat populer di duniakomputasi, yaitu buku yang ditulis oleh Richard L. Burden dan J. Douglas Faires dengan judulNumerical Analysis edisi ke-7, diterbitkan oleh Penerbit Brooks/Cole, Thomson Learning AcademicResource Center. Disamping itu, buku ini dilengkapi oleh sejumlah contoh aplikasikomputasi pada upaya penyelesaian problem-problem fisika.Dalam edisi ke-2 ini, algoritma numerik disalin ke dalam 2 bahasa pemrograman, yaitu Fortran77dan Matlab. Disamping itu penjelasan lebih terperinci tentang bagaimana menentukanindeks i, j dan k dalam proses looping disajikan pada Bab I, untuk memberi pondasi yang sangatpenting bagi berdirinya bangunan pemahaman akan teknik-teknik numerik selanjutnya.Buku yang sedang anda baca ini masih jauh dari sempurna. Keterkaitan antar Bab berikutisi-nya masih perlu perbaikan. Kondisi ini berpotensi membuat anda bingung, atau setidaknyamenjadi kurang fokus. Oleh karena itu saya mencoba anda untuk menfokuskan diri melaluipenjelasan 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 menguasaiBab I terlebih dahulu.• 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 DedeDjuhana yang telah berkenan memberikan format L A TEX-nya sehingga tampilan tulisan padabuku ini benar-benar layaknya sebuah buku yang siap dicetak. Rasa terima kasih juga inginsaya teruskan kepada Sarah Wardhani yang telah memicu langkah awal penulisan bukuini hingga masuk ke Edisi-2. Tak lupa, saya pun sepatutnya berterima kasih kepada seluruhrekan diskusi yaitu para mahasiswa yang telah mengambil mata kuliah Komputasi FisikaPTA 2006/2007 di Departemen Fisika, FMIPA, Universitas Indonesia. Tiga orang mahasiswidari Universitas Pakuan yaitu Eni Nurliani, Saidah Al-adawiyah dan Deni Fitri A juga perluiii


ivsaya tulis disini sebagai ungkapan terima kasih atas pertanyaan-pertanyaan mereka yang turutmemperkaya isi buku ini.Walaupun buku ini masih jauh dari sempurna, namun semoga ia dapat menyumbangkanenergi bagi terciptanya gelombang kebangkitan ilmu pengetahuan pada bangsa Indonesia yangsaat ini sedang terpuruk. Saya wariskan ilmu ini untuk anak bangsa. Saya izinkan anda untukmeng-copy dan menggunakan buku ini selama itu ditujukan untuk belajar dan bukan untuk tujuankomersial. Bagi yang ingin berdiskusi, memberikan masukan, kritikan dan saran, silakandikirimkan ke email: supri92@gmail.comDepok, 16 September 2007Supriyanto Suparno


Daftar IsiLembar PersembahanKata PengantarDaftar IsiDaftar GambarDaftar Tabeliiiiivviix1 Matrik dan Komputasi 11.1 Pengenalan matrik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Inisialisasi matrik dalam memori komputer . . . . . . . . . . . . . . . . . . . . . . 21.3 Macam-macam matrik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.3.1 Matrik transpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.3.2 Matrik bujursangkar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.3.3 Matrik simetrik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.3.4 Matrik diagonal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.3.5 Matrik identitas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.3.6 Matrik upper-triangular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.3.7 Matrik lower-triangular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.3.8 Matrik tridiagonal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.3.9 Matrik diagonal dominan . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.3.10 Matrik positive-definite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.3.11 Vektor-baris dan vektor-kolom . . . . . . . . . . . . . . . . . . . . . . . . . 61.4 Operasi matematika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.4.1 Penjumlahan matrik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.4.2 Komputasi penjumlahan matrik . . . . . . . . . . . . . . . . . . . . . . . . 81.4.3 Perkalian matrik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.4.4 Komputasi perkalian matrik . . . . . . . . . . . . . . . . . . . . . . . . . . 121.4.5 Perkalian matrik dan vektor-kolom . . . . . . . . . . . . . . . . . . . . . . 141.4.6 Komputasi perkalian matrik dan vektor-kolom . . . . . . . . . . . . . . . . 151.5 Penutup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161.6 Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 Metode Eliminasi Gauss 172.1 Sistem persamaan linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.2 Triangularisasi dan Substitusi Mundur . . . . . . . . . . . . . . . . . . . . . . . . . 18v


vi2.3 Matrik dan Eliminasi Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.4 Algoritma eliminasi Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.4.1 Algoritma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.5 Contoh aplikasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292.5.1 Menghitung arus listrik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292.6 Menghitung invers matrik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312.7 Penutup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 Aplikasi Eliminasi Gauss pada Masalah Inversi 393.1 Inversi Model Garis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393.1.1 Script matlab inversi model garis . . . . . . . . . . . . . . . . . . . . . . . . 423.2 Inversi Model Parabola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453.2.1 Script matlab inversi model parabola . . . . . . . . . . . . . . . . . . . . . 483.3 Inversi Model Bidang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513.4 Contoh aplikasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533.4.1 Menghitung gravitasi di planet X . . . . . . . . . . . . . . . . . . . . . . . . 534 Metode LU Decomposition 614.1 Faktorisasi matrik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614.2 Algoritma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655 Metode Iterasi 715.1 Kelebihan Vektor-kolom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715.2 Pengertian Norm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725.2.1 Script perhitungan norm dalam Matlab . . . . . . . . . . . . . . . . . . . . 725.2.2 Perhitungan norm-selisih . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735.3 Iterasi Jacobi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735.3.1 Script Matlab untuk menghitung iterasi . . . . . . . . . . . . . . . . . . . . 765.3.2 Optimasi script Matlab untuk menghitung iterasi . . . . . . . . . . . . . . 805.3.3 Algoritma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 825.3.4 Program dalam Fortran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 825.4 Iterasi Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 845.4.1 Script iterasi Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 855.4.2 Algoritma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 875.4.3 Script iterasi Gauss-Seidel dalam Fortran . . . . . . . . . . . . . . . . . . . 875.5 Iterasi dengan Relaksasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 895.5.1 Algoritma Iterasi Relaksasi . . . . . . . . . . . . . . . . . . . . . . . . . . . 906 Interpolasi 936.1 Interpolasi Lagrange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 936.2 Interpolasi Cubic Spline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95


vii7 Diferensial Numerik 1037.1 Metode Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1037.2 Metode Runge Kutta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1067.3 Metode Finite Difference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1137.3.1 Script Finite-Difference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1157.3.2 Aplikasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1208 Persamaan Diferensial Parsial Numerik 1238.1 Pendahuluan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1238.2 PDP eliptik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1248.2.1 Contoh pertama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1268.2.2 Script Matlab untuk PDP Elliptik . . . . . . . . . . . . . . . . . . . . . . . . 1298.2.3 Contoh kedua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1318.3 PDP parabolik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1328.3.1 Metode Forward-difference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1328.3.2 Contoh ketiga: One dimensional heat equation . . . . . . . . . . . . . . . . . 1338.3.3 Metode Backward-difference . . . . . . . . . . . . . . . . . . . . . . . . . . . 1388.3.4 Metode Crank-Nicolson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1428.4 PDP Hiperbolik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1458.4.1 Contoh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1478.5 Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1489 Integral Numerik 1519.1 Metode Trapezoida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1519.2 Metode Simpson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1529.3 Metode Composite-Simpson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1539.4 Adaptive Quardrature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1559.5 Gaussian Quadrature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1569.5.1 Contoh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1569.5.2 Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15710 Metode Newton 15910.1 Penyederhanaan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15911 Metode Monte Carlo 16111.1 Penyederhanaan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16112 Inversi 16512.1 Inversi Linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16512.2 Inversi Non-Linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169Daftar Pustaka 171Indeks 173


viii


Daftar Gambar3.1 Sebaran data observasi antara temperatur dan kedalaman . . . . . . . . . . . . . 403.2 Grafik data pengukuran gerak batu . . . . . . . . . . . . . . . . . . . . . . . . . . . 543.3 Grafik hasil inversi parabola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576.1 Fungsi f(x) dengan sejumlah titik data . . . . . . . . . . . . . . . . . . . . . . . . 956.2 Pendekatan dengan polinomial cubic spline . . . . . . . . . . . . . . . . . . . . . . 956.3 Profil suatu object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1006.4 Sampling titik data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1016.5 Hasil interpolasi cubic spline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1016.6 Hasil interpolasi lagrange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027.1 Metode Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1047.2 Trend error metode euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1067.3 Rangkaian RC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1097.4 Kurva muatan q terhadap waktu t . . . . . . . . . . . . . . . . . . . . . . . . . . . 1127.5 Kurva suatu fungsi f(x) yang dibagi sama besar berjarak h. Evaluasi kurva yangdilakukan Finite-Difference dimulai dari batas bawah X 0 = a hingga batas atasx 6 = b . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1148.1 Skema grid lines dan mesh points pada aplikasi metode Finite-Difference . . . . . . 1248.2 Susunan grid lines dan mesh points untuk mensimulasikan distribusi temperaturpada lempeng logam sesuai contoh satu . . . . . . . . . . . . . . . . . . . . . . . . 1278.3 Sebatang logam dengan posisi titik-titik simulasi (mesh-points) distribusi temperatur.Jarak antar titik ditentukan sebesar h = 0,1. . . . . . . . . . . . . . . . . . . . . . . . . 1348.4 Interval mesh-points dengan jarak h = 0,1 dalam interval waktu k = 0,0005 . . . . . . . 1348.5 Posisi mesh-points. Arah x menunjukkan posisi titik-titik yang dihitung dengan forwarddifference,sedangkan arah t menunjukkan perubahan waktu yg makin meningkat . . . . 1349.1 Metode Trapezoida. Gambar sebelah kiri menunjukkan kurva fungsi f(x) dengan batasbawah integral adalah a dan batas atas b. Gambar sebelah kanan menunjukan carametode Trapesoida menghitung luas area integrasi, dimana luas area adalah sama denganluas trapesium di bawah kurva f(x) dalam batas-batas a dan b . . . . . . . . . . . 1529.2 Metode Simpson. Gambar sebelah kiri menunjukkan kurva fungsi f(x) dengan batasbawah integral adalah a dan batas atas b. Gambar sebelah kanan menunjukan carametode Simpson menghitung luas area integrasi, dimana area integrasi di bawah kurvaf(x) dibagi 2 dalam batas-batas a dan b . . . . . . . . . . . . . . . . . . . . . . . . . . 152ix


xDAFTAR GAMBAR9.3 Metode Composite Simpson. Kurva fungsi f(x) dengan batas bawah integral adalah adan batas atas b. Luas area integrasi dipecah menjadi 8 area kecil dengan lebar masingmasingadalah h. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15410.1 Metode Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16011.1 Lingkaran dan bujursangkar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16211.2 Dart yang menancap pada bidang lingkaran dan bujursangkar . . . . . . . . . . . 16211.3 Dart yang menancap pada bidang 1/4 lingkaran dan bujursangkar . . . . . . . . 163


Daftar Tabel3.1 Data temperatur bawah permukaan tanah terhadap kedalaman . . . . . . . . . . 393.2 Data temperatur bawah permukaan tanah terhadap kedalaman . . . . . . . . . . 453.3 Data ketinggian terhadap waktu dari planet X . . . . . . . . . . . . . . . . . . . . 535.1 Hasil akhir elemen-elemen vektor x hingga iterasi ke-10 . . . . . . . . . . . . . . . 795.2 Hasil perhitungan norm-selisih (dengan l 2 ) hingga iterasi ke-10 . . . . . . . . . . 815.3 Hasil Iterasi Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 855.4 Hasil perhitungan iterasi Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . . . . . 905.5 Hasil perhitungan iterasi Relaksasi dengan ω = 1, 25 . . . . . . . . . . . . . . . . . 908.1 Hasil simulasi distribusi panas bergantung waktu dalam 1-dimensi. Kolom ke-2 adalahsolusi analitik/exact, kolom ke-3 dan ke-5 adalah solusi numerik forward-difference. Kolomke-4 dan ke-6 adalah selisih antara solusi analitik dan numerik . . . . . . . . . . . . . . 1388.2 Hasil simulasi distribusi panas bergantung waktu dalam 1-dimensi dengan metode backwarddifferencedimana k = 0,01 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1428.3 Hasil simulasi distribusi panas bergantung waktu (t) dalam 1-dimensi denganmetode backward-difference dan Crank-Nicolson . . . . . . . . . . . . . . . . . . . . 1459.1 Polinomial Legendre untuk n=2,3,4 dan 5 . . . . . . . . . . . . . . . . . . . . . . . 156xi


xiiDAFTAR TABEL


Bab 1Matrik dan Komputasi✍ Objektif :⊲ Mengenalkan matrik dan jenis-jenis matrik.⊲ Mengenalkan operasi penjumlahan dan perkalian matrik.⊲ Mendeklarasikan elemen-elemen matrik ke dalam memori komputer.⊲ Membuat script operasi matrik.1.1 Pengenalan matrikNotasi suatu matrik berukuran n x m ditulis dengan huruf besar dan dicetak tebal, misalnyaA n×m . Huruf n menyatakan jumlah baris, dan huruf m jumlah kolom. Suatu matrik tersusundari elemen-elemen yang dinyatakan dengan huruf kecil diikuti angka-angka indeks, misalnyaa ij , dimana indeks i menunjukan posisi baris ke-i dan indeks j menentukan posisi kolom ke-j.⎡⎤a 11 a 12 . . . a 1maA = (a ij ) =21 a 22 . . . a 2m⎢⎥(1.1)⎣ . . . ⎦a n1 a n2 . . . a nmA =Contoh 1: Matrik A 2×3 [ ]3 8 56 4 7dimana masing-masing elemennya adalah a 11 = 3, a 12 = 8, a 13 = 5, a 21 = 6, a 22 = 4, dana 23 = 7.Contoh 2: Matrik B 3×2⎡ ⎤1 3⎢ ⎥B = ⎣5 9⎦2 41


2 BAB 1. MATRIK DAN KOMPUTASIdimana masing-masing elemennya adalah b 11 = 1, b 12 = 3, b 21 = 5, b 22 = 9, b 31 = 2, danb 32 = 4.1.2 Inisialisasi matrik dalam memori komputerDalam bahasa pemrograman Fortran77, cara mengisi memori komputer dengan elemen-elemenmatrik A 2×3 , sesuai dengan Contoh 1 adalah1 A(1,1) = 32 A(1,2) = 83 A(1,3) = 54 A(2,1) = 65 A(2,2) = 46 A(2,3) = 7Sedangkan untuk matrik B 3×2 , sesuai Contoh 2 adalah1 B(1,1) = 12 B(1,2) = 33 B(2,1) = 54 B(2,2) = 95 B(3,1) = 26 B(3,2) = 4Sementara dalam Matlab, cara mengisi memori komputer dengan elemen-elemen matrikA 2×3 , sesuai dengan Contoh 1 adalah1 clear all2 clc34 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 ASedangkan untuk matrik B 3×2 , sesuai Contoh 2 adalah1 clear all2 clc34 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 BIni bukan satu-satunya cara menginisialisasi suatu matrik, disamping itu, ada juga cara lainyang relatif lebih mudah. Misalnya untuk matrik A bisa ditulis sebagai berikut


1.3. MACAM-MACAM MATRIK 31 clear all2 clc34 A=[ 3 8 55 6 4 7 ];67 B=[ 1 38 5 99 2 4 ];atau1 clear all2 clc34 A=[ 3 8 5 ; 6 4 7 ];5 B=[ 1 3 ; 5 9 ; 2 4];1.3 Macam-macam matrik1.3.1 Matrik transposeOperasi transpose terhadap suatu matrik akan menukar elemen-elemen dalam satu kolommenjadi elemen-elemen dalam satu baris; demikian pula sebaliknya. Notasi matrik tranposeadalah A T atau A t .Contoh 3: Operasi transpose terhadap matrik A⎡ ⎤[ ] 3 63 8 5A =A t ⎢ ⎥= ⎣8 4⎦6 4 75 71.3.2 Matrik bujursangkarMatrik bujursangkar adalah matrik yang jumlah baris dan jumlah kolomnya sama.Contoh 4: Matrik bujursangkar berukuran 3x3 atau sering juga disebut matrik bujursangkarorde 3⎡ ⎤1 3 8⎢ ⎥A = ⎣5 9 7⎦2 4 61.3.3 Matrik simetrikMatrik simetrik adalah matrik bujursangkar yang elemen-elemen matrik A bernilai sama denganmatrik transpose-nya (A t ).


4 BAB 1. MATRIK DAN KOMPUTASIContoh 5: Matrik simetrik⎡⎤2 −3 7 1A =−3 5 6 −2⎢⎣ 7 6 9 8⎥⎦1 −2 8 10⎡⎤2 −3 7 1A t =−3 5 6 −2⎢⎣ 7 6 9 8⎥⎦1 −2 8 101.3.4 Matrik diagonalMatrik diagonal adalah matrik bujursangkar yang seluruh elemen-nya bernilai 0 (nol), kecualielemen-elemen diagonalnya.Contoh 6: Matrik diagonal orde 3A =⎡ ⎤11 0 0⎢ ⎥⎣ 0 29 0 ⎦0 0 611.3.5 Matrik identitasMatrik identitas adalah matrik bujursangkar yang semua elemen-nya bernilai 0 (nol), kecualielemen-elemen diagonal yang seluruhnya bernilai 1.Contoh 7: Matrik identitas orde 3⎡ ⎤1 0 0⎢ ⎥I = ⎣0 1 0⎦0 0 11.3.6 Matrik upper-triangularMatrik upper-tringular adalah matrik bujursangkar yang seluruh elemen dibawah elemen diagonalbernilai 0 (nol).Contoh 8: Matrik upper-triangular⎡ ⎤3 6 2 1A =0 4 1 5⎢⎣0 0 8 7⎥⎦0 0 0 91.3.7 Matrik lower-triangularMatrik lower-tringular adalah matrik bujursangkar yang seluruh elemen diatas elemen diagonalbernilai 0 (nol).


1.3. MACAM-MACAM MATRIK 5Contoh 9: Matrik lower-triangular⎡⎤12 0 0 0A =32 −2 0 0⎢⎣ 8 7 11 0⎥⎦−5 10 6 91.3.8 Matrik tridiagonalMatrik tridiagonal adalah matrik bujursangkar yang seluruh elemen bukan 0 (nol) berada disekitarelemen diagonal, sementara elemen lainnya bernilai 0 (nol).Contoh 10: Matrik tridiagonal⎡ ⎤3 6 0 0A =2 −4 1 0⎢⎣0 5 8 −7⎥⎦0 0 3 91.3.9 Matrik diagonal dominanMatrik diagonal dominan adalah matrik bujursangkar yang memenuhi|a ii | >n∑j=1,j≠idimana i=1,2,3,..n. Coba perhatikan matrik-matrik berikut ini⎡ ⎤ ⎡ ⎤7 2 0 6 4 −3⎢ ⎥ ⎢ ⎥A = ⎣3 5 −1⎦ B = ⎣ 4 −2 0 ⎦0 5 −6|a ij | (1.2)−3 0 1Pada elemen diagonal a ii matrik A, |7| > |2|+|0|, lalu |5| > |3|+|−1|, dan |−6| > |5|+|0|. Makamatrik A disebut matrik diagonal dominan. Sekarang perhatikan elemen diagonal matrik B,|6| < |4|+|−3|, | −2| < |4|+|0|, dan |1| < | −3|+|0|. Dengan demikian, matrik B bukan matrikdiagonal dominan.1.3.10 Matrik positive-definiteSuatu matrik dikatakan positive-definite bila matrik tersebut simetrik dan memenuhix t Ax > 0 (1.3)


6 BAB 1. MATRIK DAN KOMPUTASIContoh 11: Diketahui matrik simetrik berikut⎡ ⎤2 −1 0⎢ ⎥A = ⎣−1 2 −1⎦0 −1 2untuk menguji apakah matrik A bersifat positive-definite, makax t Ax ==⎡ ⎤⎡⎤] 2 −1 0 x 1⎢ ⎥⎢⎥[x 1 x 2 x 3 ⎣−1 2 −1⎦⎣x 2 ⎦0 −1 2 x 3⎡⎤] 2x 1 − x 2⎢⎥[x 1 x 2 x 3 ⎣−x 1 + 2x 2 − x 3 ⎦−x 2 + 2x 3= 2x 2 1 − 2x 1 x 2 + 2x 2 2 − 2x 2 x 3 + 2x 2 3= x 2 1 + (x 2 1 − 2x 1 x 2 + x 2 2) + (x 2 2 − 2x 2 x 3 + x 2 3) + x 2 3= x 2 1 + (x 1 − x 2 ) 2 + (x 2 − x 3 ) 2 + x 2 3Dari sini dapat disimpulkan bahwa matrik A bersifat positive-definite, karena memenuhikecuali jika x 1 =x 2 =x 3 =0.x 2 1 + (x 1 − x 2 ) 2 + (x 2 − x 3 ) 2 + x 2 3 > 01.3.11 Vektor-baris dan vektor-kolomNotasi vektor biasanya dinyatakan dengan huruf kecil dan dicetak tebal. Suatu matrik dinamakanvektor-baris berukuran m, bila hanya memiliki satu baris dan m kolom, yang dinyatakansebagai berikut]]a =[a 11 a 12 . . . a 1m =[a 1 a 2 . . . a m (1.4)Sedangkan suatu matrik dinamakan vektor-kolom berukuran n, bila hanya memiliki satu kolomdan n baris, yang dinyatakan sebagai berikut⎡ ⎤ ⎡ ⎤a 11 a 1aa =21⎢ ⎥⎣ . ⎦ = a 2⎢ ⎥(1.5)⎣ . ⎦a n1 a n


1.4. OPERASI MATEMATIKA 71.4 Operasi matematika1.4.1 Penjumlahan matrikOperasi penjumlahan pada dua buah matrik hanya bisa dilakukan bila kedua matrik tersebutberukuran sama. Misalnya matrik C 2×3[ ]9 5 3C =7 2 1dijumlahkan dengan matrik A 2×3 , lalu hasilnya (misalnya) dinamakan matrik D 2×3D = A + CD ===[ ] [ ]3 8 5 9 5 3+6 4 7 7 2 1[]3 + 9 8 + 5 5 + 36 + 7 4 + 2 7 + 1[ ]12 13 813 6 8Tanpa mempedulikan nilai elemen-elemen masing-masing matrik, operasi penjumlahan antaramatrik A 2×3 dan C 2×3 , bisa juga dinyatakan dalam indeks masing-masing dari kedua matriktersebut, yaituDijabarkan satu persatu sebagai berikut[ ] []d 11 d 12 d 13 a 11 + c 11 a 12 + c 12 a 13 + c 13=d 21 d 22 d 23 a 21 + c 21 a 22 + c 22 a 23 + c 23d 11 = a 11 + c 11d 12 = a 12 + c 12d 13 = a 13 + c 13 (1.6)d 21 = a 21 + c 21d 22 = a 22 + c 22d 23 = a 23 + c 23Dari sini dapat diturunkan sebuah rumus umum penjumlahan dua buah matrikd ij = a ij + c ij (1.7)dimana i=1,2 dan j=1,2,3.


8 BAB 1. MATRIK DAN KOMPUTASI1.4.2 Komputasi penjumlahan matrikBerdasarkan contoh operasi penjumlahan di atas, indeks j pada persamaan (1.7) lebih cepatberubah dibanding indeks i sebagaimana ditulis pada persamaan (1.6),d 11 = a 11 + c 11d 12 = a 12 + c 12d 13 = a 13 + c 13Jelas terlihat, ketika indeks i masih bernilai 1, indeks j sudah berubah dari nilai 1 sampai3. Hal ini membawa konsekuensi pada script pemrograman, dimana looping untuk indeks jharus diletakkan di dalam looping indeks i. Pokoknya yang looping-nya paling cepat harusdiletakkan paling dalam; sebaliknya, looping paling luar adalah looping yang indeksnyapaling jarang berubah.Dalam matlab, algoritma penjumlahan dua matrik ditulis sebagai berikut:1 for i=1:22 for j=1:33 D(i,j)=A(i,j)+C(i,j);4 end5 endSedangkan dalam Fortran77, operasi penjumlahan antara matrik ditulis sebagai berikut: A 2×3dan C 2×3 adalah1 do i=1,22 do j=1,33 D(i,j)=A(i,j)+C(i,j)4 end do5 end doPerhatikan kedua script di atas! Penulisan indeks i harus didahulukan daripada indeks j.Perlu dicatat bahwa ukuran matrik tidak terbatas hanya 2x3. Tentu saja anda bisa mengubahukurannya sesuai dengan keperluan atau kebutuhan anda. Jika ukuran matrik dinyatakansecara umum sebagai n x m, dimana n adalah jumlah baris dan m adalah jumlah kolom,maka bentuk pernyataan komputasinya dalam matlab menjadi1 for i=1:n2 for j=1:m3 D(i,j)=A(i,j)+C(i,j);4 end5 endsedangkan dalam Fortran771 do i=1,n2 do j=1,m3 D(i,j)=A(i,j)+C(i,j)


1.4. OPERASI MATEMATIKA 94 end do5 end doSekarang, mari kita lengkapi dengan contoh sebagai berikut: diketahui matrik A 2×3[ ]3 8 5A =6 4 7dan matrik C 2×3 [ ]9 5 3C =7 2 1Program untuk menjumlahkan kedua matrik tersebut dalam matlab adalah:1 clear all2 clc34 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 C(1,1) = 9;11 C(1,2) = 5;12 C(1,3) = 3;13 C(2,1) = 7;14 C(2,2) = 2;15 C(2,3) = 1;16 n=217 m=318 for i=1:n19 for j=1:m20 D(i,j)=A(i,j)+C(i,j);21 end22 endsedangkan dalam Fortran771 A(1,1) = 32 A(1,2) = 83 A(1,3) = 54 A(2,1) = 65 A(2,2) = 46 A(2,3) = 77 C(1,1) = 98 C(1,2) = 59 C(1,3) = 310 C(2,1) = 711 C(2,2) = 212 C(2,3) = 113 n=214 m=315 do i=1,n16 do j=1,m


10 BAB 1. MATRIK DAN KOMPUTASI17 D(i,j)=A(i,j)+C(i,j)18 end do19 end do1.4.3 Perkalian matrikOperasi perkalian dua buah matrik hanya bisa dilakukan bila jumlah kolom matrik pertamasama dengan jumlah baris matrik kedua. Jadi kedua matrik tersebut tidak harus berukuransama seperti pada penjumlahan dua matrik. Misalnya matrik A 2×3 dikalikan dengan matrikB 3×2 , lalu hasilnya (misalnya) dinamakan matrik E 2×2E 2×2 = A 2×3 .B 3×2E ===[ ] ⎡ ⎤1 33 8 5 ⎢ ⎥ ⎣ 5 9⎦6 4 72 4[]3.1 + 8.5 + 5.2 3.3 + 8.9 + 5.46.1 + 4.5 + 7.2 6.3 + 4.9 + 7.4[ ]53 10140 82Tanpa mempedulikan nilai elemen-elemen masing-masing matrik, operasi perkalian antaramatrik A 2×3 dan B 3×2 , bisa juga dinyatakan dalam indeks masing-masing dari kedua matriktersebut, yaitu[ ] []e 11 e 12 a 11 .b 11 + a 12 .b 21 + a 13 .b 31 a 11 .b 12 + a 12 .b 22 + a 13 .b 32=e 21 e 22 a 21 .b 11 + a 22 .b 21 + a 23 .b 31 a 21 .b 12 + a 22 .b 22 + a 23 .b 32Bila dijabarkan, maka elemen-elemen matrik E 2×2 adalahe 11 = a 11 .b 11 + a 12 .b 21 + a 13 .b 31 (1.8)e 12 = a 11 .b 12 + a 12 .b 22 + a 13 .b 32 (1.9)e 21 = a 21 .b 11 + a 22 .b 21 + a 23 .b 31 (1.10)e 22 = a 21 .b 12 + a 22 .b 22 + a 23 .b 32 (1.11)Sejenak, mari kita amati perubahan pasangan angka-angka indeks yang mengiringi elemen e,a dan b pada persamaan (1.8) sampai persamaan (1.11). Perhatikan perubahan angka indeks


1.4. OPERASI MATEMATIKA 11pertama pada elemen e seperti berikut inie 1.. = ..e 1.. = ..e 2.. = ..e 2.. = ..Pola perubahan yang sama akan kita dapati pada angka indeks pertama dari elemen ae 1.. = a 1.. .b ... + a 1.. .b ... + a 1.. .b ...e 1.. = a 1.. .b ... + a 1.. .b ... + a 1.. .b ...e 2.. = a 2.. .b ... + a 2.. .b ... + a 2.. .b ...e 2.. = a 2.. .b ... + a 2.. .b ... + a 2.. .b ...Dengan demikian kita bisa mencantumkan huruf i sebagai pengganti angka-angka indeksyang polanya samae i.. = a i.. .b ... + a i.. .b ... + a i.. .b ...e i.. = a i.. .b ... + a i.. .b ... + a i.. .b ...e i.. = a i.. .b ... + a i.. .b ... + a i.. .b ...e i.. = a i.. .b ... + a i.. .b ... + a i.. .b ...dimana i bergerak mulai dari angka 1 hingga angka 2, atau kita nyatakan i=1,2. Selanjutnya,masih dari persamaan (1.8) sampai persamaan (1.11), marilah kita perhatikan perubahan angkaindeks masih pada elemen e dan elemen b,e i1 = a i.. .b ..1 + a i.. .b ..1 + a i.. .b ..1e i2 = a i.. .b ..2 + a i.. .b ..2 + a i.. .b ..2e i1 = a i.. .b ..1 + a i.. .b ..1 + a i.. .b ..1e i2 = a i.. .b ..2 + a i.. .b ..2 + a i.. .b ..2Dengan demikian kita bisa mencantumkan huruf j sebagai pengganti angka-angka indeksyang polanya samae ij = a i.. .b ..j + a i.. .b ..j + a i.. .b ..je ij = a i.. .b ..j + a i.. .b ..j + a i.. .b ..je ij = a i.. .b ..j + a i.. .b ..j + a i.. .b ..je ij = a i.. .b ..j + a i.. .b ..j + a i.. .b ..j


12 BAB 1. MATRIK DAN KOMPUTASIdimana 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 angkaindeks masih pada elemen a dan elemen b, dimana kita akan dapati pola sebagai berikute ij = a i1 .b 1j + a i2 .b 2j + a i3 .b 3je ij = a i1 .b 1j + a i2 .b 2j + a i3 .b 3je ij = a i1 .b 1j + a i2 .b 2j + a i3 .b 3je ij = a i1 .b 1j + a i2 .b 2j + a i3 .b 3jDan kita bisa mencantumkan huruf k sebagai pengganti angka-angka indeks yang polanyasama, dimana k bergerak mulai dari angka 1 hingga angka 3, atau kita nyatakan k=1,2,3.e ij = a ik .b kj + a ik .b kj + a ik .b kje ij = a ik .b kj + a ik .b kj + a ik .b kje ij = a ik .b kj + a ik .b kj + a ik .b kje ij = a ik .b kj + a ik .b kj + a ik .b kjKemudian secara sederhana dapat ditulis sebagai berikute ij = a ik .b kj + a ik .b kj + a ik .b kj (1.12)Selanjutnya dapat ditulis pula formula berikute ij =dimana i=1,2; j=1,2; dan k=1,2,3.3∑a ik b kj (1.13)k=1Berdasarkan contoh ini, maka secara umum bila ada matrik A n×m yang dikalikan dengan matrikB m×p , akan didapatkan matrik E n×p dimana elemen-elemen matrik E memenuhim∑e ij = a ik b kj (1.14)dengan i=1,2,. . . ,n; j=1,2. . . ,p; dan k=1,2. . . ,m.k=11.4.4 Komputasi perkalian matrikKomputasi operasi perkalian antara matrik A 2×3 dan B 3×2 dilakukan melalui 2 tahap; pertamaadalah memberikan nilai 0 (nol) pada elemen-elemen matrik E 2×2 dengan cara (dalam matlab)1 for i=1:22 for j=1:23 E(i,j)=0.0;4 end5 end


1.4. OPERASI MATEMATIKA 13dalam Fortran771 do i=1,22 do j=1,23 E(i,j)=0.04 end do5 end dokedua adalah menghitung perkalian matrik dengan cara (dalam matlab)1 for i=1:22 for j=1:23 for k=1:34 E(i,j)=E(i,j)+A(i,k)*B(k,j);5 end6 end7 enddalam Fortran771 do i=1,22 do j=1,23 do k=1,34 E(i,j)=E(i,j)+A(i,k)*B(k,j)5 end do6 end do7 end doSebentar.., sebelum dilanjut tolong perhatikan penempatan indeks i, j dan k pada script di atas.Mengapa indeks i didahulukan daripada indeks j dan k? Ini bukan sesuatu yang kebetulan.Dan ini juga bukan sekedar mengikuti urutan huruf abjad i,j,k. Sekali lagi ingin saya tegaskanbahwa penempatan yang demikian semata-mata mengikuti aturan umum yaitu looping yangindeksnya berubah paling cepat harus diletakkan paling dalam; sebaliknya, looping palingluar adalah looping yang indeksnya paling jarang berubah. Kalau anda perhatikan denganteliti, pasti anda akan menemukan fakta bahwa indeks k paling cepat berubah. Kemudiandisusul oleh indeks j. Lalu yang paling jarang berubah adalah indeks i. Itulah sebabnya,penempatan urutan indeks pada script di atas harus dimulai dari i terlebih dahulu sebagailooping terluar, kemudian indeks j, dan yang terakhir indeks k sebagai looping terdalam.Tentu saja anda bisa mengubah ukurannya sesuai dengan keperluan atau kebutuhan anda.Jika ukuran matrik A dinyatakan secara umum sebagai n x m dan matrik B berukuran m x p,maka bentuk pernyataan komputasinya dalam Matlab menjadi1 for i=1:n2 for j=1:p3 E(i,j)=0.0;4 end5 end6 for i=1:n


14 BAB 1. MATRIK DAN KOMPUTASI7 for j=1:p8 for k=1:m9 E(i,j)=E(i,j)+A(i,k)*B(k,j);10 end11 end12 enddalam Fortran771 do i=1,n2 do j=1,p3 E(i,j)=0.04 end do5 end do6 do i=1,n7 do j=1,p8 do k=1,m9 E(i,j)=E(i,j)+A(i,k)*B(k,j)10 end do11 end do12 end dodimana akan diperoleh hasil berupa matrik E yang berukuran n x p.1.4.5 Perkalian matrik dan vektor-kolomOperasi perkalian antara matrik dan vektor-kolom sebenarnya sama saja dengan perkalian antaradua matrik. Hanya saja ukuran vektor-kolom boleh dibilang spesial yaitu m x 1, dimanam merupakan jumlah baris sementara jumlah kolomnya hanya satu. Misalnya matrik A, padacontoh 1, dikalikan dengan vektor-kolom x yang berukuran 3 x 1 atau disingkat denganmengatakan vektor-kolom x berukuran 3, lalu hasilnya (misalnya) dinamakan vektor-kolom yy = Axy ===[ ] ⎡ ⎤23 8 5 ⎢ ⎥ ⎣ 3⎦6 4 74[ ]3.2 + 8.3 + 5.46.2 + 4.3 + 7.4[ ]5052Sekali lagi, tanpa mempedulikan nilai elemen-elemen masing-masing, operasi perkalian antaramatrik A dan vektor-kolom x, bisa juga dinyatakan dalam indeksnya masing-masing, yaitu[ ] []y 1 a 11 .x 1 + a 12 .x 2 + a 13 .x 3=y 2 a 21 .x 1 + a 22 .x 2 + a 23 .x 3


1.4. OPERASI MATEMATIKA 15Bila dijabarkan, maka elemen-elemen vektor-kolom y adalahy 1 = a 11 .x 1 + a 12 .x 2 + a 13 .x 3y 2 = a 21 .x 1 + a 22 .x 2 + a 23 .x 3kemudian secara sederhana dapat diwakili oleh rumus berikuty i =dimana i=1,2.3∑a ij x jj=1Berdasarkan contoh tersebut, secara umum bila ada matrik A berukuran n x m yang dikalikandengan vektor-kolom x berukuran m, maka akan didapatkan vektor-kolom y berukuran n x 1dimana elemen-elemen vektor-kolom y memenuhiy i =dengan i=1,2,. . . ,n.m∑a ij x j (1.15)j=11.4.6 Komputasi perkalian matrik dan vektor-kolomSama seperti perkalian dua matrik, komputasi untuk operasi perkalian antara matrik A berukurann x m dan vektor-kolom x berukuran m dilakukan melalui 2 tahap; pertama adalah memberikannilai 0 (nol) pada elemen-elemen vektor-kolom y yang berukuran n. Lalu tahap keduaadalah melakukan proses perkalian. Kedua tahapan ini digabung jadi satu dalam programberikut ini1 for i=1:n2 b(i,1)=0.0;3 end4 for i=1:n5 for j=1:m6 b(i,1)=b(i,1)+A(i,j)*x(j,1);7 end8 enddan dalam Fortran1 do i=1,n2 b(i,1)=0.03 end do4 do i=1,n5 do j=1,m6 b(i,1)=b(i,1)+A(i,j)*x(j,1)7 end do8 end do


16 BAB 1. MATRIK DAN KOMPUTASI1.5 PenutupDemikianlah catatan singkat dan sederhana mengenai jenis-jenis matrik dasar yang seringkalidijumpai dalam pengolahan data fisika secara numerik. Semuanya akan dijadikan acuan ataureferensi pada pembahasan topik-topik numerik yang akan datang.1.6 LatihanDiketahui matrik A, matrik B, dan vektor x sebagai berikut⎡⎤ ⎡⎤1 3 −6 −2 8 1 4 21A =5 9 7 5.6⎢⎣ 2 4 8 −1⎥⎦B = 3 10 5 0.1⎢⎣ 7 −2 9 −5⎥⎦2.3 1.4 0.8 −2.3 2.7 −12 −8.9 5.7⎡ ⎤0.4178x = −2.9587⎢⎣56.3069⎥⎦8.11. Buatlah script untuk menyelesaikan penjumlahan matrik A dan matrik B.2. Buatlah script untuk menyelesaikan perkalian matrik A dan matrik B.3. Buatlah script untuk menyelesaikan perkalian matrik A dan vektor x.4. Buatlah script untuk menyelesaikan perkalian matrik A dan vektor x.============================================================


Bab 2Metode Eliminasi Gauss✍ Objektif :⊲ Mengenalkan sistem persamaan linear.⊲ Mengenalkan teknik triangularisasi dan substitusi mundur.⊲ Aplikasi metode Eliminasi Gauss menggunakan matrik.⊲ Membuat algoritma metode Eliminasi Gauss.⊲ Menghitung invers matrik menggunakan metode Eliminasi Gauss.2.1 Sistem persamaan linearSecara umum, sistem persamaan linear dinyatakan sebagai berikutP n : a n1 x 1 + a n2 x 2 + ... + a nn x n = b n (2.1)dimana a dan b merupakan konstanta, x adalah variable, n = 1, 2, 3, ....Contoh pertamaMisalnya ada sistem persamaan linear yang terdiri dari empat buah persamaan yaitu P 1 ,P 2 , P 3 , dan P 4 seperti berikut ini:P 1 : x 1 + x 2 + 3x 4 = 4P 2 : 2x 1 + x 2 − x 3 + x 4 = 1P 3 : 3x 1 − x 2 − x 3 + 2x 4 = -3P 4 : −x 1 + 2x 2 + 3x 3 − x 4 = 4Problem dari sistem persamaan linear adalah bagaimana mencari nilai pengganti bagi variabelx 1 , x 2 , x 3 , dan x 4 sehingga semua persamaan diatas menjadi benar. Langkah awal penyelesaianproblem tersebut adalah dengan melakukan penyederhanaan sistem persamaan linear.17


18 BAB 2. METODE ELIMINASI GAUSS2.2 Triangularisasi dan Substitusi MundurAda banyak jalan untuk mendapatkan bentuk yang lebih sederhana, namun masalahnya, kitaingin mendapatkan sebuah algoritma program yang nantinya bisa berjalan di komputer,sedemikian rupa sehingga apapun persamaannya, bisa disederhanakan oleh komputer. Kitaakan berpatokan pada tiga buah aturan operasi untuk menyederhanakan sistem persamaanlinear di atas, yaitu• Persamaan P i dapat dikalikan dengan sembarang konstanta λ, lalu hasilnya ditempatkandi posisi persamaan P i . Simbol operasi ini adalah (λP i ) → (P i ).• Persamaan P j dapat dikalikan dengan sembarang konstanta λ kemudian dijumlahkandengan persamaan P i , lalu hasilnya ditempatkan di posisi persamaan P i . Simbol operasiini adalah (P i + λP j ) → (P i ).• Persamaan P i dan P j dapat bertukar posisi. Simbol operasi ini adalah (P i ) ↔ (P j ).Maka dengan berpegang pada aturan-aturan tersebut, problem sistem persamaan linear di atasakan diselesaikan dengan langkah-langkah berikut ini:1. Gunakan persamaan P 1 untuk menghilangkan variabel x 1 dari persamaan P 2 , P 3 dan P 4dengan cara (P 2 − 2P 1 ) → (P 2 ), (P 3 − 3P 1 ) → (P 3 ) dan (P 4 + P 1 ) → (P 4 ). Hasilnya akanseperti iniP 1 : x 1 + x 2 + 3x 4 = 4,P 2 : −x 2 − x 3 − 5x 4 = −7,P 3 : −4x 2 − x 3 − 7x 4 = −15,P 4 : 3x 2 + 3x 3 + 2x 4 = 82. Gunakan persamaan P 2 untuk menghilangkan variabel x 2 dari persamaan P 3 dan P 4dengan cara (P 3 − 4P 2 ) → (P 3 ) dan (P 4 + 3P 2 ) → (P 4 ). Hasilnya akan seperti iniP 1 : x 1 + x 2 + 3x 4 = 4,P 2 : −x 2 − x 3 − 5x 4 = −7,P 3 : 3x 3 + 13x 4 = 13,P 4 : −13x 4 = −13Kalau x 3 masih ada di persamaan P 4 , dibutuhkan satu operasi lagi untuk menghilangkannya.Namun hasil operasi pada langkah ke-2 ternyata sudah otomatis menghilangkan x 3 .Bentuk akhir dari keempat persamaan di atas, dikenal sebagai bentuk triangular.Sampai dengan langkah ke-2 ini, kita berhasil mendapatkan sistem persamaan linearyang lebih sederhana. Apa yang dimaksud dengan sederhana dalam konteks ini? Suatusistem persamaan linear dikatakan sederhana bila kita bisa mendapatkan seluruh nilaipengganti variabelnya dengan cara yang lebih mudah atau dengan usaha yang tidak


2.2. TRIANGULARISASI DAN SUBSTITUSI MUNDUR 19memakan waktu lama dibandingkan sebelum disederhanakan. Sekali kita mendapatkannilai pengganti bagi variabel x 4 , maka x 3 , x 2 dan x 1 akan diperoleh dengan mudah dancepat, sebagaimana yang dijelaskan pada langkah berikutnya.3. Selanjutnya kita jalankan proses backward-substitution. Melalui proses ini, yang pertamakali didapat adalah nilai pengganti bagi variabel x 4 , kemudian x 3 , lalu diikuti x 2 , danakhirnya x 1 .P 4 :x 4 = −13−13= 1,P 3 : x 3 = 1 3 (13 − 13x 4) = 1 (13 − 13) = 0,3P 2 : x 2 = −(−7 + 5x 4 + x 3 ) = −(−7 + 5 + 0) = 2,P 1 : x 1 = 4 − 3x 4 − x 2 = 4 − 3 − 2 = −1Jadi solusinya adalah x 1 = −1, x 2 = 2, x 3 = 0 dan x 4 = 1. Coba sekarang anda cek,apakah semua solusi ini cocok dan tepat bila dimasukan ke sistem persamaan linear yangpertama, yaitu yang belum disederhanakan?OK, mudah-mudahan ngerti ya... Kalau belum paham, coba diulangi bacanya sekali lagi.Atau, sekarang kita beralih kecontoh yang lain.


20 BAB 2. METODE ELIMINASI GAUSSContoh keduaMisalnya ada sistem persamaan linear, terdiri dari empat buah persamaan yaitu P 1 , P 2 , P 3 ,dan P 4 seperti berikut ini:P 1 : x 1 − x 2 + 2x 3 − x 4 = -8P 2 : 2x 1 − 2x 2 + 3x 3 − 3x 4 = -20P 3 : x 1 + x 2 + x 3 = -2P 4 : x 1 − x 2 + 4x 3 + 3x 4 = 4Seperti contoh pertama, solusi sistem persamaan linear di atas akan dicari dengan langkahlangkahberikut ini:1. Gunakan persamaan P 1 untuk menghilangkan x 1 dari persamaan P 2 , P 3 dan P 4 dengancara (P 2 −2P 1 ) → (P 2 ), (P 3 −P 1 ) → (P 3 ) dan (P 4 −P 1 ) → (P 4 ). Hasilnya akan seperti iniP 1 : x 1 − x 2 + 2x 3 − x 4 = −8,P 2 : −x 3 − x 4 = −4,P 3 : 2x 2 − x 3 + x 4 = 6,P 4 : 2x 3 + 4x 4 = 12Perhatikan persamaan P 2 ! Akibat dari langkah yang pertama tadi, x 2 hilang dari persamaanP 2 . Kondisi ini bisa menggagalkan proses triangularisasi. Untuk itu, posisi P 2mesti ditukar dengan persamaan yang berada dibawahnya, yaitu P 3 atau P 4 . Supayaproses triangularisasi dilanjutkan kembali, maka yang paling cocok adalah ditukar denganP 3 .2. Tukar posisi persamaan P 2 dengan persamaan P 3 , (P 2 ↔ P 3 ). Hasilnya akan seperti iniP 1 : x 1 − x 2 + 2x 3 − x 4 = −8,P 2 : 2x 2 − x 3 + x 4 = 6,P 3 : −x 3 − x 4 = −4,P 4 : 2x 3 + 4x 4 = 123. Gunakan persamaan P 3 untuk menghilangkan x 3 dari persamaan P 4 dengan cara (P 4 −2P 3 ) → (P 4 ). Hasilnya akan seperti iniP 1 : x 1 − x 2 + 2x 3 − x 4 = −8,P 2 : 2x 2 − x 3 + x 4 = 6,P 3 : −x 3 − x 4 = −4,P 4 : 2x 4 = 4Sampai disini proses triangularisasi telah selesai.


2.3. MATRIK DAN ELIMINASI GAUSS 214. Selanjutnya adalah proses backward-substitution. Melalui proses ini, yang pertama kalididapat solusinya adalah x 4 , kemudian x 3 , lalu diikuti x 2 , dan akhirnya x 1 .P 4 : x 4 = 4 2= 2,P 3 : x 3 = −4 + x 4−1= 2,P 2 : x 2 = 6 + x 3 − x 4= 3,2P 1 : x 1 = −8 + x 2 − 2x 3 + x 4 = −7Jadi solusinya adalah x 1 = −7, x 2 = 3, x 3 = 2 dan x 4 = 2.Berdasarkan kedua contoh di atas, untuk mendapatkan solusi sistem persamaan linear, diperlukanoperasi triangularisasi dan proses backward-substitution. Kata backward-substitutionkalau diterjemahkan kedalam bahasa indonesia, menjadi substitusi-mundur. Gabungan prosestriangularisasi dan substitusi-mundur untuk menyelesaikan sistem persamaan linear dikenalsebagai metode eliminasi gauss.2.3 Matrik dan Eliminasi GaussSejumlah matrik bisa digunakan untuk menyatakan suatu sistem persamaan linear. Sejenak,mari kita kembali lagi melihat sistem persamaan linear secara umum seperti berikut ini:a 11 x 1 + a 12 x 2 + . . . + a 1n x n = b 1a 21 x 1 + a 22 x 2 + . . . + a 2n x n = b 2. . . . . .......... = . . .. . . . . .......... = . . .a n1 x 1 + a n2 x 2 + . . . + a nn x n= b nSementara, kalau dinyatakan dalam bentuk operasi matrik, maka akan seperti ini:⎡⎤⎡a 11 a 12 . . . a 1na 21 a 22 . . . a 2n⎢⎥⎢⎣ . . . ⎦⎣a n1 a n2 . . . a nn⎤ ⎡ ⎤x 1 b 1x 2⎥. ⎦ = b 2 ⎢ ⎥⎣ . ⎦x n b n(2.2)Dalam mencari solusi suatu sistem persamaan linear dengan metode eliminasi gauss, bentukoperasi matrik di atas dimanipulasi menjadi matrik augment, yaitu suatu matrik yang beruku-


22 BAB 2. METODE ELIMINASI GAUSSran n x (n + 1) seperti berikut ini:⎡⎤ ⎡a 11 a 12 . . . a 1n | b 1a 21 a 22 . . . a 2n | b 2⎢⎥⎣ . . . | . ⎦ = ⎢⎣a n1 a n2 . . . a nn | b n⎤a 11 a 12 . . . a 1n | a 1,n+1a 21 a 22 . . . a 2n | a 2,n+1⎥. . . | . ⎦a n1 a n2 . . . a nn | a n,n+1(2.3)Berdasarkan contoh pertama yang ada dihalaman depan catatan ini, saya akan tunjukkan prosestriangularisasi dan substitusi-mundur dalam operasi matrik terhadap sistem persamaan linearyang terdiri dari empat persamaan matematika, yaitu (silakan lihat kembali contoh pertama):⎡⎤⎡⎤ ⎡1 1 0 3 x 12 1 −1 1x 2⎢⎣ 3 −1 −1 2⎥⎢⎦⎣x⎥3 ⎦ = ⎢⎣−1 2 3 −1 x 4Lalu kita dapat membuat matrik augment sebagai berikut:⎤41−3⎥⎦4⎡⎤1 1 0 3 | 42 1 −1 1 | 1⎢⎣ 3 −1 −1 2 | −3⎥⎦−1 2 3 −1 | 4Kemudian kita lakukan operasi triangularisai terhadap matrik augment, dimulai dari kolompertama, yaitu⎡⎤1 1 0 3 | 40 −1 −1 −5 | −7⎢⎣ 0 −4 −1 −7 | −15⎥⎦0 3 3 2 | 8lalu dilanjutkan ke kolom berikutnya⎡1 1 0 3 | 40 −1 −1 −5 | −7⎢⎣ 0 0 3 13 | 130 0 0 −13 | −13⎤⎥⎦Sebelum dilanjutkan ke substitusi-mundur, saya ingin menegaskan peranan angka-angka indeksdari masing-masing elemen matrik augment tersebut. Silakan perhatikan posisi masing-


2.4. ALGORITMA ELIMINASI GAUSS 23masing elemen berikut ini:⎡1 1 0 3 | 40 −1 −1 −5 | −7⎢⎣ 0 0 3 13 | 130 0 0 −13 | −13⎤ ⎡⎥⎦ → ⎢⎣⎤a 11 a 12 a 13 a 14 | a 15a 21 a 22 a 23 a 24 | a 25a 31 a 32 a 33 a 34 | a⎥35 ⎦a 41 a 42 a 43 a 44 | a 45Dengan memperhatikan angka-angka indeks pada matrik augment di atas, kita akan mencobamembuat rumusan proses substitusi-mundur untuk mendapatkan seluruh nilai penggantivariabel x. Dimulai dari x 4 ,x 4 = a 45a 44= −13−13 = 1ini dapat dinyatakan dalam rumus umum, yaitulalu dilanjutkan dengan x 3 , x 2 , dan x 1 .x n = a n,n+1a nnx 3 = a 35 − a 34 x 4a 33=x 2 = a 25 − (a 23 x 3 + a 24 x 4 )a 22=x 1 = a 15 − (a 12 x 2 + a 13 x 3 + a 14 x 4 )a 11=13 − [(13)(1)]= 03(−7) − [(−1)(0) + (−5)(1)]= 2(−1)4 − [(1)(2) + (0)(0) + (3)(1)]= −11ini juga dapat dinyatakan dalam rumus umum yaitu:x i = a i,n+1 − ∑ nj=i+1 a ijx ja iiProses triangularisasi dan substitusi-mundur dibakukan menjadi algoritma metode eliminasigauss yang dapat diterapkan dalam berbagai bahasa pemrograman komputer, misalnya fortran,C, java, pascal, matlab, dan lain-lain.2.4 Algoritma eliminasi GaussSecara umum, sistem persamaan linear adalah sebagai berikut:a 11 x 1 + a 12 x 2 + . . . + a 1n x n = b 1a 21 x 1 + a 22 x 2 + . . . + a 2n x n = b 2.. = .a n1 x 1 + a n2 x 2 + . . . + a nn x n= b nAlgoritma dasar metode eliminasi gauss, adalah sebagai berikut:1. Ubahlah sistem persamaan linear tersebut menjadi matrik augment, yaitu suatu matrik


24 BAB 2. METODE ELIMINASI GAUSSyang berukuran n x (n + 1) seperti berikut ini:⎡⎤ ⎡⎤a 11 a 12 . . . a 1n | b 1 a 11 a 12 . . . a 1n | a 1,n+1a 21 a 22 . . . a 2n | b 2⎢⎥⎣ . . . | . ⎦ = a 21 a 22 . . . a 2n | a 2,n+1⎢⎥⎣ . . . | . ⎦a n1 a n2 . . . a nn | b n a n1 a n2 . . . a nn | a n,n+1(2.4)Jelas terlihat bahwa elemen-elemen yang menempati kolom terakhir matrik augmentadalah nilai dari b i ; yaitu a i,n+1 = b i dimana i = 1, 2, ..., n.2. Periksalah elemen-elemen pivot. Apakah ada yang bernilai nol? Elemen-elemen pivotadalah elemen-elemen yang menempati diagonal suatu matrik, yaitu a 11 , a 22 , ..., a nnatau disingkat a ii . Jika a ii ≠ 0, bisa dilanjutkan ke langkah no.3. Namun, jika ada elemendiagonal yang bernilai nol, a ii = 0, maka baris dimana elemen itu berada harus ditukarposisinya dengan baris yang ada dibawahnya, (P i ) ↔ (P j ) dimana j = i + 1, i + 2, ..., n,sampai elemen diagonal matrik menjadi tidak nol, a ii ≠ 0. (Kalau kurang jelas, silakan lihatlagi contoh kedua yang ada dihalaman 3. Sebaiknya, walaupun elemen diagonalnya tidak nol,namun mendekati nol (misalnya 0,03), maka proses pertukaran ini dilakukan juga).3. Proses triangularisasi. Lakukanlah operasi berikut:P j − a jia iiP i → P j (2.5)dimana j = i + 1, i + 2, ..., n. Maka matrik augment akan menjadi:⎡⎤a 11 a 12 a 13 . . . a 1n | a 1,n+10 a 22 a 23 . . . a 2n | a 2,n+10 0 a 33 . . . a 3n | a 3,n+1⎢. ⎣ . . . .. . | .⎥⎦0 0 0 0 a nn | a n,n+1(2.6)4. Hitunglah nilai x n dengan cara:x n = a n,n+1a nn(2.7)5. Lakukanlah proses substitusi-mundur untuk memperoleh x n−1 , x n−2 , ..., x 2 , x 1 dengancara:dimana i = n − 1, n − 2, ...,2, 1.x i = a i,n+1 − ∑ nj=i+1 a ijx ja ii(2.8)Demikianlan algoritma dasar metode eliminasi gauss. Selanjutnya algoritma dasar tersebutperlu dirinci lagi sebelum dapat diterjemahkan kedalam bahasa pemrograman komputer.


2.4. ALGORITMA ELIMINASI GAUSS 252.4.1 AlgoritmaAlgoritma metode eliminasi gauss untuk menyelesaikan n x n sistem persamaan linear.P 1 : a 11 x 1 + a 12 x 2 + . . . + a 1n x n = b 1P 2 : a 21 x 1 + a 22 x 2 + . . . + a 2n x n = b 2... = .P n : a n1 x 1 + a n2 x 2 + . . . + a nn x n = b nINPUT: sejumlah persamaan linear dimana konstanta-konstanta-nya menjadi elemen-elemenmatrik augment A = (a ij ), dengan 1 ≤ i ≤ n dan 1 ≤ j ≤ n + 1.OUTPUT: solusi x 1 , x 2 , x 3 , ..., x n atau pesan kesalahan yang mengatakan bahwa sistem persamaanlinear tidak memiliki solusi yang unik.• Langkah 1: Inputkan konstanta-konstanta dari sistem persamaan linear kedalam elemenelemenmatrik augment, yaitu suatu matrik yang berukuran n x (n + 1) seperti berikutini:⎡⎤ ⎡⎤a 11 a 12 . . . a 1n | b 1 a 11 a 12 . . . a 1n | a 1,n+1a 21 a 22 . . . a 2n | b 2⎢⎥⎣ . . . | . ⎦ = a 21 a 22 . . . a 2n | a 2,n+1⎢⎥ (2.9)⎣ . . . | . ⎦a n1 a n2 . . . a nn | b n a n1 a n2 . . . a nn | a n,n+1• Langkah 2: Untuk i = 1, ..., n − 1, lakukan Langkah 3 sampai Langkah 5.• Langkah 3: Definisikan p sebagai integer dimana i ≤ p ≤ n. Lalu pastikan bahwaa pi ≠ 0. Jika ada elemen diagonal yang bernilai nol (a ii = 0), maka program harusmencari dan memeriksa elemen-elemen yang tidak bernilai nol dalam kolom yangsama dengan kolom tempat elemen diagonal tersebut berada. Jadi saat proses iniberlangsung, integer i (indeks dari kolom) dibuat konstan, sementara integer p (indeksdari baris) bergerak dari p = i sampai p = n. Bila ternyata setelah mencapaielemen paling bawah dalam kolom tersebut, yaitu saat p = n tetap didapat nilaia pi = 0, maka sebuah pesan dimunculkan: sistem persamaan linear tidak memilikisolusi yang unik. Lalu program berakhir: STOP.• Langkah 4: Namun jika sebelum integer p mencapai nilai p = n sudah diperolehelemen yang tidak nol (a pi ≠ 0), maka bisa dipastikan p ≠ i. Jika p ≠ i makalakukan proses pertukaran (P p ) ↔ (P i ).• Langkah 5: Untuk j = i + 1, .., n, lakukan Langkah 6 dan Langkah 7.• Langkah 6: Tentukan m ji ,m ji = a jia ii


26 BAB 2. METODE ELIMINASI GAUSS• Langkah 7: Lakukan proses triangularisasi,(P j − m ji P i ) → (P j )• Langkah 8: Setelah proses triangularisasi dilalui, periksalah a nn . Jika a nn = 0, kirimkanpesan: sistem persamaan linear tidak memiliki solusi yang unik. Lalu program berakhir:STOP.• Langkah 9: Jika a nn ≠ 0, lakukan proses substitusi mundur, dimulai dengan menentukanx n ,x n = a n,n+1a nn• Langkah 10: Untuk i = n − 1, ...,1 tentukan x i ,x i = a i,n+1 − ∑ nj=i+1 a ijx ja ii• Langkah 11: Diperoleh solusi yaitu x 1 , x 2 , ..., x n . Algoritma telah dijalankan dengan sukses.STOP.Saya telah membuat program sederhana dalam fortran untuk mewujudkan algoritma eliminasigauss. Saya berasumsi bahwa anda sudah menguasai dasar-dasar pemrograman dalamfortran. Program ini sudah dicoba di-compile dengan fortran77 under Linux Debian danvisual-fortran under windows-XP.Langkah-langkah yang tercantum pada program ini disesuaikan dengan langkah-langkahyang tertulis di atas. Dalam program ini, ukuran maksimum matrik augment adalah 10 x11, untuk mencari 10 variabel yang tidak diketahui. Jika anda bermaksud memperbesar ataumemperkecil ukuran matrik augment, silakan sesuaikan angka ukuran matrik yang anda inginkanpada statemen pertama dari program ini, yaitu statemen DIMENSION. Inilah programnya,1 DIMENSION A(10,11), X(10)2 REAL MJI3 WRITE (*,*) ’=PROGRAM ELIMINASI GAUSS=’4 WRITE (*,*)5 C LANGKAH 1: MEMASUKAN NILAI ELEMEN-ELEMEN MATRIK AUGMENT6 WRITE (*,’(1X,A)’) ’JUMLAH PERSAMAAN ? ’7 READ (*,*) N8 WRITE (*,*)9 WRITE (*,*) ’MASUKAN ELEMEN-ELEMEN MATRIK AUGMENT’10 M = N + 111 DO 50 I = 1,N12 DO 60 J = 1,M13 WRITE (*,’(1X,A,I2,A,I2,A)’) ’A(’,I,’,’,J,’) = ’14 READ (*,*) A(I,J)15 60 CONTINUE16 50 CONTINUE17 WRITE (*,*)18 C MENAMPILKAN MATRIK AUGMENT


2.4. ALGORITMA ELIMINASI GAUSS 2719 WRITE (*,’(1X,A)’) ’MATRIK AUGMENT:’20 DO 110 I = 1,N21 WRITE (*,’(1X,5(F14.8))’) (A(I,J),J=1,M)22 110 CONTINUE23 WRITE (*,*)24 C LANGKAH 2: MEMERIKSA ELEMEN-ELEMEN PIVOT DAN PROSES TUKAR POSISI25 NN = N-126 DO 10 I=1,NN27 C LANGKAH 3: MENDEFINISIKAN P28 P = I29 100 IF (ABS(A(P,I)).GE.1.0E-20 .OR. P.GT.N) GOTO 20030 P = P+131 GOTO 10032 200 IF(P.EQ.N+1)THEN33 C MENAMPILKAN PESAN TIDAK UNIK34 WRITE(*,5)35 GOTO 40036 END IF37 C LANGKAH 4: PROSES TUKAR POSISI38 IF(P.NE.I) THEN39 DO 20 JJ=1,M40 C = A(I,JJ)41 A(I,JJ) = A(P,JJ)42 A(P,JJ) = C43 20 CONTINUE44 END IF45 C LANGKAH 5: PERSIAPAN PROSES TRIANGULARISASI46 JJ = I+147 DO 30 J=JJ,N48 C LANGKAH 6: TENTUKAN MJI49 MJI = A(J,I)/A(I,I)50 C LANGKAH 7: MELAKUKAN PROSES TRIANGULARISASI51 DO 40 K=JJ,M52 A(J,K) = A(J,K)-MJI*A(I,K)53 40 CONTINUE54 A(J,I) = 055 30 CONTINUE56 10 CONTINUE57 C MENAMPILKAN HASIL TRIANGULARISASI58 WRITE (*,’(1X,A)’) ’HASIL TRIANGULARISASI:’59 DO 120 I = 1,N60 WRITE (*,’(1X,5(F14.8))’) (A(I,J),J=1,M)61 120 CONTINUE62 C LANGKAH 8: MEMERIKSA ELEMEN A(N,N)63 IF(ABS(A(N,N)).LT.1.0E-20) THEN64 C MENAMPILKAN PESAN TIDAK UNIK65 WRITE(*,5)66 GOTO 40067 END IF68 C LANGKAH 9: MENGHITUNG X(N)69 X(N) = A(N,N+1)/A(N,N)70 C LANGKAH 10: PROSES SUBSTITUSI MUNDUR71 L = N-172 DO 15 K=1,L73 I = L-K+174 JJ = I+175 SUM = 0.076 DO 16 KK=JJ,N77 SUM = SUM+A(I,KK)*X(KK)


28 BAB 2. METODE ELIMINASI GAUSS78 16 CONTINUE79 X(I) = (A(I,N+1)-SUM)/A(I,I)80 15 CONTINUE81 C LANGKAH 11: MENAMPILKAN HASIL PERHITUNGAN82 WRITE (*,*)83 WRITE (*,7)84 DO 18 I = 1,N85 WRITE (*,’(1X,A,I2,A,F14.8)’) ’X(’,I,’) = ’,X(I)86 18 CONTINUE87 400 STOP8889 5 FORMAT(1X,’SISTEM LINEAR TIDAK MEMILIKI SOLUSI YANG UNIK’)90 7 FORMAT(1X,’SOLUSI UNIK’)91 ENDScript eliminasi gauss dalam matlab juga telah dibuat. Namun dalam anda perlu memodifikasielemen-elemen matrik A agar sesuai dengan data yang hendak anda olah.1 clear all2 clc3 A(1,1)=1;4 A(1,2)=1;5 A(1,3)=-1;6 A(1,4)=0;7 A(2,1)=6;8 A(2,2)=-4;9 A(2,3)=0;10 A(2,4)=24;11 A(3,1)=6;12 A(3,2)=0;13 A(3,3)=2;14 A(3,4)=10;15 A16 n=3 %jumlah persamaan17 pause1819 %========== Proses Triangularisasi =========20 for j=1:(n-1)2122 %----mulai proses pivot---23 if (A(j,j)==0)24 for p=1:n+125 u=A(j,p);26 v=A(j+1,p);27 A(j+1,p)=u;28 A(j,p)=v;29 end30 end31 %----akhir proses pivot---32 jj=j+1;33 for i=jj:n34 m=A(i,j)/A(j,j);35 for k=1:(n+1)36 A(i,k)=A(i,k)-(m*A(j,k));37 end38 end39 end40 A


2.5. CONTOH APLIKASI 2941 pause42 %========= Akhir Proses Triangularisasi ===4344 %------Proses Substitusi mundur-------------45 x(n,1)=A(n,n+1)/A(n,n);4647 for i=n-1:-1:148 S=0;49 for j=n:-1:i+150 S=S+A(i,j)*x(j,1);51 end52 x(i,1)=(A(i,n+1)-S)/A(i,i);53 end54 x2.5 Contoh aplikasi2.5.1 Menghitung arus listrikGunakan metode Eliminasi Gauss untuk menentukan arus i 1 , i 2 dan i 3 yang mengalir padarangkaian berikut inijawab:Berdasarkan Hukum Kirchhoff:I 1 + I 2 = I 310 − 6I 1 − 2I 3 = 0−14 + 6I 1 − 10 − 4I 2 = 0Lalu kita susun ulang ketiga persamaan di atas menjadi seperti ini:I 1 + I 2 − I 3 = 06I 1 + 2I 3 = 106I 1 − 4I 2 = 24


30 BAB 2. METODE ELIMINASI GAUSSKemudian dinyatakan dalam bentuk matriks:⎡⎢⎣1 1 −16 −4 06 0 2⎤⎡⎥⎢⎦⎣⎤I 1I 2I 3⎥⎦ =⎡⎢⎣02410⎤⎥⎦Selanjutkan kita susun matriks augmentasi sebagai berikut:⎡⎢⎣1 1 −1 06 −4 0 246 0 2 10Langkah berikutnya adalah menghitung matriks triangularisasi dengan langkah-langkah sebagaiberikut:⎤⎥⎦m = a 21= 6 = 6a 11 1a 21 = a 21 − m.a 11 = 6 − (6).(1) = 0a 22 = a 22 − m.a 12 = −4 − (6).(1) = −10a 23 = a 23 − m.a 13 = 0 − (6).(−1) = 6a 24 = a 24 − m.a 14 = 24 − (6).(0) = 24m = a 31= 6 = 6a 11 1a 31 = a 31 − m.a 11 = 6 − (6).(1) = 0a 32 = a 32 − m.a 12 = 0 − (6).(1) = −6a 33 = a 33 − m.a 13 = 2 − (6).(−1) = 8a 34 = a 34 − m.a 14 = 10 − (6).(0) = 10Sampai disini matriks augment mengalami perubahan menjadi⎡⎢⎣1 1 −1 00 −10 6 240 −6 8 10⎤⎥⎦


2.6. MENGHITUNG INVERS MATRIK 31Kelanjutan langkah menuju triangularisasi adalahm = a 32a 22= −6−10a 31 = a 31 − m.a 21 = 0 − ( −6−10 ).(0) = 0a 32 = a 32 − m.a 22 = −6 − ( −6−10 ).(−10) = 0a 33 = a 33 − m.a 23 = 8 − ( −6 ).(6) = 4, 4−10a 34 = a 34 − m.a 24 = 10 − ( −6 ).(24) = −4, 4−10maka matriks triangularisasi berhasil didapat yaitu⎡⎢⎣1 1 −1 00 −10 6 240 0 4, 4 −4, 4Sekarang tinggal melakukan proses substitusi mundur⎤⎥⎦I 3 = a 34a 33= −4, 44, 4 = −1I 2 = a 24 − a 23 .I 3a 22=I 1 = a 14 − (a 13 .I 3 + a 12 .I 2 )a 11=24 − (6).(−1)= −3−10(0 − [(−1).(−1) + (1).(−3)]1= 2Dengan demikian, besar masing-masing arus pada rangkaian di atas adalah I 1 = 2A, I 2 = −3Adan I 3 = −1A. Tanda minus (-) memiliki arti bahwa arah arus yang sesungguhnya berlawananarah dengan asumsi awal yang kita gunakan.2.6 Menghitung invers matrikSekali lagi saya ulangi apa yang pernah kita bahas di awal bab ini yaitu bahwa sistem persamaanlinear dapat dinyatakan sebagai berikut:a 11 x 1 + a 12 x 2 + . . . + a 1n x n = b 1a 21 x 1 + a 22 x 2 + . . . + a 2n x n = b 2. . . . . .......... = . . .. . . . . .......... = . . .a n1 x 1 + a n2 x 2 + . . . + a nn x n= b nSistem persamaan linear tersebut dapat dinyatakan dalam bentuk operasi matrik,Ax = b (2.10)


32 BAB 2. METODE ELIMINASI GAUSSsehingga bentuknya menjadi seperti ini:⎡⎤⎡a 11 a 12 . . . a 1na 21 a 22 . . . a 2n⎢⎥⎢⎣ . . . ⎦⎣a n1 a n2 . . . a nn⎤ ⎡x 1x 2⎥. ⎦ = ⎢⎣x n⎤b 1b 2 ⎥. ⎦b ndimana⎡A =⎢⎣⎤a 11 a 12 . . . a 1na 21 a 22 . . . a 2n⎥. . . ⎦ ,a n1 a n2 . . . a nn⎡x = ⎢⎣⎤x 1x 2⎥. ⎦ ,x n⎡b = ⎢⎣⎤b 1b 2 ⎥. ⎦b nDalam kaitannya dengan invers matrik, matrik A disebut matrik non-singular jika matrikA memiliki matrik invers dirinya yaitu A −1 . Atau dengan kata lain, matrik A −1 adalah inversdari matrik A. Jika matrik A tidak memiliki invers, maka matrik A disebut singular. Bilamatrik A dikalikan dengan matrik A −1 maka akan menghasilkan matrik identitas I, yaitu suatumatrik yang elemen-elemen diagonalnya bernilai 1.Misalnya diketahui,A =⎡⎢⎣⎡ ⎤1 0 . . . 0AA −1 0 1 . . . 0= I =⎢ .⎣ . . .. ⎥ . ⎦1 2 −12 1 0−1 1 2⎤0 0 . . . 1⎡⎥⎦, A −1 ⎢= ⎣− 2 59 9− 1 949− 1 29 9− 1 1 13 3 3Bila keduanya dikalikan, maka akan menghasilkan matrik identitas,AA −1 =⎡⎢⎣1 2 −12 1 0−1 1 2⎤ ⎡⎥ ⎢⎦ ⎣− 2 59 9− 1 949− 1 29 9− 1 1 13 3 3⎤⎥⎦ =⎡⎢⎣⎤⎥⎦1 0 00 1 00 0 1⎤⎥⎦(2.11)Lalu bagaimana cara mendapatkan matrik invers, A −1 ? Persamaan (2.11) bisa dijadikanpedoman..AA −1 = I⎡⎢⎣1 2 −12 1 0−1 1 2⎤⎡⎥⎢⎦⎣⎤i 11 i 12 i 13i 21 i 22 i 23i 31 i 32 i 33⎥⎦ =⎡⎢⎣1 0 00 1 00 0 1⎤⎥⎦


2.6. MENGHITUNG INVERS MATRIK 33dalam hal ini matrik A −1 adalahA −1 =⎡⎢⎣⎤i 11 i 12 i 13⎥i 21 i 22 i 23 ⎦i 31 i 32 i 33Elemen-elemen matrik invers, A −1 dapat diperoleh dengan menerapkan metode eliminasigauss. Diawali dengan membentuk matrik augment:⎡⎢⎣1 2 −1 | 1 0 02 1 0 | 0 1 0−1 1 2 | 0 0 1Lalu dilanjutkan dengan proses triangularisasi: (P 2 −2P 1 )→(P 2 ) dan (P 3 +P 1 )→(P 3 ), kemudiandiikuti oleh (P 3 + P 2 )→(P 3 ):⎡⎢⎣1 2 −1 | 1 0 00 −3 2 | −2 1 00 3 1 | 1 0 1⎤⎥⎦→⎡⎢⎣⎤⎥⎦1 2 −1 | 1 0 00 −3 2 | −2 1 00 0 3 | −1 1 1Langkah berikutnya, matrik augment yang telah mengalami triangularisasi tersebut dipecahmenjadi tiga buah matrik augment seperti berikut ini:⎡⎢⎣1 2 −1 | 10 −3 2 | −20 0 3 | −1⎤⎥⎦⎡⎢⎣1 2 −1 | 00 −3 2 | 10 0 3 | 1⎤⎥⎦⎡⎢⎣1 2 −1 | 00 −3 2 | 00 0 3 | 1Langkah pamungkasnya adalah melakukan proses substitusi mundur pada ketiga matrik augmentdi atas, sehingga diperoleh:⎤⎥⎦⎤⎥⎦i 11 = − 2 9i 21 = 4 9i 31 = − 1 3i 12 = 5 9i 22 = − 1 9i 32 = 1 3i 13 = − 1 9i 23 = 2 9i 33 = 1 3Hasil tersebut digabung menjadi sebuah matrik, yaitu matrik A −1 ,A −1 =⎡⎢⎣− 2 59 9− 1 949− 1 29 9− 1 1 13 3 3⎤⎥⎦Keberadaan matrik A −1 bisa digunakan untuk menyelesaikan sistem persamaan linear


34 BAB 2. METODE ELIMINASI GAUSS(mencari nilai x), dengan cara sebagai berikutAxA −1 AxIx= b= A −1 b= A −1 bx = A −1 b (2.12)Contoh berikut ini akan menjelaskan prosesnya secara lebih rinci. Misalnya diketahui sistempersamaan linearx 1 + 2x 2 − x 3 = 22x 1 + x 2 = 3−x 1 + x 2 + 2x 3 = 4Bila dikonversikan kedalam operasi matrik menjadi⎡⎢⎣⎤⎡⎤1 2 −1 x 1⎥⎢2 1 0 ⎦⎣x 2−1 1 2 x 3⎥⎦ =Berdasarkan persamaan (2.12), maka elemen-elemen vektor x dapat dicari dengan carax = A −1 b⎡⎢⎣234⎤⎥⎦x =⎡⎢⎣− 2 59 9− 1 949− 1 29 9− 1 1 13 3 3⎤⎡⎥⎢⎦⎣234⎤⎥⎦ =⎡⎢⎣7913953⎤⎥⎦Akhirnya diperoleh solusi x 1 = 7/9, x 2 = 13/9, dan x 3 = 5/3. Penyelesaian sistem persamaanlinear menjadi lebih mudah bila matrik A −1 sudah diketahui. Sayangnya, untuk mendapatkanmatrik A −1 , diperlukan langkah-langkah, seperti yang sudah dibahas pada contoh pertamadi atas, yang berakibat in-efisiensi proses penyelesaian (secara komputasi) bila dibandingkandengan metode eliminasi gauss untuk memecahkan sistem persamaan linear. Namunbagaimanapun, secara konseptual kita dianjurkan mengetahui cara bagaimana mendapatkanmatrik A −1 .Saya telah memodifikasi program eliminasi gauss yang terdahulu, untuk keperluan perhitunganmatrik invers. Program ini ditulis dengan bahasa fortran, sudah berhasil dikompilasidalam Linux Debian (g77) dan Windows XP (Visual Fortran). Inilah programnya,1 DIMENSION A(10,20), D(10,10), X(10)2 REAL MJI3 INTEGER TKR, BK, TK, Q4 WRITE (*,*) ’=PROGRAM INVERS MATRIK DENGAN ELIMINASI GAUSS=’5 WRITE (*,*)


2.6. MENGHITUNG INVERS MATRIK 356 C LANGKAH 1: MEMASUKAN NILAI ELEMEN-ELEMEN MATRIK A7 WRITE (*,’(1X,A)’) ’JUMLAH PERSAMAAN ? ’8 READ (*,*) N9 WRITE (*,*)10 WRITE (*,*) ’MASUKAN ELEMEN-ELEMEN MATRIK A’11 M = N + 112 DO 50 I = 1,N13 DO 60 J = 1,N14 WRITE (*,’(1X,A,I2,A,I2,A)’) ’A(’,I,’,’,J,’) = ’15 READ (*,*) A(I,J)16 60 CONTINUE17 50 CONTINUE18 C LANGKAH 2: MENDEFINISIKAN MATRIK IDENTITAS19 WRITE (*,*) ’MENDEFINISIKAN MATRIK IDENTITAS’20 DO 70 I = 1,N21 DO 80 J = M,N+N22 A(I,J) = 023 IF (I+N .EQ. J) THEN24 A(I,J) = 125 END IF26 80 CONTINUE27 70 CONTINUE28 WRITE (*,*)29 C MENAMPILKAN MATRIK AUGMENT30 WRITE (*,’(1X,A)’) ’MATRIK AUGMENT:’31 DO 110 I = 1,N32 WRITE (*,’(1X,5(F14.8))’) (A(I,J),J=1,N+N)33 110 CONTINUE34 WRITE (*,*)35 C MENGHITUNG JUMLAH TUKAR (TKR) POSISI. MULA2 TKR = 036 TKR = 037 C MENGHITUNG JUMLAH OPERASI BAGI/KALI (BK).38 BK = 039 C MENGHITUNG JUMLAH OPERASI TAMBAH/KURANG (TK).40 TK = 041 C LANGKAH 3: MEMERIKSA ELEMEN2 PIVOT DAN PROSES TUKAR POSISI42 NN = N-143 DO 10 I=1,NN44 C LANGKAH 4: MENDEFINISIKAN P45 P = I46 100 IF (ABS(A(P,I)).GE.1.0E-20 .OR. P.GT.N) GOTO 20047 P = P+148 GOTO 10049 200 IF(P.EQ.N+1)THEN50 C MENAMPILKAN PESAN SINGULAR51 WRITE(*,5)52 GOTO 40053 END IF54 C LANGKAH 5: PROSES TUKAR POSISI55 IF(P.NE.I) THEN56 DO 20 JJ=1,N+N57 C = A(I,JJ)58 A(I,JJ) = A(P,JJ)59 A(P,JJ) = C60 TKR = TKR + 161 20 CONTINUE62 END IF63 C LANGKAH 6: PERSIAPAN PROSES TRIANGULARISASI64 JJ = I+1


36 BAB 2. METODE ELIMINASI GAUSS65 DO 30 J=JJ,N66 C LANGKAH 7: TENTUKAN MJI67 MJI = A(J,I)/A(I,I)68 BK = BK + 169 C LANGKAH 8: MELAKUKAN PROSES TRIANGULARISASI70 DO 40 K=JJ,N+N71 A(J,K) = A(J,K)-MJI*A(I,K)72 BK = BK + 173 TK = TK + 174 40 CONTINUE75 A(J,I) = 076 30 CONTINUE77 10 CONTINUE78 C MENAMPILKAN HASIL TRIANGULARISASI79 WRITE (*,’(1X,A)’) ’HASIL TRIANGULARISASI:’80 DO 120 I = 1,N81 WRITE (*,’(1X,5(F14.8))’) (A(I,J),J=1,N+N)82 120 CONTINUE83 C LANGKAH 9: MEMERIKSA ELEMEN A(N,N)84 IF(ABS(A(N,N)).LT.1.0E-20) THEN85 C MENAMPILKAN PESAN SINGULAR86 WRITE(*,5)87 GOTO 40088 END IF89 DO 500 J = 1,N90 Q=N+J91 C LANGKAH 10: MENGHITUNG A(N,N)92 D(J,N) = A(N,Q)/A(N,N)93 BK = BK + 194 C LANGKAH 11: PROSES SUBSTITUSI MUNDUR95 L = N-196 DO 15 K=1,L97 I = L-K+198 JJ = I+199 SUM = 0.0100 DO 16 KK=JJ,N101 SUM = SUM+A(I,KK)*D(J,KK)102 BK = BK + 1103 TK = TK + 1104 16 CONTINUE105 D(J,I) = (A(I,Q)-SUM)/A(I,I)106 BK = BK + 1107 TK = TK + 1108 15 CONTINUE109 500 CONTINUE110 C LANGKAH 12: MENAMPILKAN HASIL PERHITUNGAN111 WRITE (*,*)112 WRITE (*,’(1X,A)’) ’MATRIK INVERS:’113 DO 220 I = 1,N114 WRITE (*,’(1X,5(F14.8))’) (D(J,I),J=1,N)115 220 CONTINUE116 WRITE(*,8) TKR117 WRITE(*,9) BK118 WRITE(*,11) TK119 400 STOP120 5 FORMAT(1X,’MATRIK A BERSIFAT SINGULAR’)121 8 FORMAT(1X,’JUMLAH TUKAR POSISI = ’,3X,I5)122 9 FORMAT(1X,’JUMLAH OPERASI BAGI/KALI = ’,3X,I6)123 11 FORMAT(1X,’JUMLAH OPERASI JUMLAH/KURANG = ’,3X,I6)


2.7. PENUTUP 37124 END2.7 PenutupSilakan anda coba aplikasikan program di atas dengan berbagai sistem persamaan linear yangpernah dijadikan contoh pada catatan terdahulu. Saya cukupkan sementara sampai disini.Insya Allah akan saya sambung lagi dilain waktu. Kalau ada yang mau didiskusikan, silakanhubungi saya melalui email yang tercantum di halaman paling depan.


Bab 3Aplikasi Eliminasi Gauss pada MasalahInversi✍ Objektif :⊲ Mengenalkan model garis.⊲ Mengenalkan model parabola.⊲ Mengenalkan model bidang.Pada bab ini, saya mencoba menuliskan aplikasi Metode Eliminasi Gauss sebagai dasardasarteknik inversi yaitu meliputi model garis, model parabola dan model bidang. Uraian aplikasitersebut diawali dari ketersediaan data observasi, lalu sejumlah parameter model mestidicari dengan teknik inversi. Mari kita mulai dari model garis.3.1 Inversi Model GarisPengukuran temperatur terhadap kedalaman di bawah permukaan bumi menunjukkan bahwasemakin dalam, temperatur semakin tinggi. Misalnya telah dilakukan sebanyak empat kali (N= 4) pengukuran temperatur (T i ) pada kedalaman yang berbeda beda (z i ). Tabel pengukuransecara sederhana disajikan seperti ini:Tabel 3.1: Data temperatur bawah permukaan tanah terhadap kedalamanPengukuran ke-i Kedalaman (m) Temperatur ( O C)1 z 1 = 5 T 1 = 352 z 2 = 16 T 2 = 573 z 3 = 25 T 3 = 754 z 4 = 100 T 4 = 225Grafik sebaran data observasi ditampilkan pada Gambar (3.1). Lalu kita berasumsi bahwavariasi temperatur terhadap kedalaman ditentukan oleh rumus berikut ini:m 1 + m 2 z i = T i (3.1)39


40 BAB 3. APLIKASI ELIMINASI GAUSS PADA MASALAH INVERSI250Variasi temperatur terhadap kedalaman200Temperatur (Celcius)1501005000 10 20 30 40 50 60 70 80 90 100Kedalaman (meter)Gambar 3.1: Sebaran data observasi antara temperatur dan kedalamandimana m 1 dan m 2 adalah konstanta-konstanta yang akan dicari. Rumus di atas disebut modelmatematika. Sedangkan m 1 dan m 2 disebut parameter model. Pada model matematika di atasterdapat dua buah parameter model, (M = 2). Sementara jumlah data observasi ada empat,(N = 4), yaitu nilai-nilai kedalaman, z i , dan temperatur, T i . Berdasarkan model tersebut, kitabisa menyatakan temperatur dan kedalaman masing-masing sebagai berikut:m 1 + m 2 z 1 = T 1m 1 + m 2 z 2 = T 2m 1 + m 2 z 3 = T 3m 1 + m 2 z 4 = T 4Semua persamaan tersebut dapat dinyatakan dalam operasi matrik berikut ini:⎡ ⎤1 z 1[1 z 2⎢⎣ 1 z⎥3 ⎦1 z 4]m 1=m 2⎡ ⎤T 1T 2⎢⎣ T⎥3 ⎦T 4(3.2)Lalu ditulis secara singkatGm = d (3.3)dimana d adalah data yang dinyatakan dalam vektor kolom, m adalah model parameter, jugadinyatakan dalam vektor kolom, dan G disebut matrik kernel. Lantas bagaimana cara menda-


3.1. INVERSI MODEL GARIS 41patkan nilai m 1 dan m 2 pada vektor kolom m? Manipulasi berikut ini bisa menjawabnyaG t Gm = G t d (3.4)dimana t disini maksudnya adalah tanda transpos matrik. Selanjutnya, untuk mendapatkanelemen-elemen m, diperlukan langkah-langkah perhitungan berikut ini:1. Tentukan transpos dari matrik kernel, yaitu G t⎡ ⎤1 z 1[G =1 z 2⎢⎣ 1 z⎥3 ⎦ ⇒ Gt =1 z 4]1 1 1 1z 1 z 2 z 3 z 42. Tentukan G t GG t G =[⎡]1 1 1 1z 1 z 2 z 3 z⎢4 ⎣⎤1 z 1[1 z 21 z⎥3 ⎦ =1 z 4∑ ]N zi∑ ∑zi z2idimana N = 4 dan i = 1, 2, 3, 4.3. Kemudian tentukan pula G t d⎡[G t d =]1 1 1 1z 1 z 2 z 3 z⎢4 ⎣⎤T 1[ ∑Ti ]T 2T⎥3 ⎦ = ∑zi T iT 44. Sekarang persamaan (3.4) dapat dinyatakan sebagai[∑ ] [N zi∑ ∑zi z2i] [ ∑Ti ]m 1= ∑m 2 zi T i(3.5)5. Aplikasikan metode Eliminasi Gauss dengan Substitusi Mundur. Untuk itu, tentukanmatrik augment-nya[ ∑N zi |∑ ∑zi z2i |∑ ]Ti∑zi T i6. Untuk mempermudah perhitungan, kita masukan dulu angka-angka yang tertera pada


42 BAB 3. APLIKASI ELIMINASI GAUSS PADA MASALAH INVERSItabel pengukuran dihalaman depan.[4 146 | 392146 10906 | 25462]7. Lakukan proses triangularisasi dengan operasi (P 2 − (36, 5)P 1 ) → P 2 . Saya sertakanpula indeks masing-masing elemen pada matrik augment sebagaimana yang telah sayalakukan pada catatan kuliah yang berjudul Metode Eliminasi Gauss. Hasilnya adalah[4 146 | 3920 5577 | 11154]=[]a 11 a 12 | a 13a 21 a 22 | a 238. Terakhir, tentukan konstanta m 1 dan m 2 yang merupakan elemen-elemen vektor kolomm, dengan proses substitusi mundur. Pertama tentukan m 2m 2 = a 23a 22= 111545577 = 2lalu tentukan m 1m 1 = a 13 − a 12 m 2 392 − (146)(2)= = 25a 11 43.1.1 Script matlab inversi model garisScript inversi model garis ini dibangun dari beberapa script yang sudah kita pelajari sebelumnya,yaitu script transpose matriks, perkalian matrik dan script eliminasi gauss. Silakan pelajarimaksud tiap-tiap baris pada script ini.1 clc2 clear all34 disp(’Data observasi’)5 z1=5;6 z2=16;7 z3=25;8 z4=100;910 T(1,1)=35;11 T(2,1)=57;12 T(3,1)=75;13 T(4,1)=225;1415 disp(’Elemen-elemen matriks kernel G’)16 G(1,1)=1;17 G(1,2)=z1;18 G(2,1)=1;19 G(2,2)=z2;20 G(3,1)=1;21 G(3,2)=z3;22 G(4,1)=1;23 G(4,2)=z4;24 G


3.1. INVERSI MODEL GARIS 4325 d=T;26 d2728 N=4; %jumlah data29 M=2; %model parameter3031 disp(’Mencari G transpos’)32 for i=1:N33 for j=1:M34 GT(j,i)=G(i,j);35 end36 end37 GT3839 disp(’Perkalian GT dan G’)40 for i=1:M41 for j=1:M42 GTG(i,j)=0;43 end44 end45 for i=1:M46 for j=1:M47 for k=1:N48 GTG(i,j)=GTG(i,j)+GT(i,k)*G(k,j);49 end50 end51 end52 GTG5354 disp(’Perkalian GT dan d’)55 for i=1:M56 for j=1:157 GTd(i,j)=0;58 end59 end60 for i=1:M61 for j=1:162 for k=1:N63 GTd(i,j)=GTd(i,j)+GT(i,k)*d(k,j);64 end65 end66 end67 GTd6869 A=GTG;70 %====== Menggabungkan Vektor GTd kedalam matrik A ========71 n=M;72 for i=1:n73 A(i,n+1)=GTd(i,1);74 end75 A7677 %&&&&&& Proses Eliminasi Gauss &&&&&&&&&&&&&&&&&&&&&&&&&78 %---------Proses Triangularisasi-----------79 for j=1:(n-1)8081 %----mulai proses pivot---82 if (A(j,j)==0)83 for p=1:n+1


44 BAB 3. APLIKASI ELIMINASI GAUSS PADA MASALAH INVERSI84 u=A(j,p);85 v=A(j+1,p);86 A(j+1,p)=u;87 A(j,p)=v;88 end89 end90 %----akhir proses pivot---91 jj=j+1;92 for i=jj:n93 m=A(i,j)/A(j,j);94 for k=1:(n+1)95 A(i,k)=A(i,k)-(m*A(j,k));96 end97 end98 end99 %-------------------------------------------100101 %------Proses Substitusi mundur-------------102 x(n,1)=A(n,n+1)/A(n,n);103104 for i=n-1:-1:1105 S=0;106 for j=n:-1:i+1107 S=S+A(i,j)*x(j,1);108 end109 x(i,1)=(A(i,n+1)-S)/A(i,i);110 end111 %&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&112 disp(’Model parameter yang dicari’)113 m=xSebetulnya, matlab telah menyediakan fungsi-fungsi intrinsik yang bisa digunakan sehinggadapat memperkecil jumlah baris pada script di atas. Dari line 28 sampai line 113 dapatdipangkas menjadi1 m=inv(G’*G)*G’*d %Proses inversi linearLalu mengapa kita harus bersusah payah membangun script yang begitu panjang bila matlabbisa melakukannya dengan mudah? Karena kita sedang mempelajari teknik-teknik komputasiuntuk menyelesaikan problem sains dan teknik. Kita tidak sedang belajar matlab. Jaditeknik-teknik yang dipelajari disini harus bisa diterapkan di selain matlab. Script singkatm = inv(G ′ ∗ G) ∗ G ′ ∗ d hanya berlaku di matlab, sementara script yang panjangnya 113 linedapat diterjemahkan dengan sangat mudah ke dalam bahasa pemrograman selain matlab.Demikianlah contoh aplikasi metode Eliminasi Gauss dengan substitusi mundur. Andabisa mengaplikasikan pada kasus lain, dengan syarat kasus yang anda tangani memiliki bentukmodel yang sama dengan yang telah dikerjakan pada catatan ini, yaitu model persamaangaris atau disingkat model garis: y = m1 + m2x. Selanjutnya mari kita pelajari inversi modelparabola.


3.2. INVERSI MODEL PARABOLA 453.2 Inversi Model ParabolaPengukuran temperatur terhadap kedalaman di bawah permukaan bumi menunjukkan bahwasemakin dalam, temperatur semakin tinggi. Misalnya telah dilakukan sebanyak delapankali (N = 8) pengukuran temperatur (T i ) pada kedalaman yang berbeda beda (z i ). Tabel pengukuransecara sederhana disajikan seperti ini:Tabel 3.2: Data temperatur bawah permukaan tanah terhadap kedalamanPengukuran ke-i Kedalaman (m) Temperatur ( O C)1 z 1 = 5 T 1 = 21, 752 z 2 = 8 T 2 = 22, 683 z 3 = 14 T 3 = 25, 624 z 4 = 21 T 4 = 30, 875 z 5 = 30 T 5 = 40, 56 z 6 = 36 T 6 = 48, 727 z 7 = 45 T 7 = 63, 758 z 8 = 60 T 8 = 96Lalu kita berasumsi bahwa variasi temperatur terhadap kedalaman ditentukan oleh rumusberikut ini:m 1 + m 2 z i + m 3 zi 2 = T i (3.6)dimana m 1 , m 2 dan m 3 adalah konstanta-konstanta yang akan dicari. Rumus di atas disebutmodel. Sedangkan m 1 , m 2 dan m 3 disebut model parameter. Jadi pada model di atas terdapattiga buah model parameter, (M = 3). Adapun yang berlaku sebagai data adalah nilai-nilaitemperatur T 1 , T 2 ,..., dan T 8 . Berdasarkan model tersebut, kita bisa menyatakan temperaturdan kedalaman masing-masing sebagai berikut:m 1 + m 2 z 1 + m 3 z1 2 = T 1m 1 + m 2 z 2 + m 3 z2 2 = T 2m 1 + m 2 z 3 + m 3 z3 2 = T 3m 1 + m 2 z 4 + m 3 z4 2 = T 4m 1 + m 2 z 5 + m 3 z5 2 = T 5m 1 + m 2 z 6 + m 3 z6 2 = T 6m 1 + m 2 z 7 + m 3 z7 2 = T 7m 1 + m 2 z 8 + m 3 z8 2 = T 8


46 BAB 3. APLIKASI ELIMINASI GAUSS PADA MASALAH INVERSISemua persamaan tersebut dapat dinyatakan dalam operasi matrik berikut ini:⎡ ⎤ ⎡ ⎤1 z 1 z12 T 11 z 2 z 2 2T 21 z 3 z32 ⎡ ⎤T 31 z 4 z42 m 1⎢ ⎥1 z 5 z52 ⎣ m 2 ⎦ =T 4T 51 z 6 z62 m 3 T 6⎢⎣ 1 z 7 z72 ⎥ ⎢⎦ ⎣ T⎥7 ⎦1 z 8 z82 T 8(3.7)Lalu ditulis secara singkatGm = d (3.8)dimana d adalah data yang dinyatakan dalam vektor kolom, m adalah model parameter, jugadinyatakan dalam vektor kolom, dan G disebut matrik kernel. Lantas bagaimana cara mendapatkannilai m 1 , m 2 dan m 3 pada vektor kolom m? Manipulasi berikut ini bisa menjawabnyaG t Gm = G t d (3.9)dimana t disini maksudnya adalah tanda transpos matrik. Selanjutnya, untuk mendapatkanelemen-elemen m, diperlukan langkah-langkah perhitungan berikut ini:1. Tentukan transpos dari matrik kernel, yaitu G t⎡ ⎤1 z 1 z12 1 z 2 z 2 21 z 3 z 2 3G =1 z 4 z 2 41 z 5 z52 1 z 6 z62 ⎢⎣ 1 z 7 z72 ⎥⎦1 z 8 z82⇒ G t =⎡⎢⎣1 1 1 1 1 1 1 1z 1 z 2 z 3 z 4 z 5 z 6 z 7 z 8z 2 1 z 2 2 z 2 3 z 2 4 z 2 5 z 2 6 z 2 7 z 2 8⎤⎥⎦2. Tentukan G t G⎡⎤G t G =⎡⎢⎣1 1 1 1 1 1 1 1z 1 z 2 z 3 z 4 z 5 z 6 z 7 z 8z 2 1 z 2 2 z 2 3 z 2 4 z 2 5 z 2 6 z 2 7 z 2 8⎤⎥⎦⎢⎣1 z 1 z121 z 2 z221 z 3 z321 z 4 z421 z 5 z521 z 6 z621 z 7 z72⎡ ∑ ∑ ⎤N zi z2 ⎢ ∑ ∑ ∑ i= ⎣ zi z2i z3 ⎥i ⎦∑ ∑ ∑ z2 i z3i z4i ⎥⎦1 z 8 z 2 8


3.2. INVERSI MODEL PARABOLA 47dimana N = 8 dan i = 1, 2, 3, ...,8.3. Kemudian tentukan pula G t dG t d =⎡⎢⎣1 1 1 1 1 1 1 1z 1 z 2 z 3 z 4 z 5 z 6 z 7 z 8z 2 1 z 2 2 z 2 3 z 2 4 z 2 5 z 2 6 z 2 7 z 2 8⎡⎤⎥⎦⎢⎣⎤T 1T 2T 3⎡ ∑ ⎤TiT 4⎢ ∑ ⎥T = ⎣ zi T i ⎦5∑ z2T 6i T i T⎥7 ⎦T 84. Sekarang persamaan (3.14) dapat dinyatakan sebagai (ini khan least square juga...!?)⎡ ∑ ∑ ⎤⎡⎤N zi z2i m 1⎢ ∑ ∑ ∑⎣ zi z2i z3 ⎥⎢∑ ∑ ∑ i ⎦⎣m 2z2i z3i z4i m 3⎥⎦ =⎡⎢⎣∑ ⎤Ti∑ ⎥zi T i∑ z2i T i⎦ (3.10)5. Aplikasikan metode Eliminasi Gauss dengan Substitusi Mundur. Untuk itu, tentukanmatrik augment-nya⎡⎢⎣∑ ∑N zi z2i |∑ ∑ ∑zi z2i z3i |∑ z2i∑ z3i∑ z4i |∑ ⎤Ti∑ ⎥zi T i ⎦∑ z2i T i6. Untuk mempermudah perhitungan, kita masukan dulu angka-angka yang tertera padatabel pengukuran dihalaman depan.⎡⎢⎣8 219 8547 | 349, 89219 8547 393423 | 12894, 818547 393423 19787859 | 594915, 33⎤⎥⎦7. Lakukan proses triangularisasi dengan operasi (P 2 − (219/8)P 1 ) → P 2 . Hasilnya adalah⎡⎢⎣8 219 8547 | 349, 890 2551, 88 159448, 88 | 3316, 578547 393423 19787859 | 594915, 33⎤⎥⎦8. Masih dalam proses triangularisai, operasi berikutnya (P 3 − (8547/8)P 1 ) → P 3 . Hasilnya


48 BAB 3. APLIKASI ELIMINASI GAUSS PADA MASALAH INVERSIadalah⎡⎢⎣8 219 8547 | 349, 890 2551, 88 159448, 88 | 3316, 570 159448.88 10656457, 88 | 221101, 6⎤⎥⎦9. Masih dalam proses triangularisai, operasi berikutnya (P 3 − (159448, 88/2551, 88)P 2 ) →P 3 . Hasilnya adalah⎡⎢⎣8 219 8547 | 349, 890 2551, 88 159448, 88 | 3316, 570 0 693609, 48 | 13872, 19⎤⎥⎦ (3.11)Seperti catatan yang lalu, saya ingin menyertakan pula notasi masing-masing elemenpada matrik augment sebelum melakukan proses substitusi mundur.⎡⎢⎣8 219 8547 | 349, 890 2551, 88 159448, 88 | 3316, 570 0 693609, 48 | 13872, 19⎤⎡⎥ ⎢⎦ ⇔ ⎣⎤a 11 a 12 a 13 | a 14⎥a 21 a 22 a 23 | a 24 ⎦a 31 a 32 a 33 | a 3410. Terakhir, tentukan konstanta m 1 , m 2 dan m 3 yang merupakan elemen-elemen vektorkolom m, dengan proses substitusi mundur. Pertama tentukan m 3m 3 = a 34a 33=13872, 19= 0, 02693609, 48lalu m 2m 2 = a 24 − a 23 m 3 3316, 57 − (159448, 88)(0, 02)= = 0, 05a 22 2551, 88dan m 1m 1 = a 14 − (a 12 m 2 + a 13 m 3 ) 349, 89 − [(219)(0, 05) + (8547)(0, 02)= = 21a 11 83.2.1 Script matlab inversi model parabolaPerbedaan utama script ini dengan script inversi model garis terletak pada inisialisasi elemenelemenmatrik kernel. Elemen-elemen matrik kernel sangat ditentukan oleh model matematikayang digunakan. Seperti pada script ini, matrik kernelnya diturunkan dari persamaan parabola.1 clc2 clear all34 z1=5;5 z2=8;6 z3=14;7 z4=21;


3.2. INVERSI MODEL PARABOLA 498 z5=30;9 z6=36;10 z7=45;11 z8=60;1213 T(1,1)=21.75;14 T(2,1)=22.68;15 T(3,1)=25.62;16 T(4,1)=30.87;17 T(5,1)=40.5;18 T(6,1)=48.72;19 T(7,1)=63.75;20 T(8,1)=96;2122 G(1,1)=1;23 G(1,2)=z1;24 G(1,3)=z1^2;25 G(2,1)=1;26 G(2,2)=z2;27 G(2,3)=z2^2;28 G(3,1)=1;29 G(3,2)=z3;30 G(3,3)=z3^2;31 G(4,1)=1;32 G(4,2)=z4;33 G(4,3)=z4^2;34 G(5,1)=1;35 G(5,2)=z5;36 G(5,3)=z5^2;37 G(6,1)=1;38 G(6,2)=z6;39 G(6,3)=z6^2;40 G(7,1)=1;41 G(7,2)=z7;42 G(7,3)=z7^2;43 G(8,1)=1;44 G(8,2)=z8;45 G(8,3)=z8^2;4647 G48 d=T;49 d5051 N=8; %jumlah data52 M=3; %model parameter53 pause545556 %%%%%===========Proses inversi==============57 disp(’Mencari G transpos’)58 for i=1:N59 for j=1:M60 GT(j,i)=G(i,j);61 end62 end63 GT6465 disp(’Perkalian GT dan G’)66 for i=1:M


50 BAB 3. APLIKASI ELIMINASI GAUSS PADA MASALAH INVERSI67 for j=1:M68 GTG(i,j)=0;69 end70 end71 for i=1:M72 for j=1:M73 for k=1:N74 GTG(i,j)=GTG(i,j)+GT(i,k)*G(k,j);75 end76 end77 end78 GTG7980 disp(’Perkalian GT dan d’)81 for i=1:M82 for j=1:183 GTd(i,j)=0;84 end85 end86 for i=1:M87 for j=1:188 for k=1:N89 GTd(i,j)=GTd(i,j)+GT(i,k)*d(k,j);90 end91 end92 end93 GTd9495 A=GTG;96 %====== Menggabungkan Vektor GTd kedalam matrik A ========97 n=M;98 for i=1:n99 A(i,n+1)=GTd(i,1);100 end101 A102 pause103104 disp(’Hasil Eliminasi Gauss’)105 %&&&&&& Proses Eliminasi Gauss &&&&&&&&&&&&&&&&&&&&&&&&&106 %---------Proses Triangularisasi-----------107 for j=1:(n-1)108109 %----mulai proses pivot---110 if (A(j,j)==0)111 for p=1:n+1112 u=A(j,p);113 v=A(j+1,p);114 A(j+1,p)=u;115 A(j,p)=v;116 end117 end118 %----akhir proses pivot---119 jj=j+1;120 for i=jj:n121 m=A(i,j)/A(j,j);122 for k=1:(n+1)123 A(i,k)=A(i,k)-(m*A(j,k));124 end125 end


3.3. INVERSI MODEL BIDANG 51126 end127 %-------------------------------------------128129 %------Proses Substitusi mundur-------------130 x(n,1)=A(n,n+1)/A(n,n);131132 for i=n-1:-1:1133 S=0;134 for j=n:-1:i+1135 S=S+A(i,j)*x(j,1);136 end137 x(i,1)=(A(i,n+1)-S)/A(i,i);138 end139 %&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&140 %%%%%%%%%%%=====AKHIR DARI INVERSI MODEL GARIS==========141 m=xDemikianlah contoh aplikasi metode Eliminasi Gauss dengan substitusi mundur. Andabisa mengaplikasikan pada kasus lain, dengan syarat kasus yang anda tangani memiliki bentukmodel yang sama dengan yang telah dikerjakan pada catatan ini, yaitu memiliki tiga buahmodel parameter yang tidak diketahui dalam bentuk persamaan parabola: y = m 1 + m 2 x +m 3 x 2 . Pada catatan berikutnya, saya akan membahas model yang mengandung tiga modelparameter dalam 2 dimensi.3.3 Inversi Model BidangDalam catatan ini saya belum sempat mencari contoh pengukuran yang sesuai untuk model2-dimensi. Maka, saya ingin langsung saja mengajukan sebuah model untuk 2-dimensi berikutini:m 1 + m 2 x i + m 3 y i = d i (3.12)dimana m 1 , m 2 dan m 3 merupakan model parameter yang akan dicari. Adapun yang berlakusebagai data adalah d 1 , d 2 , d 3 , ..., d i . Berdasarkan model tersebut, kita bisa menyatakan temperaturdan kedalaman masing-masing sebagai berikut:m 1 + m 2 x 1 + m 3 y 1 = d 1m 1 + m 2 x 2 + m 3 y 2 = d 2m 1 + m 2 x 3 + m 3 y 3 = d 3.....m 1 + m 2 x N + m 3 y N = d N


52 BAB 3. APLIKASI ELIMINASI GAUSS PADA MASALAH INVERSISemua persamaan tersebut dapat dinyatakan dalam operasi matrik berikut ini:⎡ ⎤ ⎡1 x 1 y 1⎡ ⎤1 x 2 y 2m 11 x 3 y ⎢ ⎥3⎣ m 2 ⎦ =⎢⎣ . . .⎥⎦ m 3⎢⎣1 x N y N⎤d 1d 2d 3.⎥⎦d NLalu ditulis secara singkatGm = d (3.13)dimana d adalah data yang dinyatakan dalam vektor kolom, m adalah model parameter, jugadinyatakan dalam vektor kolom, dan G disebut matrik kernel. Lantas bagaimana cara mendapatkannilai m 1 , m 2 dan m 3 pada vektor kolom m? Manipulasi berikut ini bisa menjawabnyaG t Gm = G t d (3.14)dimana t disini maksudnya adalah tanda transpos matrik. Selanjutnya, untuk mendapatkanelemen-elemen m, diperlukan langkah-langkah perhitungan berikut ini:1. Tentukan transpos dari matrik kernel, yaitu G t⎡ ⎤1 x 1 y 11 x 2 y 2G =1 x 3 y 3⎢⎣ . . .⎥⎦1 x N y N⇒ G t =⎡⎢⎣⎤1 1 1 · · · 1⎥x 1 x 2 x 3 · · · x N ⎦y 1 y 2 y 3 · · · y N2. Tentukan G t GG t G =⎡⎢⎣⎡⎤1 1 1 · · · 1⎥x 1 x 2 x 3 · · · x N ⎦y 1 y 2 y 3 · · · y N⎢⎣⎤1 x 1 y 1⎡1 x 2 y 2∑ ∑ ⎤N xi yi1 x 3 y ⎢ ∑ ∑ ∑3= ⎣ xi x2 ⎥i xi y i ⎦. . .⎥∑ ∑ ∑⎦ yi xi y i y2i1 x N y Ndimana N = jumlah data. dan i = 1, 2, 3, ..., N.3. Kemudian tentukan pula G t dG t d =⎡⎢⎣⎡⎤1 1 1 · · · 1⎥x 1 x 2 x 3 · · · x N ⎦y 1 y 2 y 3 · · · y N⎢⎣⎤d 1⎡d 2∑ ⎤did ⎢ ∑ ⎥3= ⎣ xi d i ⎦.⎥∑⎦ yi d id N


3.4. CONTOH APLIKASI 534. Sekarang, persamaan (3.14) dapat dinyatakan sebagai⎡ ∑ ∑ ⎤⎡⎤N xi yi m 1⎢ ∑ ∑ ∑⎣ xi x2 ⎥⎢i xi y i ⎦⎣m 2∑ ∑ ∑yi xi y i y2i m 3⎥⎦ =⎡⎢⎣∑ ⎤di∑ ⎥xi d i∑yi d i⎦ (3.15)5. Aplikasikan metode Eliminasi Gauss dengan Substitusi Mundur. Untuk itu, tentukanmatrik augment-nya⎡⎢⎣∑ ∑N xi yi |∑ ∑ ∑xi x2i xi y i |∑yi∑xi y i∑ y2i |∑ ⎤di∑ ⎥xi d i ⎦∑yi d i6. Langkah-langkah selanjutnya akan sama persis dengan catatan sebelumnya (model lineardan model parabola)Anda bisa mengaplikasikan data pengukuran yang anda miliki, dengan syarat kasus yanganda tangani memiliki bentuk model yang sama dengan yang telah dikerjakan pada catatanini, yaitu memiliki tiga buah model parameter yang tidak diketahui dalam bentuk persamaanbidang (atau 2-dimensi): d = m 1 + m 2 x + m 3 y.Saya cukupkan sementara sampai disini. Insya Allah akan saya sambung lagi dilain waktu.Kalau ada yang mau didiskusikan, silakan hubungi saya melalui email: supri@fisika.ui.ac.id.3.4 Contoh aplikasi3.4.1 Menghitung gravitasi di planet XSeorang astronot tiba di suatu planet yang tidak dikenal. Setibanya disana, ia segera mengeluarkankamera otomatis, lalu melakukan ekperimen kinematika yaitu dengan melempar batuvertikal ke atas. Hasil foto-foto yang terekam dalam kamera otomatis adalah sebagai berikutTabel 3.3: Data ketinggian terhadap waktu dari planet XWaktu (dt) Ketinggian (m) Waktu (dt) Ketinggian (m)0,00 5,00 2,75 7,620,25 5,75 3,00 7,250,50 6,40 3,25 6,770,75 6,94 3,50 6,201,00 7,38 3,75 5,521,25 7,72 4,00 4,731,50 7,96 4,25 3,851,75 8,10 4,50 2,862,00 8,13 4,75 1,772,25 8,07 5,00 0,582,50 7,90Plot data pengukuran waktu vs ketinggian diperlihatkan sebagai berikut


54 BAB 3. APLIKASI ELIMINASI GAUSS PADA MASALAH INVERSI9876Tinggi (meter)5432100 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5Waktu (detik)Gambar 3.2: Grafik data pengukuran gerak batuAnda diminta untuk membantu pengolahan data di atas. Jika anda menggunakan asumsimodel matematik dari Gerak-Lurus-Berubah-Beraturan (GLBB) seperti inih o + v o t − 1 2 gt2 = hmaka gunakanlah prinsip-prinsip inversi untuk menentukan kecapatan awal, v o dan konstantagravitasi, g pada planet tersebut.jawab:Berdasarkan tabel di atas, diketahui terdapat 21 data. Ketinggian pada saat t = 0 adalah h o = 5m. Untuk mencari v o dan g menggunakan metode inversi, mula-mula kita definisikan terlebihdahulu m 1 dan m 2 :m 1 = v o m 2 = − 1 2 gsehingga persamaan model GLBB menjadi5 + m 1 t i + m 2 t 2 i = h idimana i menunjukkan data ke-i. Langkah selanjutnya adalah menentukan nilai tiap-tiap ele-


3.4. CONTOH APLIKASI 55men matrik kernel, yaitu dengan memasukan semua data kedalam persamaan model GLBB5 + m 1 t 1 + m 2 t 2 1 = h 15 + m 1 t 2 + m 2 t 2 2 = h 25 + m 1 t 3 + m 2 t 2 3 = h 3.. = .5 + m 1 t 20 + m 2 t 2 20 = h 20Semua persamaan tersebut dapat dinyatakan dalam operasi matrik berikut ini:⎡ ⎤5 t 1 t 2 15 t 2 t 2 25 t 3 t 2 3[5 t 4 t 2 4. . .⎢⎣ 5 t 19 t 2 ⎥19 ⎦5 t 20 t 2 20]m 1=m 2⎡⎢⎣⎤h 1h 2h 3.⎥h 19 ⎦h 20Sebelum dilanjut, coba perhatikan dengan teliti operasi matrik di atas. Adakah yang janggal??Yep.. matrik kernel G berukuran 20x3 sementara vektor m berukuran 2x1, tentu saja operasiperkalian matrik akan gagal. Untuk menghindarinya, kita tambahkan m 0 pada vektor m, sehinggaoperasi tersebut menjadi⎡ ⎤5 t 1 t 2 1⎡5 t 2 t 2 25 t 3 t 2 ⎡ ⎤3m 5 t 4 t 2 0⎢ ⎥4⎣ m 1 ⎦ =. . .m 2 ⎢⎢⎣ 5 t 19 t 2 ⎥ ⎣19 ⎦5 t 20 t 2 20⎤h 1h 2h 3.⎥h 19 ⎦h 20Namun, perlu dicatat bahwa m 0 harus punya syarat, yaitu harus bernilai 1 atau m 0 =1. Iniboleh dibilang sebagai sebuah aksioma, atau sesuatu yang tak perlu dibuktikan lagi tapi takbisa dibantah. Tinggal nanti bisa kita periksa hasil inversinya. Bila m 0 bernilai 1, maka prosesinversi dianggap sukses. Kemudian operasi matrik tersebut bisa ditulis secara singkatGm = dUntuk menyelesaikan persamaan matrik ini, diperlukan modifikasi berikutG T Gm = G T d (3.16)


56 BAB 3. APLIKASI ELIMINASI GAUSS PADA MASALAH INVERSIdimana T disini maksudnya adalah tanda transpos matrik. Selanjutnya, untuk mendapatkanm 0 , m 1 dan m 2 , diperlukan langkah-langkah perhitungan berikut ini:1. Tentukan transpos dari matrik kernel, yaitu G t⎡ ⎤5 t 1 t 2 15 t 2 t 2 25 t 3 t 2 3G =5 t 4 t 2 4. . .⎢⎣ 5 t 19 t 2 ⎥19 ⎦5 t 20 t 2 20⇒ G T =⎡⎢⎣5 5 5 5 . . . 5 5t 1 t 2 t 3 t 4 . . . t 19 t 20t 2 1 t 2 2 t 2 3 t 2 4 . . . t 2 19 t 2 20⎤⎥⎦2. Tentukan G T GG T G =⎡⎢⎣5 5 5 5 . . . 5 5t 1 t 2 t 3 t 4 . . . t 19 t 20t 2 1 t 2 2 t 2 3 t 2 4 . . . t 2 19 t 2 20⎡⎤⎥⎦⎢⎣5 t 1 t 2 15 t 2 t 2 25 t 3 t 2 35 t 4 t 2 4. . .5 t 19 t 2 19⎤⎡25N 5 ∑ t i 5 ∑ ⎤t 2 i⎢= ⎣ 5 ∑ ∑ ∑t i t2i t3 ⎥i5 ∑ ⎦t 2 ∑ ∑i t3i t4i⎥⎦5 t 20 t 2 20dimana N = 20 dan i = 1, 2, ...,20.3. Kemudian tentukan pula G T dG T d =⎡⎢⎣5 5 5 5 . . . 5 5t 1 t 2 t 3 t 4 . . . t 19 t 20t 2 1 t 2 2 t 2 3 t 2 4 . . . t 2 19 t 2 20⎡⎤⎥⎦⎢⎣⎤h 1h 2h 3h 4.h⎥19 ⎦h 20=⎡⎢⎣5 ∑ ⎤h i∑ ⎥ti h i ⎦∑ t2i h i4. Sekarang persamaan (3.16) dapat dinyatakan sebagai⎡25N 5 ∑ t i 5 ∑ ⎤⎡⎤t 2 i⎢⎣ 5 ∑ m 0∑ ∑t i t2i t3 ⎥⎢i5 ∑ ⎦⎣m 1t 2 ∑ ∑i t3i t4i m 2⎥⎦ =⎡⎢⎣5 ∑ ⎤h i∑ ⎥ti h i∑ t2i h i⎦ (3.17)


3.4. CONTOH APLIKASI 579876Ketinggian (m)5432100 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5Waktu (dt)Gambar 3.3: Grafik hasil inversi parabola⎡⎢⎣500 262, 5 896, 9262, 5 179, 4 689, 1896, 9 689, 1 2822, 9⎤⎡⎥⎢⎦⎣⎤m 0m 1m 2⎥⎦ =⎡⎢⎣607, 5273, 7796, 3⎤⎥⎦Hasil operasi matriks ini dapat diselesaikan dengan metode Eliminasi Gauss, yaitu⎡⎢⎣⎤m 0m 1m 2⎥⎦ =⎡⎢⎣0, 99993, 2009−0, 8169⎤⎥⎦Lihatlah! m 0 = 0,9999 atau mendekati 1. Dan ini sesuai dengan aksioma yang telah dinyatakandi awal bahwa memang m 0 harus bernilai 1. Jika m 0 tidak bernilai 1 berarti teknik inversinyasalah total.Hasil inversi juga menunjukkan bahwa kecepatan awal yaitu saat batu dilempar ke atasadalah sebesar m 1 = v o = 3,2009 m/dt. Adapun percepatan gravitasi diperoleh dari m 2 dimanam 2 = − 1 2 g = -0,8169. Sehingga nilai g adalah sebesar 1,6338 m/dt2 .Gambar 3.3 memperlihatkan grafik kurva hasil inversi. Garis berwarna biru merupakangaris kurva fitting hasil inversi parabola. Sedangkan bulatan berwarna merah adalah data pengukuranketinggian (m) terhadap waktu (dt). Jelas terlihat bahwa garis kurva berwarna birubenar-benar cocok melewati semua titik data pengukuran. Ini menunjukkan tingkat akurasiyang sangat tinggi. Sehingga nilai kecepatan awal dan gravitasi hasil inversi cukup valid untukmenjelaskan gerak batu di planet X.


58 BAB 3. APLIKASI ELIMINASI GAUSS PADA MASALAH INVERSIBerikut adalah script inversi dalam Matlab untuk memecahkan masalah ini1 clear all2 clc;34 N=20; %jumlah data5 M=3; %model parameter6 for i=1:N7 t(i)=i*0.25;8 end9 h(1)=5.75;10 h(2)=6.40;11 h(3)=6.94;12 h(4)=7.38;13 h(5)=7.72;14 h(6)=7.96;15 h(7)=8.10;16 h(8)=8.13;17 h(9)=8.07;18 h(10)=7.90;19 h(11)=7.62;20 h(12)=7.25;21 h(13)=6.77;22 h(14)=6.20;23 h(15)=5.52;24 h(16)=4.73;25 h(17)=3.85;26 h(18)=2.86;27 h(19)=1.77;28 h(20)=0.58;2930 for i=1:N31 G(i,1)=5;32 G(i,2)=t(i);33 G(i,3)=t(i)^2;34 end35 G36 for i=1:N37 d(i,1)=h(i);38 end39 d4041 %%%%%===========Proses inversi==============42 disp(’Mencari G transpos’)43 for i=1:N44 for j=1:M45 GT(j,i)=G(i,j);46 end47 end48 GT4950 disp(’Perkalian GT dan G’)51 for i=1:M52 for j=1:M53 GTG(i,j)=0;54 end55 end56 for i=1:M57 for j=1:M


3.4. CONTOH APLIKASI 5958 for k=1:N59 GTG(i,j)=GTG(i,j)+GT(i,k)*G(k,j);60 end61 end62 end63 GTG6465 disp(’Perkalian GT dan d’)66 for i=1:M67 for j=1:168 GTd(i,j)=0;69 end70 end71 for i=1:M72 for j=1:173 for k=1:N74 GTd(i,j)=GTd(i,j)+GT(i,k)*d(k,j);75 end76 end77 end78 GTd7980 A=GTG;81 %====== Menggabungkan Vektor GTd kedalam matrik A ========82 n=M;83 for i=1:n84 A(i,n+1)=GTd(i,1);85 end86 A87 pause8889 disp(’Hasil Eliminasi Gauss’)90 %&&&&&& Proses Eliminasi Gauss &&&&&&&&&&&&&&&&&&&&&&&&&91 %---------Proses Triangularisasi-----------92 for j=1:(n-1)9394 %----mulai proses pivot---95 if (A(j,j)==0)96 for p=1:n+197 u=A(j,p);98 v=A(j+1,p);99 A(j+1,p)=u;100 A(j,p)=v;101 end102 end103 %----akhir proses pivot---104 jj=j+1;105 for i=jj:n106 m=A(i,j)/A(j,j);107 for k=1:(n+1)108 A(i,k)=A(i,k)-(m*A(j,k));109 end110 end111 end112 %-------------------------------------------113 %------Proses Substitusi mundur-------------114 x(n,1)=A(n,n+1)/A(n,n);115116 for i=n-1:-1:1


60 BAB 3. APLIKASI ELIMINASI GAUSS PADA MASALAH INVERSI117 S=0;118 for j=n:-1:i+1119 S=S+A(i,j)*x(j,1);120 end121 x(i,1)=(A(i,n+1)-S)/A(i,i);122 end123 %&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&124 %%%%%%%%%%%===== AKHIR DARI PROSES INVERSI ==========125 m=x126127 %-------MENGGAMBAR GRAFIK----------------------128 plot(t,h,’ro’);129 xlabel(’Waktu (dt)’);ylabel(’Ketinggian (m)’);130 hold on;131 for i=1:20132 hi(i)=5+m(2)*t(i)+m(3)*t(i)^2;133 end134 plot(t,hi);135 hold off;


Bab 4Metode LU Decomposition✍ Objektif :⊲ Mengenalkan teknik faktorisasi matrik.⊲ Mengenalkan aplikasi LU Decomposition pada sistem persamaan linear.⊲ Merumuskan algoritma LU Decomposition.4.1 Faktorisasi matrikPada semua catatan yang terdahulu, telah diulas secara panjang lebar bahwa sistem persamaanlinear dapat dicari solusinya secara langsung dengan metode eliminasi gauss. Namun perlujuga diketahui bahwa eliminasi gauss bukan satu-satunya metode dalam mencari solusi sistempersamaan linear, misalnya ada metode matrik inversi seperti yang dijelaskan pada catatanyang paling terakhir. Terlepas dari masalah in-efisiensi penyelesaiannya, yang jelas metodeinvers matrik bisa digunakan untuk menyelesaikan sistem persamaan linear.Nah, pada catatan kali ini, saya ingin mengetengahkan sebuah metode yang lain untukmenyelesaikan sistem persamaan linear, yaitu metode faktorisasi matrik yang umum dikenalsebagai LU-decomposition. Metode ini sekaligus menjadi pengantar menuju metode SingularValue Decomposition, (SVD), suatu metode yang saat ini paling “handal” dalam menyelesaikansistem persamaan linear dan merupakan bagian dari metode least square.Seperti biasa, kita berasumsi bahwa sistem persamaan linear dapat dinyatakan dalam operasimatrikAx = b (4.1)Pada metode LU-decomposition, matrik A difaktorkan menjadi matrik L dan matrik U, dimanadimensi atau ukuran matrik L dan U harus sama dengan dimensi matrik A. Atau dengan katalain, hasil perkalian matrik L dan matrik U adalah matrik A,A = LU (4.2)61


62 BAB 4. METODE LU DECOMPOSITIONsehingga persamaan (6.4) menjadiLUx = bLangkah penyelesaian sistem persamaan linear dengan metode LU-decomposition, diawali denganmenghadirkan vektor y dimana,Ux = y (4.3)Langkah tersebut tidak bermaksud untuk menghitung vektor y, melainkan untuk menghitungvektor x. Artinya, sebelum persamaan (4.3) dieksekusi, nilai-nilai yang menempati elemenelemenvektor y harus sudah diketahui. Lalu bagaimana cara memperoleh vektor y? Beginicaranya,Ly = b (4.4)Kesimpulannya, metode LU-decomposition dilakukan dengan tiga langkah sebagai berikut:• Melakukan faktorisasi matrik A menjadi matrik L dan matrik U → A = LU.• Menghitung vektor y dengan operasi matrik Ly = b. Ini adalah proses forward-substitutionatau substitusi-maju.• Menghitung vektor x dengan operasi matrik Ux = y. Ini adalah proses backward-substitutionatau substitusi-mundur.Metode LU-decomposition bisa dibilang merupakan modifikasi dari eliminasi gauss, karenabeberapa langkah yang mesti dibuang pada eliminasi gauss, justru harus dipakai oleh LUdecomposition.Untuk lebih jelasnya, perhatikan contoh berikut ini. Diketahui sistem persamaanlinear sebagai berikutP 1 : x 1 + x 2 + 3x 4 = 4P 2 : 2x 1 + x 2 − x 3 + x 4 = 1P 3 : 3x 1 − x 2 − x 3 + 2x 4 = -3P 4 : −x 1 + 2x 2 + 3x 3 − x 4 = 4Sistem tersebut dapat dinyatakan dalam operasi matrik Ax = y,⎡⎤⎡⎤ ⎡1 1 0 3 x 12 1 −1 1x 2⎢⎣ 3 −1 −1 2⎥⎢⎦⎣x⎥3 ⎦ = ⎢⎣−1 2 3 −1 x 4⎤41−3⎥⎦4(4.5)Pada metode eliminasi gauss, matrik A dikonversi menjadi matrik triangular melalui urutanoperasi-operasi berikut: (P 2 − 2P 1 ) → (P 2 ), (P 3 − 3P 1 ) → (P 3 ), (P 4 − (−1)P 1 ) → (P 4 ), (P 3 −4P 2 ) → (P 3 ), (P 4 − (−3)P 2 ) → (P 4 ). Disisi lain, vektor b ikut berubah nilainya menyesuaikan


4.1. FAKTORISASI MATRIK 63proses triangularisasi,⎡⎢⎣1 1 0 30 −1 −1 −50 0 3 130 0 0 −13⎤⎡⎥⎢⎦⎣⎤ ⎡x 1x 2x⎥3 ⎦ = ⎢⎣x 44−713−13⎤⎥⎦(4.6)Lain halnya dengan metode LU-decomposition dimana vektor b tidak mengalami perubahan.Yang berubah hanya matrik A saja, yaitu menjadi matrik L dan matrik U, A = LU⎡⎤ ⎡⎤⎡⎤1 1 0 3 1 0 0 0 1 1 0 3A =2 1 −1 1⎢⎣ 3 −1 −1 2⎥⎦ = 2 1 0 00 −1 −1 −5⎢⎣ 3 4 1 0⎥⎢⎦⎣0 0 3 13⎥⎦−1 2 3 −1 −1 −3 0 1 0 0 0 −13Jadi matrik L dan U masing-masing adalah⎡L =⎢⎣1 0 0 02 1 0 03 4 1 0−1 −3 0 1⎤⎥⎦⎡U =⎢⎣1 1 0 30 −1 −1 −50 0 3 130 0 0 −13⎤⎥⎦Coba bandingkan matrik U di atas dengan matrik hasil triangularisasi dari metode eliminasigauss pada persamaan (4.6), sama persis bukan? Jadi, cara memperoleh matrik U adalah denganproses 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 nilai0. (3) sedangkan, elemen-elemen matrik L yang berada di bawah elemen-elemen diagonaldiisi dengan faktor pengali yang digunakan pada proses triangularisasi eliminasi gauss.Misalnya pada operasi (P 2 − 2P 1 ) → (P 2 ), maka faktor pengalinya adalah 2; pada operasi(P 3 − 3P 1 ) → (P 3 ), maka faktor pengalinya adalah 3, dan seterusnya.Inilah letak perbedaannya, seluruh faktor pengali tersebut sangat dibutuhkan pada metodeLU-decomposition untuk membentuk matrik L. Padahal dalam metode eliminasi gauss, seluruhfaktor pengali tersebut tidak dimanfaatkan alias dibuang begitu saja. Disisi lain, vektor b tidakmengalami proses apapun sehingga nilainya tetap. Jadi, proses konversi matrik pada metodeLU-decomposition hanya melibatkan matrik A saja!Setelah langkah faktorisasi matrik A dilalui, maka operasi matrik pada persamaan (4.5)menjadi,⎡⎤ ⎡⎤⎡⎤ ⎡1 0 0 0 1 1 0 3 x 12 1 0 00 −1 −1 −5x 2⎢⎣ 3 4 1 0⎥ ⎢⎦ ⎣ 0 0 3 13⎥⎢⎦⎣x⎥3 ⎦ = ⎢⎣−1 −3 0 1 0 0 0 −13 x 4⎤41−3⎥⎦4(4.7)


64 BAB 4. METODE LU DECOMPOSITIONLangkah berikutnya adalah menentukan vektor y, dimana Ly = b,⎡⎤⎡⎤ ⎡1 0 0 0 y 12 1 0 0y 2⎢⎣ 3 4 1 0⎥⎢⎦⎣y⎥3 ⎦ = ⎢⎣−1 −3 0 1 y 4⎤41−3⎥⎦4Dengan proses substitusi-maju, elemen-elemen vektor y dapat ditentukan,y 1 = 4,2y 1 + y 2 = 1,3y 1 + 4y 2 + y 3 = −3,−y 1 − 3y 2 + y 4 = 4maka diperoleh y 1 = 4, y 2 = −7, y 3 = 13, y 4 = −13.Langkah terakhir adalah proses substitusi-mundur untuk menghitung vektor x, dimana Ux =y,⎡⎤⎡⎤ ⎡1 1 0 3 x 10 −1 −1 −5x 2⎢⎣ 0 0 3 13⎥⎢⎦⎣x⎥3 ⎦ = ⎢⎣0 0 0 −13 x 4⎤4−713⎥⎦−13Melalui proses ini, yang pertama kali didapat solusinya adalah x 4 , kemudian x 3 , lalu diikutix 2 , dan akhirnya x 1 .x 4 = 1x 3 = 1 3 (13 − 13x 4) = 0x 2 = −(−7 + 5x 4 + x 3 ) = 2x 1= 4 − 3x 4 − x 2 = −1akhirnya diperoleh solusi x 1 = −1, x 2 = 2, x 3 = 0, dan y 4 = 1. Demikianlah contoh penyelesaiansistem persamaan linear dengan metode LU-decomposition.Sekali matrik A difaktorkan, maka vektor b bisa diganti nilainya sesuai dengan sistem persamaanlinear yang lain, misalnya seluruh nilai di ruas kanan diganti menjadiP 1 : x 1 + x 2 + 3x 4 = 8P 2 : 2x 1 + x 2 − x 3 + x 4 = 7P 3 : 3x 1 − x 2 − x 3 + 2x 4 = 14P 4 : −x 1 + 2x 2 + 3x 3 − x 4 = -7


4.2. ALGORITMA 65Dalam operasi matrik menjadi⎡⎢⎣1 1 0 32 1 −1 13 −1 −1 2−1 2 3 −1⎤⎡⎥⎢⎦⎣⎤ ⎡x 1x 2x⎥3 ⎦ = ⎢⎣x 48714−7⎤⎥⎦(4.8)Perhatikan baik-baik! Matrik A sama persis dengan contoh sebelumnya. Perbedaannya hanyapada vektor b. Selanjutnya, dengan metode LU-decomposition, persamaan (4.8) menjadi⎡⎤ ⎡⎤⎡⎤ ⎡1 0 0 0 1 1 0 3 x 12 1 0 00 −1 −1 −5x 2⎢⎣ 3 4 1 0⎥ ⎢⎦ ⎣ 0 0 3 13⎥⎢⎦⎣x⎥3 ⎦ = ⎢⎣−1 −3 0 1 0 0 0 −13 x 4⎤8714⎥⎦−7Silakan anda lanjutkan proses perhitungannya dengan mencari vektor y sesuai contoh yangtelah diberikan sebelumnya. Pada akhirnya akan diperoleh solusi sebagai berikut: x 1 = 3,x 2 = −1, x 3 = 0, dan y 4 = 2.(4.9)4.2 AlgoritmaSekarang saatnya saya tunjukkan algoritma metode LU decomposition. Algoritma ini dibuatuntuk menyelesaikan sistem persamaan linear, dengan cara menfaktorkan matrik A = (a ij )berukuran n x n menjadi matrik L = (l ij ) dan matrik U = (u ij ) dengan ukuran yang sama.Algoritma LU-decomposition yang anda lihat sekarang merupakan modifikasi dari algoritmaeliminasi gauss. Silakan anda periksa langkah-langkah mana saja yang telah mengalamimodifikasi! Tapi asal tahu saja bahwa ini bukan satu-satunya algoritma untuk mendapatkanmatrik LU. Sejauh yang saya tahu, ada algoritma lain untuk tujuan yang sama, dimana algoritmatersebut membutuhkan matrik permutasi untuk menggeser elemen pivot yang bernilainol agar terhindar dari singular. Nah, sedangkan algoritma yang akan anda baca saat ini, samasekali tidak “berurusan” dengan matrik permutasi. Algoritma ini cuma memanfaatkan “trik”tukar posisi yang sudah pernah dibahas di awal-awal catatan khususnya ketika membahaskonsep eliminasi gauss.Satu lagi yang harus saya sampaikan juga adalah bahwa dalam algoritma ini, elemenelemenmatrik L dan matrik U digabung jadi satu dan menggantikan seluruh elemen-elemenmatrik A. Perhatian! cara ini jangan diartikan sebagai perkalian matrik L dan matrik U menjadimatrik A kembali. Cara ini dimaksudkan untuk menghemat memori komputer. Suatu aspekyang tidak boleh diabaikan oleh para programer. Marilah kita simak algoritmanya bersamasama!INPUT: dimensi n; nilai elemen a ij , 1 ≤ i, j ≤ n; nilai elemen b i .OUTPUT: solusi x 1 , x 2 , x 3 , ..., x n atau pesan kesalahan yang mengatakan bahwa faktorisasitidak mungkin dilakukan.


66 BAB 4. METODE LU DECOMPOSITION• Langkah 1: Inputkan konstanta-konstanta dari sistem persamaan linear kedalam elemenelemenmatrik A dan vektor b, seperti berikut ini:⎡⎤ ⎡ ⎤a 11 a 12 . . . a 1nb 1aA =21 a 22 . . . a 2nb ⎢⎥ b =2 ⎢ ⎥(4.10)⎣ . . . ⎦ ⎣ . ⎦a n1 a n2 . . . a nn b n• Langkah 2: Untuk i = 1, ..., n − 1, lakukan Langkah 3 sampai Langkah 5.• Langkah 3: Definisikan p sebagai integer dimana i ≤ p ≤ n. Lalu pastikan bahwaa pi ≠ 0. Langkah dilakukan bila ditemukan elemen diagonal yang bernilai nol (a ii =0). Ketika ada elemen diagonal yang bernilai nol, maka program harus mencari danmemeriksa elemen-elemen yang tidak bernilai nol dalam kolom yang sama dengankolom tempat elemen diagonal tersebut berada. Jadi saat proses ini berlangsung,integer i (indeks dari kolom) dibuat konstan, sementara integer p (indeks dari baris)bergerak dari p = i sampai p = n. Bila ternyata setelah mencapai elemen palingbawah dalam kolom tersebut, yaitu saat p = n tetap didapat nilai a pi = 0, makasebuah pesan dimunculkan: sistem persamaan linear tidak memiliki solusi yangunik. Lalu program berakhir: STOP.• Langkah 4: Namun jika sebelum integer p mencapai nilai p = n sudah diperolehelemen yang tidak sama dengan nol (a pi ≠ 0), maka bisa dipastikan p ≠ i. Jika p ≠ imaka lakukan proses pertukaran (P p ) ↔ (P i ).• Langkah 5: Untuk j = i + 1, .., n, lakukan Langkah 6 dan Langkah 7.• Langkah 6: Tentukan m ji ,m ji = a jia ii• Langkah 7: Lakukan proses triangularisasi,• Langkah 8: Nilai m ji disimpan ke a ji ,(P j − m ji P i ) → (P j )a ji = m ji• Langkah 9: Nilai b 1 dicopy ke y 1 , lalu lakukan substitusi-maju.y 1 = b 1Untuk i = 2, ..., n tentukan x i ,∑i−1y i = b i − a ij y jj=1


4.2. ALGORITMA 67• Langkah 10: Lakukan proses substitusi-mundur, dimulai dengan menentukan x n ,Untuk i = n − 1, ...,1 tentukan x i ,x n = a n,n+1a nnx i = a i,n+1 − ∑ nj=i+1 a ijx ja ii• Langkah 11: Diperoleh solusi yaitu x 1 , x 2 , ..., x n . Algoritma telah dijalankan dengan sukses.STOP.Algoritma di atas telah diimplementasi kedalam program yang ditulis dengan bahasa Fortran.Program tersebut sudah berhasil dikompilasi dengan visual fortran (windows) dan g77(debian-linux). Inilah programnya:1 DIMENSION A(10,11), B(10), Y(10), X(10)2 REAL MJI3 WRITE(*,*)4 WRITE(*,*) ’==> FAKTORISASI MATRIK: LU DECOMPOSITION


68 BAB 4. METODE LU DECOMPOSITION31 P = I32 100 IF (ABS(A(P,I)).GE.1.0E-20 .OR. P.GT.N) GOTO 20033 P = P+134 GOTO 10035 200 IF(P.EQ.N+1)THEN36 C MENAMPILKAN PESAN TIDAK DAPAT DIFAKTORKAN37 WRITE(*,8)38 GOTO 40039 END IF40 C LANGKAH 4: PROSES TUKAR POSISI41 IF(P.NE.I) THEN42 DO 20 JJ=1,N43 C = A(I,JJ)44 A(I,JJ) = A(P,JJ)45 A(P,JJ) = C46 20 CONTINUE47 END IF48 C LANGKAH 5: PERSIAPAN PROSES TRIANGULARISASI49 JJ = I+150 DO 30 J=JJ,N51 C LANGKAH 6: TENTUKAN MJI52 MJI = A(J,I)/A(I,I)53 C LANGKAH 7: PROSES TRIANGULARISASI54 DO 40 K=JJ,N55 A(J,K) = A(J,K)-MJI*A(I,K)56 40 CONTINUE57 C LANGKAH 8: MENYIMPAN MJI KE A(J,I)58 A(J,I) = MJI59 30 CONTINUE60 10 CONTINUE61 C MENAMPILKAN MATRIK LU62 WRITE (*,’(1X,A)’) ’MATRIK LU:’63 DO 120 I = 1,N64 WRITE (*,6) (A(I,J),J=1,N)65 120 CONTINUE66 WRITE (*,*)67 C LANGKAH 9: SUBSTITUSI-MAJU68 Y(1) = B(1)69 DO 15 I=2,N70 SUM = 0.071 DO 16 J=1,I-172 SUM = SUM+A(I,J)*Y(J)73 16 CONTINUE74 Y(I) = B(I)-SUM75 15 CONTINUE76 C MENAMPILKAN VEKTOR Y77 WRITE (*,’(1X,A)’) ’VEKTOR Y:’


4.2. ALGORITMA 6978 DO 138 I = 1,N79 WRITE (*,6) Y(I)80 138 CONTINUE81 WRITE (*,*)82 C LANGKAH 10: SUBSTITUSI-MUNDUR83 X(N) = Y(N)/A(N,N)84 DO 24 K=1,N-185 I = N-K86 JJ = I+187 SUM = 0.088 DO 26 KK=JJ,N89 SUM = SUM+A(I,KK)*X(KK)90 26 CONTINUE91 X(I) = (Y(I)-SUM)/A(I,I)92 24 CONTINUE93 C LANGKAH 11: MENAMPILKAN SOLUSI DAN SELESAI94 WRITE (*,’(1X,A)’) ’SOLUSI:’95 DO 18 I = 1,N96 WRITE (*,’(1X,A,I2,A,F14.8)’) ’X(’,I,’) = ’,X(I)97 18 CONTINUE98 WRITE(*,*)99 WRITE(*,*) ’SELESAI --> SUKSES’100 WRITE(*,*)101 400 CONTINUE102 6 FORMAT(1X,5(F14.8))103 8 FORMAT(1X,’TIDAK DAPAT DIFAKTORKAN’)104 ENDDemikianlah, sekarang kita punya tiga buah algoritma untuk memecahkan problem sistempersamaan linear, yaitu eliminasi gauss, invers matrik, dan lu-decomposition. Diantara ketiganya,eliminasi gauss adalah algoritma yang paling simpel dan efisien. Dia hanya butuh prosestriangularisasi dan substitusi-mundur untuk mendapatkan solusi. Sedangkan dua algoritmayang 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.


Bab 5Metode Iterasi✍ Objektif :⊲ Mengenalkan konsep Norm.⊲ Mengenalkan iterasi Jacobi.⊲ Mengenalkan iterasi Gauss-Seidel.⊲ Mengenalkan iterasi Succesive-Over-Relaxation (SOR).5.1 Kelebihan Vektor-kolomSebelum kita membahas metode iterasi untuk menyelesaikan problem sistem persamaan linear,saya ingin menyampaikan satu hal yang sangat sederhana, yaitu tentang cara merepresentasikanelemen-elemen suatu vektor-kolom. Sebagaimana tertulis pada catatan-catatan sebelumnya,biasanya suatu vektor-kolom ditulis sebagai⎡ ⎤x 1xx =2⎢ ⎥⎣ . ⎦x nDengan operasi transpose, vektor-kolom tersebut dapat dinyatakan sebagaix =(5.1)[x 1 x 2 . . . x n] t(5.2)Contoh:⎡ ⎤3x =−2[ ] t⎢⎣ 8⎥⎦ = 3 −2 8 5571


72 BAB 5. METODE ITERASICara penulisan seperti ini digunakan untuk menyatakan vektor-kolom pada suatu kalimat didalam paragraf. Alasannya supaya tidak terlalu menyita banyak ruang penulisan. Sementara,persamaan (5.1), lebih sering digunakan pada penulisan operasi matrik. Satu hal lagi, padaparagraf-paragraf berikutnya, saya persingkat penulisan istilah vektor-kolom menjadi vektorsaja.5.2 Pengertian NormVektor x=(x 1 ; x 2 ; ...; x n ) t memiliki norm l 2 dan l ∞ yang didefinisikan sebagain∑l 2 = ‖x‖ 2 = { x 2 i } 1/2 (5.3)i=1danl ∞ = ‖x‖ ∞ = max1≤i≤n |x i| (5.4)Contoh: x=(3; −2; 8; 5) t memiliki norm l 2 yaitul 2 = ‖x‖ 2 = √ (3) 2 + (−2) 2 + (8) 2 + (5) 2 = 10, 0995dan norm l ∞ yaitul ∞ = ‖x‖ ∞ = max{(3), (−2), (8), (5)} = 8Saya menyarankan agar kedua norm ini diingat-ingat dengan baik, karena akan banyak disinggungpada catatan-catatan berikutnya.5.2.1 Script perhitungan norm dalam MatlabScript berikut ini merujuk pada contoh di atas, dimana vektor x hanya terdiri dari 4 elemen,yaitu x(1, 1),x(2, 1),x(3, 1) dan x(4, 1)1 clear all2 clc3 x(1,1)=3;4 x(2,1)=-2;5 x(3,1)=8;6 x(4,1)=5;7 x %menampilkan vektor x8 %=========menghitung norm2=============9 s=0;10 for i=1:411 s=s+x(i,1)^2;12 end13 norm2=sqrt(s) %menampilkan hasil norm214 %======================================


5.3. ITERASI JACOBI 73Mohon diperhatikan untuk mengganti angka 4 pada statemen for i=1:4 dengan angka yanglain disesuaikan dengan jumlah elemen vektor yang mau dihitung norm2-nya.5.2.2 Perhitungan norm-selisihMisalnya kita punya vektor bernama xlama. Lalu ada vektor lainnya bernama xbaru. Normselisih dari xlama dan xbaru dapat dihitung dengan bantuan script berikut ini1 clear all2 clc3 xlama(1,1)=3;4 xlama(2,1)=-2;5 xlama(3,1)=8;6 xlama(4,1)=5;7 xlama %menampilkan elemen vektor xlama89 xbaru(1,1)=9;10 xbaru(2,1)=4;11 xbaru(3,1)=6;12 xbaru(4,1)=1;13 xbaru %menampilkan elemen vektor xbaru1415 n=4; %jumlah elemen vektor1617 %--------menghitung norm2 selisih -------------18 s=0;19 for i=1:n20 s=s+(xbaru(i,1)-xlama(i,1))^2;21 end22 norm2=sqrt(s)23 %----------------------------------------------Cara perhitungan norm-selisih seperti ini akan diterapkan pada kebanyakan metode iterasi.Jadi tolong diingat baik-baik!!5.3 Iterasi JacobiSekarang kita mulai pembahasan tentang metode iterasi untuk menyelesaikan problem sistempersamaan linear. Metode ini berbeda dengan metode-metode yang telah dijelaskan sebelumnya,dimana ia dimulai dari penentuan nilai awal (initial value) untuk setiap elemen vektor x.Kemudian berdasarkan nilai awal tersebut, dilakukan langkah perhitungan untuk mendapatkanelemen-elemen vektor x yang baru.x (baru) = T x (lama) + c (5.5)


74 BAB 5. METODE ITERASIataux k = T x k−1 + c (5.6)dimana k = 1, 2, 3, ..., n.Mungkin anda kesulitan memahami rumus-rumus di atas, maka untuk lebih jelasnya, marilahkita perhatikan contoh berikut; diketahui sistem persamaan linear Ax = b yaitu10x 1 − x 2 + 2x 3 = 6−x 1 + 11x 2 − x 3 + 3x 4 = 252x 1 − x 2 + 10x 3 − x 4 = −113x 2 − x 3 + 8x 4 = 15yang mana solusinya adalah x=(1; 2; −1; 1) t . Silakan simpan dulu solusi ini, anggap saja kitabelum tahu. Lalu perhatikan baik-baik bagaimana metode iterasi Jacobi bisa menemukan solusitersebut dengan caranya yang khas.Langkah pertama dan merupakan langkah terpenting dari metode iterasi Jacobi adalah denganmengubah cara penulisan sistem persamaan linear di atas menjadi seperti inix 1 = 110 x 2 − 2 10 x 3 + 6 10x 2 = 1 11 x 1 + 1 11 x 3 − 3 11 x 4 + 2511x 3 = − 2 10 x 1 + 1 10 x 2 + 1 10 x 4 − 1110x 4 = − 3 8 x 2 + 1 8 x 3 + 15 8Kita bisa menyatakan bahwa nilai x 1 , x 2 , x 3 dan x 4 yang berada di ruas kiri tanda = (baca: samadengan) sebagai x (baru) . Sementara nilai x 1 , x 2 , x 3 dan x 4 yang berada di ruas kanan tanda =(baca: sama dengan) sebagai x (lama) . Sehingga sistem persamaan tersebut ditulis seperti inix (baru)1 = 1 10 x(lama) 2 − 2 10 x(lama) 3 + 6 10x (baru)2 = 1 11 x(lama) 1 + 1 11 x(lama) 3 − 3 11 x(lama) 4 + 2511x (baru)3 = − 2 10 x(lama) 1 + 1 10 x 2 + 1 10 x(lama) 4 − 1110x (baru)4 = − 3 8 x(lama) 2 + 1 8 x(lama) 3 + 15 8


5.3. ITERASI JACOBI 75yang secara umum dapat diformulasikan sebagaimana persamaan (5.5). Atau dapat pula ditulisseperti inix (k)1 = 1 10 x(k−1) 2 − 2 10 x(k−1) 3 + 6 10x (k)2 = 1 11 x(k−1) 1 + 1 11 x(k−1) 3 − 3 11 x(k−1) 4 + 2511x (k)3 = − 210 x(k−1) 1 + 1 10 x(k−1) 2 + 1 10 x(k−1) 4 − 1110x (k)4 = − 3 8 x(k−1) 2 + 1 8 x(k−1) 3 + 15 8yang secara umum dapat diformulasikan sebagaimana persamaan (5.6). Pada persamaan (5.6),indeks k menunjukan jumlah berapa kali perhitungan iterasi telah dilakukan. Mari kita fokuskansejenak pada indeks k ini; Pada k = 1, maka penulisan sistem persamaan linear menjadi sepertiinix (1)1 = 1 10 x(0) 2 − 2 10 x(0) 3 + 6 10x (1)2 = 1 11 x(0) 1 + 1 11 x(0) 3 − 3 11 x(0) 4 + 2511x (1)3 = − 2 10 x(0) 1 + 1 10 x(0) 2 + 1 10 x(0) 4 − 1110x (1)4 = − 3 8 x(0) 2 + 1 8 x(0) 3 + 158Jika kita tentukan nilai-nilai awal x (0) sebagai berikut x (0)1 = 0, x (0)2 = 0, x (0)3 = 0 dan x (0)4 = 0.Atau dinyatakan seperti ini x (0) = (0; 0; 0; 0) t . Maka kita akan memperoleh nilai-nilai x (1) , yaituhasil iterasi pertama, sebagai berikutx (1)1 = 6 10x (1)2 = 2511x (1)3 = − 1110x (1)4 = 15 8atau x (1) = (0, 6000; 2, 2727; −1, 1000; 1, 8750) t . Setelah diperoleh nilai-nilai x (1) , perhitungantersebut diulangi kembali guna mendapatkan hasil iterasi kedua, dimana nilai k = 2. Caranyaadalah dengan memasukan nilai-nilai x (1) = (0, 6000; 2, 2727; −1, 1000; 1, 8750) t ke ruas kanan


76 BAB 5. METODE ITERASItanda sama-dengan,x (2)1 = 1 10 x(1) 2 − 2 10 x(1) 3 + 6 10x (2)2 = 1 11 x(1) 1 + 1 11 x(1) 3 − 3 11 x(1) 4 + 2511x (2)3 = − 2 10 x(1) 1 + 1 10 x(1) 2 + 1 10 x(1) 4 − 1110x (2)4 = − 3 8 x(1) 2 + 1 8 x(1) 3 + 158maka nilai-nilai x (2) yang kita dapat adalah x (2) = (1, 0473; 1, 7159; −0, 8052; 0, 8852) t . Setelahdiperoleh nilai-nilai x (2) , perhitungan tersebut diulangi kembali guna mendapatkan hasiliterasi ketiga, dimana nilai k = 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 = 1 10 x(2) 2 − 2 10 x(2) 3 + 6 10x (3)2 = 1 11 x(2) 1 + 1 11 x(2) 3 − 3 11 x(2) 4 + 2511x (3)3 = − 2 10 x(2) 1 + 1 10 x(2) 2 + 1 10 x(2) 4 − 1110x (3)4 = − 3 8 x(2) 2 + 1 8 x(2) 3 + 158maka kita akan memperoleh nilai-nilai x (3) = (0, 9326; 2, 0530; −1, 0493; 1, 1309) t . Lalu prosesperhitungan diulangi lagi dengan k = 4. Begitulah seterusnya. Proses ini diulangi lagi berkalikaliuntuk nilai-nilai k berikutnya. Proses yang berulang ini disebut proses iterasi. Sampaidengan x (3) di atas, kita sudah melakukan tiga kali proses iterasi. Lantas sampai kapan prosesiterasi ini terus berlanjut? Jawabnya adalah sampai x (baru) mendekati solusi yang sesungguhnya,yaitux = (1; 2; −1; 1) tDengan kata lain, proses iterasi harus dihentikan bila x (baru) sudah mendekati solusi. Lalukriteria apa yang digunakan sehingga suatu hasil iterasi bisa dikatakan paling dekat dengansolusi yang sebenarnya? OK, simpan dulu pertanyaan ini, sebagai gantinya marilah kita pelajariscript Matlab untuk menghitung iterasi.5.3.1 Script Matlab untuk menghitung iterasiPertama-tama kita buat script seperti ini1 clear all2 clc3 %----nilai awal-----------4 xlama(1,1)=0;5 xlama(2,1)=0;6 xlama(3,1)=0;


5.3. ITERASI JACOBI 777 xlama(4,1)=0;8 xlama910 %------nilai baru-------------11 xbaru(1,1)=(1/10)*xlama(2,1)-(2/10)*xlama(3,1)+(6/10);12 xbaru(2,1)=(1/11)*xlama(1,1)+(1/11)*xlama(3,1)-(3/11)*xlama(4,1)+(25/11);13 xbaru(3,1)=-(2/10)*xlama(1,1)+(1/10)*xlama(2,1)+(1/10)*xlama(4,1)-(11/10);14 xbaru(4,1)=-(3/8)*xlama(2,1)+(1/8)*xlama(3,1)+(15/8);15 xbaruxbaru yang didapat tak lain adalah hasil iterasi pertama, yaitu x (1) = (0, 6000; 2, 2727; −1, 1000;1, 8750) t . Kemudian, untuk iterasi ke-2, script di atas dimodifikasi menjadi seperti ini1 clear all2 clc34 %----nilai awal-----------5 xlama(1,1)=0;6 xlama(2,1)=0;7 xlama(3,1)=0;8 xlama(4,1)=0;9 xlama10 %------nilai baru-------------11 xbaru(1,1)=(1/10)*xlama(2,1)-(2/10)*xlama(3,1)+(6/10);12 xbaru(2,1)=(1/11)*xlama(1,1)+(1/11)*xlama(3,1)-(3/11)*xlama(4,1)+(25/11);13 xbaru(3,1)=-(2/10)*xlama(1,1)+(1/10)*xlama(2,1)+(1/10)*xlama(4,1)-(11/10);14 xbaru(4,1)=-(3/8)*xlama(2,1)+(1/8)*xlama(3,1)+(15/8);15 xbaru1617 xlama=xbaru; %xbaru dijadikan xlama untuk iterasi berikutnya1819 xbaru(1,1)=(1/10)*xlama(2,1)-(2/10)*xlama(3,1)+(6/10);20 xbaru(2,1)=(1/11)*xlama(1,1)+(1/11)*xlama(3,1)-(3/11)*xlama(4,1)+(25/11);21 xbaru(3,1)=-(2/10)*xlama(1,1)+(1/10)*xlama(2,1)+(1/10)*xlama(4,1)-(11/10);22 xbaru(4,1)=-(3/8)*xlama(2,1)+(1/8)*xlama(3,1)+(15/8);23 xbaruSampai disini, xbaru yang didapat adalah hasil iterasi ke-2, yaitu x (2) = (1, 0473; 1, 7159;−0, 8052; 0, 8852) t . Kemudian, untuk iterasi ke-3, script di atas dimodifikasi menjadi seperti ini1 clear all2 clc34 %----nilai awal-----------5 xlama(1,1)=0;6 xlama(2,1)=0;


78 BAB 5. METODE ITERASI7 xlama(3,1)=0;8 xlama(4,1)=0;9 xlama10 %------nilai baru-------------11 xbaru(1,1)=(1/10)*xlama(2,1)-(2/10)*xlama(3,1)+(6/10);12 xbaru(2,1)=(1/11)*xlama(1,1)+(1/11)*xlama(3,1)-(3/11)*xlama(4,1)+(25/11);13 xbaru(3,1)=-(2/10)*xlama(1,1)+(1/10)*xlama(2,1)+(1/10)*xlama(4,1)-(11/10);14 xbaru(4,1)=-(3/8)*xlama(2,1)+(1/8)*xlama(3,1)+(15/8);15 xbaru1617 xlama=xbaru; %xbaru dijadikan xlama untuk iterasi berikutnya1819 xbaru(1,1)=(1/10)*xlama(2,1)-(2/10)*xlama(3,1)+(6/10);20 xbaru(2,1)=(1/11)*xlama(1,1)+(1/11)*xlama(3,1)-(3/11)*xlama(4,1)+(25/11);21 xbaru(3,1)=-(2/10)*xlama(1,1)+(1/10)*xlama(2,1)+(1/10)*xlama(4,1)-(11/10);22 xbaru(4,1)=-(3/8)*xlama(2,1)+(1/8)*xlama(3,1)+(15/8);23 xbaru2425 xlama=xbaru; %xbaru dijadikan xlama untuk iterasi berikutnya2627 xbaru(1,1)=(1/10)*xlama(2,1)-(2/10)*xlama(3,1)+(6/10);28 xbaru(2,1)=(1/11)*xlama(1,1)+(1/11)*xlama(3,1)-(3/11)*xlama(4,1)+(25/11);29 xbaru(3,1)=-(2/10)*xlama(1,1)+(1/10)*xlama(2,1)+(1/10)*xlama(4,1)-(11/10);30 xbaru(4,1)=-(3/8)*xlama(2,1)+(1/8)*xlama(3,1)+(15/8);31 xbaruSampai disini, xbaru yang didapat adalah hasil iterasi ke-3, yaitu x (3) = (0, 9326; 2, 0530;− 1, 0493; 1, 1309) t . Kemudian, untuk iterasi ke-4, script di atas dimodifikasi dengan cara yangsama. Tapi konsekuensinya script tersebut akan bertambah panjang. Dan itu sesuatu yangtidak baik. Guna menghindari hal itu, script di atas perlu dioptimasi dengan pasangan for-endsebagai berikut1 clear all2 clc34 %----nilai awal-----------5 xlama(1,1)=0;6 xlama(2,1)=0;7 xlama(3,1)=0;8 xlama(4,1)=0;9 xlama1011 for i=1:412 %------nilai update-------------13 xbaru(1,1)=(1/10)*xlama(2,1)-(2/10)*xlama(3,1)+(6/10);14 xbaru(2,1)=(1/11)*xlama(1,1)+(1/11)*xlama(3,1)-(3/11)*xlama(4,1)+(25/11);


5.3. ITERASI JACOBI 7915 xbaru(3,1)=-(2/10)*xlama(1,1)+(1/10)*xlama(2,1)+(1/10)*xlama(4,1)-(11/10);16 xbaru(4,1)=-(3/8)*xlama(2,1)+(1/8)*xlama(3,1)+(15/8);17 xbaru1819 xlama=xbaru; %xbaru dijadikan xlama untuk iterasi berikutnya20 endAngka 4 pada statemen for i=1:4 dapat diganti sesuai dengan jumlah iterasi maksimal yangkita kehendaki.1 clear all2 clc34 %----nilai awal-----------5 xlama(1,1)=0;6 xlama(2,1)=0;7 xlama(3,1)=0;8 xlama(4,1)=0;9 xlama1011 itermaks=4 %jumlah iterasi maksimal1213 for i=1:itermaks14 %------nilai update-------------15 xbaru(1,1)=(1/10)*xlama(2,1)-(2/10)*xlama(3,1)+(6/10);16 xbaru(2,1)=(1/11)*xlama(1,1)+(1/11)*xlama(3,1)-(3/11)*xlama(4,1)+(25/11);17 xbaru(3,1)=-(2/10)*xlama(1,1)+(1/10)*xlama(2,1)+(1/10)*xlama(4,1)-(11/10);18 xbaru(4,1)=-(3/8)*xlama(2,1)+(1/8)*xlama(3,1)+(15/8);19 xbaru2021 xlama=xbaru; %xbaru dijadikan xlama untuk iterasi berikutnya22 endUntuk mendapatkan hasil iterasi yang ke-10, silakan nyatakan itermaks=10 pada script di atas.Hasil dari keseluruhan iterasi dari iterasi ke-1 hingga iterasi ke-10 disajikan pada tabel berikutTabel 5.1: Hasil akhir elemen-elemen vektor x hingga iterasi ke-10k 0 1 2 3 4 ... 9 10x (k)1 0,0000 0,6000 1,0473 0,9326 1,0152 ... 0,9997 1,0001x (k)2 0,0000 2,2727 1,7159 2,0530 1,9537 ... 2,0004 1,9998x (k)3 0,0000 -1,1000 -0,8052 -1,0493 -0,9681 ... -1,0004 -0,9998x (k)4 0,0000 1,8852 0,8852 1,1309 0,9739 ... 1,0006 0,9998Kita bisa saksikan bahwa hasil iterasi ke-1, x (1) = (0, 6000; 2, 2727; −1, 1000; 1, 8852) adalahhasil yang paling tidak mendekati solusi, x = (1; 2; −1; 1) t . Dibandingkan dengan hasil iterasi


80 BAB 5. METODE ITERASIke-2, jelas terlihat bahwa hasil iterasi ke-2 lebih mendekati solusi. Kalau terus diurutkan, makahasil iterasi ke-10 merupakan hasil yang paling dekat dengan solusi.5.3.2 Optimasi script Matlab untuk menghitung iterasiSekarang mari kita hitung norm-selisih dari masing-masing hasil iterasi secara berurutan. Dimulaidari mencari norm-selisih antara hasil iterasi ke-1 dan ke-2. Lalu dilanjutkan dengan hasiliterasi ke-2 dan ke-3, begitu seterusnya hingga antara hasil iterasi yang ke-9 dan ke-10. Dalamprakteknya, kita cukup menambahkan script norm-selisih pada script yang tadi1 clear all2 clc34 %----nilai awal-----------5 xlama(1,1)=0;6 xlama(2,1)=0;7 xlama(3,1)=0;8 xlama(4,1)=0;9 xlama10 n=4 %jumlah elemen vektor11 itermaks=10 %jumlah iterasi maksimal1213 for i=1:itermaks14 %------nilai update-------------15 xbaru(1,1)=(1/10)*xlama(2,1)-(2/10)*xlama(3,1)+(6/10);16 xbaru(2,1)=(1/11)*xlama(1,1)+(1/11)*xlama(3,1)-(3/11)*xlama(4,1)+(25/11);17 xbaru(3,1)=-(2/10)*xlama(1,1)+(1/10)*xlama(2,1)+(1/10)*xlama(4,1)-(11/10);18 xbaru(4,1)=-(3/8)*xlama(2,1)+(1/8)*xlama(3,1)+(15/8);19 xbaru2021 %------norm selisih-------------22 s=0;23 for i=1:n24 s=s+(xbaru(i,1)-xlama(i,1))^2;25 end26 epsilon=sqrt(s)27 %-------------------------------2829 xlama=xbaru; %xbaru dijadikan xlama untuk iterasi berikutnya30 endTabel dibawah ini memperlihatkan hasil norm-selisih hingga iterasi ke-10. Hasil perhitungannorm-selisih tersebut, saya beri nama epsilon, ǫ, dimana semakin kecil nilai epsilon, ǫ, menandakanhasil iterasinya semakin dekat dengan solusi. Hasil norm-selisih yang semakin kecilpada iterasi ke-10 menunjukan bahwa hasil iterasi ke-10 adalah hasil yang paling dekat dengansolusi yang sebenarnya.


5.3. ITERASI JACOBI 81Tabel 5.2:∥Hasil perhitungan norm-selisih (dengan l 2 ) hingga iterasi ke-10norm l 2 ∥x (2) − x (1)∥ ∥∥ ∥x (3)2− x (2)∥ ∥∥ ∥x (4)2− x (3)∥ ∥2... ∥ x (10) − x (9)∥ ∥2ǫ 1,2557 0,4967 0,2189 ... 0,0012Kembali ke pertanyaan penting yang tadi yaitu kriteria apa yang digunakan sehingga suatuhasil iterasi bisa dikatakan paling dekat dengan solusi yang sebenarnya? Jawabnya: tergantungbesar kecilnya nilai ǫ. Artinya kalau nilai ǫ ditentukan sebesar 0,2 , maka iterasi akanberhenti pada iterasi ke-4. Atau kalau nilai ǫ ditentukan sebesar 0,001 , maka proses iterasi akanberhenti pada iterasi ke-10. Kesimpulannya, semakin kecil nilai ǫ, semakin panjang proses iterasinya,namun hasil akhirnya semakin akurat. Jadi nilai ǫ berperan penting untuk menghentikanproses iterasi. Dalam hal ini, ǫ lebih umum dikenal dengan istilah stopping-criteria.Di bawah ini adalah script iterasi Jacobi setelah mengalami optimasi beberapa kali,1 clear all2 clc34 %----nilai awal-----------5 xlama(1,1)=0;6 xlama(2,1)=0;7 xlama(3,1)=0;8 xlama(4,1)=0;9 xlama1011 n=4 %jumlah elemen vektor12 itermaks=10 %jumlah iterasi maksimal13 sc=0.001 %stopping-criteria1415 for i=1:itermaks16 %------nilai update-------------17 xbaru(1,1)=(1/10)*xlama(2,1)-(2/10)*xlama(3,1)+(6/10);18 xbaru(2,1)=(1/11)*xlama(1,1)+(1/11)*xlama(3,1)-(3/11)*xlama(4,1)+(25/11);19 xbaru(3,1)=-(2/10)*xlama(1,1)+(1/10)*xlama(2,1)+(1/10)*xlama(4,1)-(11/10);20 xbaru(4,1)=-(3/8)*xlama(2,1)+(1/8)*xlama(3,1)+(15/8);21 xbaru2223 %------norm selisih-------------24 s=0;25 for i=1:n26 s=s+(xbaru(i,1)-xlama(i,1))^2;27 end28 epsilon=sqrt(s)2930 %------memeriksa stopping criteria, sc--------31 if epsilon


82 BAB 5. METODE ITERASI33 end3435 xlama=xbaru; %xbaru dijadikan xlama untuk iterasi berikutnya36 endMetode yang baru saja kita bahas ini disebut metode Iterasi Jacobi. Metode ini bertujuanmencari nilai-nilai pengganti variabel-variabel x dengan perumusandimana i=1,2,3,...,n.x (k)i=∑ )nj=1(−a ij x (k−1)j+ b i(5.7)a ii5.3.3 Algoritma• Langkah 1: Tentukan k=1• Langkah 2: Ketika (k ≤ N) lakukan Langkah 3-6– Langkah 3: Untuk i=1,...,n, hitunglahx i = − ∑ nj=1 (a ijXO j ) + b ia ii– Langkah 4: Jika ‖x − XO‖ < ǫ, maka keluarkan OUTPUT (x 1 , ..., x n ) lalu STOP– Langkah 5: Tentukan k=k+1– Langkah 6: Untuk i=1,...n, tentukan XO i = x i• Langkah 7: OUTPUT (’Iterasi maksimum telah terlampaui’) lalu STOP5.3.4 Program dalam Fortran1 IMPLICIT NONE2 DIMENSION A(10,10),B(10),X(10),XO(10)3 REAL A,B,X,XO,EPS,NORM,S4 INTEGER N,I,J,K,ITMAX5 WRITE(*,*) ’==> ITERASI JACOBI UNTUK SISTEM LINEAR


5.3. ITERASI JACOBI 8316 READ (*,*) B(I)17 WRITE (*,*)18 52 CONTINUE19 WRITE (*,’(1X,A)’) ’JUMLAH ITERASI MAKSIMUM ? ’20 READ (*,*) ITMAX21 WRITE (*,’(1X,A)’) ’NILAI EPSILON ATAU TOLERANSI ? ’22 READ (*,*) EPS23 WRITE (*,*) ’MASUKAN NILAI AWAL UNTUK XO’24 DO 72 I = 1,N25 WRITE (*,’(1X,A,I2,A)’) ’XO(’,I,’) ? ’26 READ (*,*) XO(I)27 72 CONTINUE28 WRITE (*,*)29 C MENAMPILKAN MATRIK A30 WRITE (*,’(1X,A)’) ’MATRIK A:’31 DO 110 I = 1,N32 WRITE (*,6) (A(I,J),J=1,N)33 110 CONTINUE34 WRITE (*,*)35 C MENAMPILKAN VEKTOR B36 WRITE (*,’(1X,A)’) ’VEKTOR B:’37 DO 111 I = 1,N38 WRITE (*,6) B(I)39 111 CONTINUE40 WRITE (*,*)41 C LANGKAH 142 K = 143 C LANGKAH 244 100 IF(K.GT.ITMAX) GOTO 20045 C LANGKAH 346 NORM = 0.047 DO 10 I = 1,N48 S = 0.049 DO 20 J=1,N50 S = S-A(I,J)*XO(J)51 20 CONTINUE52 S = (S+B(I))/A(I,I)53 IF (ABS(S).GT.NORM) NORM=ABS(S)54 X(I) = XO(I)+S55 10 CONTINUE56 WRITE(*,’(1X,A,I3)’) ’ITERASI KE-’, K57 WRITE(*,’(1X,A,F14.8)’) ’NORM = ’, NORM58 WRITE(*,’(1X,A,I3,A,F14.8)’) (’X(’,I,’) = ’, X(I),I=1,N)59 WRITE(*,*)60 C LANGKAH 461 IF(NORM.LE.EPS) THEN62 WRITE(*,7) K,NORM


84 BAB 5. METODE ITERASI63 GOTO 40064 END IF65 C LANGKAH 566 K = K+167 C LANGKAH 668 DO 30 I=1,N69 XO(I) = X(I)70 30 CONTINUE71 GOTO 10072 C LANGKAH 773 200 CONTINUE74 WRITE(*,9)75 400 STOP7677 5 FORMAT(1X,I3)78 6 FORMAT(1X,(6(1X,F14.8)))79 7 FORMAT(1X,’KONVERGEN PADA ITERASI YANG KE- ’,I3,80 *’ , NORM= ’,F14.8)81 9 FORMAT(1X,’MELEBIHI BATAS MAKSIMUM ITERASI’)82 END5.4 Iterasi Gauss-SeidelMetode Iterasi Gauss-Seidel hampir sama dengan metode Iterasi Jacobi. Perbedaannya hanyaterletak pada penggunaan nilai elemen vektor xbaru yang langsung digunakan pada persamaandibawahnya. Untuk lebih jelasnya, perhatikan sistem persamaan linear berikut, yangditurunkan dari contoh terdahulux baru1 = 1 10 xlama 2 − 2 10 xlama 3 + 6 10x baru2 = 1 11 xbaru 1 + 1 11 xlama 3 − 3 11 xlama 4 + 2511x baru3 = − 2 10 xbaru 1 + 1 10 xbaru 2 + 1 10 xlama 4 − 1110x baru4 = − 3 8 xbaru 2 + 1 8 xbaru 3 + 15 8Pada baris pertama, x baru1 dihitung berdasarkan x lama2 dan x lama3 . Kemudian x baru1 tersebutlangsung dipakai pada baris kedua untuk menghitung x baru2 . Selanjutnya x baru1 dan x baru2 digunakanpada baris ketiga untuk mendapatkan x baru3 . Begitu seterusnya hingga x baru4 pundiperoleh pada baris keempat. Sistem persamaan tersebut dapat dinyatakan dalam indeks k


5.4. ITERASI GAUSS-SEIDEL 85seperti dibawah ini dimana k adalah jumlah iterasi.x (k)1 = 1 10 x(k−1) 2 − 2 10 x(k−1) 3 + 610x (k)2 = 1 11 x(k) 1 + 1 11 x(k−1) 3 − 3 11 x(k−1) 4 + 2511x (k)3 = − 2 10 x(k) 1 + 110 x(k) 2 + 110 x(k−1) 4 − 1110x (k)4 = − 3 8 x(k) 2 + 1 8 x(k) 3 + 15 8Misalnya kita tentukan nilai-nilai awal x (0) sebagai berikut x (0)1 = 0, x (0)2 = 0, x (0)3 = 0 danx (0)4 = 0. Atau dinyatakan seperti ini x (0) = (0; 0; 0; 0) t . Maka pada k = 1 kita akan memperolehnilai-nilai x (1) sebagai berikutx (1)1 = 0, 6000x (1)2 = 2, 3272x (1)3 = −0, 9873x (1)4 = 0, 8789Lalu proses perhitungan diulangi lagi dengan k = 2. Begitu seterusnya proses ini diulangulanglagi untuk nilai-nilai k berikutnya sampai x (k) mendekati solusi yang sesungguhnya,yaitux = (1; 2; −1; 1) tMarilah kita amati hasil seluruh iterasi. Tabel di bawah ini menampilkan hasil perhitunganhingga iterasi yang ke-5. Kita bisa saksikan bahwa dibandingkan dengan iterasi Jacobi, problemsistem persamaan linear yang sama, bisa diselesaikan oleh metode iterasi Gauss-Seidelhanya dalam 5 kali iterasi. Dari kasus ini, bisa kita simpulkan bahwa iterasi Gauss-Seidel bek-Tabel 5.3: Hasil Iterasi Gauss-Seidelk 0 1 2 3 4 5x (k)1 0,0000 0,6000 1,030 1,0065 1,0009 1,0001x (k)2 0,0000 2,3272 2,037 2,0036 2,0003 2,0000x (k)3 0,0000 -0,9873 -1,014 -1,0025 -1,0003 -1,0000x (k)4 0,0000 0,8789 0,9844 0,9983 0,9999 1,0000erja lebih efektif dibandingkan iterasi Jacobi. Ya.., memang secara umum demikian, akan tetapiternyata ditemukan kondisi yang sebaliknya pada kasus-kasus yang lain.5.4.1 Script iterasi Gauss-SeidelSecara umum, script iterasi Gauss-Seidel yang saya tuliskan disini hampir sama dengan iterasiJacobi. Perbedaan kecil-nya terletak pada bagian nilai update, dimana elemen xbaru hasilperhitungan dilibatkan langsung untuk menghitung elemen xbaru selanjutnya.


86 BAB 5. METODE ITERASI1 clear all2 clc34 %----nilai awal-----------5 xlama(1,1)=0;6 xlama(2,1)=0;7 xlama(3,1)=0;8 xlama(4,1)=0;9 xlama1011 n=4 %jumlah elemen vektor12 itermaks=10 %jumlah iterasi maksimal13 sc=0.001 %stopping-criteria1415 for i=1:itermaks16 %------nilai update-------------17 xbaru(1,1)=(1/10)*xlama(2,1)-(2/10)*xlama(3,1)+(6/10);18 xbaru(2,1)=(1/11)*xbaru(1,1)+(1/11)*xlama(3,1)-(3/11)*xlama(4,1)+(25/11);19 xbaru(3,1)=-(2/10)*xbaru(1,1)+(1/10)*xbaru(2,1)+(1/10)*xlama(4,1)-(11/10);20 xbaru(4,1)=-(3/8)*xbaru(2,1)+(1/8)*xbaru(3,1)+(15/8);21 xbaru2223 %------norm selisih-------------24 s=0;25 for i=1:n26 s=s+(xbaru(i,1)-xlama(i,1))^2;27 end28 epsilon=sqrt(s)2930 %------memeriksa stopping criteria, sc--------31 if epsilon


5.4. ITERASI GAUSS-SEIDEL 875.4.2 Algoritma• Langkah 1: Tentukan k=1• Langkah 2: Ketika (k ≤ N) lakukan Langkah 3-6– Langkah 3: Untuk i=1,...,n, hitunglahx i = − ∑ i−1j=1 a ijx j − ∑ nj=i+1 a ijXO j + b ia ii– Langkah 4: Jika ‖x − XO‖ < ǫ, maka keluarkan OUTPUT (x 1 , ..., x n ) lalu STOP– Langkah 5: Tentukan k=k+1– Langkah 6: Untuk i=1,...n, tentukan XO i = x i• Langkah 7: OUTPUT (’Iterasi maksimum telah terlampaui’) lalu STOP5.4.3 Script iterasi Gauss-Seidel dalam Fortran1 IMPLICIT NONE2 DIMENSION A(10,10),B(10),X(10),XO(10)3 REAL A,B,X,XO,EPS,NORM,S1,S24 INTEGER N,I,J,K,ITMAX5 WRITE(*,*)6 WRITE(*,*) ’==> ITERASI GAUSS-SEIDEL UNTUK SISTEM LINEAR


88 BAB 5. METODE ITERASI29 WRITE (*,*)30 C MENAMPILKAN MATRIK A31 WRITE (*,’(1X,A)’) ’MATRIK A:’32 DO 110 I = 1,N33 WRITE (*,6) (A(I,J),J=1,N)34 110 CONTINUE35 WRITE (*,*)36 C MENAMPILKAN VEKTOR B37 WRITE (*,’(1X,A)’) ’VEKTOR B:’38 DO 111 I = 1,N39 WRITE (*,6) B(I)40 111 CONTINUE41 WRITE (*,*)42 C LANGKAH 143 K = 144 C LANGKAH 245 100 IF(K.GT.ITMAX) GOTO 20046 C LANGKAH 347 DO 10 I = 1,N48 S1 = 0.049 DO 20 J=I+1,N50 S1 = S1-A(I,J)*XO(J)51 20 CONTINUE52 S2 = 0.053 DO 23 J=1,I-154 S2 = S2-A(I,J)*X(J)55 23 CONTINUE56 X(I) = (S2+S1+B(I))/A(I,I)57 10 CONTINUE58 C SAYA PILIH NORM-2. ANDA BOLEH PAKAI NORM YANG LAIN!59 NORM = 0.060 DO 40 I=1,N61 NORM = NORM + (X(I)-XO(I))*(X(I)-XO(I))62 40 CONTINUE63 NORM = SQRT(NORM)64 WRITE(*,’(1X,A,I3)’) ’ITERASI KE-’, K65 WRITE(*,’(1X,A,F14.8)’) ’NORM-2 = ’, NORM66 WRITE(*,’(1X,A,I3,A,F14.8)’) (’X(’,I,’) = ’, X(I),I=1,N)67 WRITE(*,*)68 C LANGKAH 469 IF(NORM.LE.EPS) THEN70 WRITE(*,7) K,NORM71 GOTO 40072 END IF73 C LANGKAH 574 K = K+175 C LANGKAH 6


5.5. ITERASI DENGAN RELAKSASI 8976 DO 30 I=1,N77 XO(I) = X(I)78 30 CONTINUE79 GOTO 10080 C LANGKAH 781 200 CONTINUE82 WRITE(*,9)83 400 STOP8485 5 FORMAT(1X,I3)86 6 FORMAT(1X,(6(1X,F14.8)))87 7 FORMAT(1X,’KONVERGEN PADA ITERASI YANG KE- ’,I3,88 *’ , NORM= ’,F14.8)89 9 FORMAT(1X,’MELEBIHI BATAS MAKSIMUM ITERASI’)90 END5.5 Iterasi dengan RelaksasiMetode Iterasi Relaksasi (Relaxation method) dinyatakan dengan rumus berikut:x (k)i= (1 − ω) x (k−1)i⎡+ ω ∑i−1⎣b i −a iij=1a ij x (k)j−n∑j=i+1a ij x (k−1) ⎦ (5.9)j⎤dimana i=1,2,3,...,n.Untuk lebih jelasnya, marilah kita perhatikan contoh berikut, diketahui sistem persamaanlinear Ax = b yaitu4x 1 + 3x 2 + = 243x 1 + 4x 2 − x 3 = 30−x 2 + 4x 3= −24memiliki solusi (3, 4, −5) t . Metode Gauss-Seidel dan Relaksasi dengan ω = 1, 25 akan digunakanuntuk menyelesaikan sistem persamaan linear di atas dengan x (0) = (1, 1, 1) t . Untuksetiap nilai k = 1, 2, 3, ..., persamaan Gauss-Seidelnya adalahx (k)1 = −0, 75x (k−1)2 + 6x (k)2 = −0, 75x (k)1 + 0, 25x (k−1)3 + 7, 5x (k)3 = 0, 25x (k)2 − 6


90 BAB 5. METODE ITERASISedangkan persamaan untuk metode Relaksasi dengan ω = 1, 25 adalahx (k)1 = −0, 25x (k−1)1 − 0, 9375x (k−1)2 + 7, 5x (k)2 = −0, 9375x (k)1 − 0, 25x (k−1)2 + 0, 3125x (k−1)3 + 9, 375x (k)3 = 0, 3125x (k)2 − 0, 25x (k−1)3 − 7, 5Tabel berikut ini menampilkan perhitungan dari masing-masing metode hingga iterasi ke-7.Tabel 5.4: Hasil perhitungan iterasi Gauss-Seidelk 0 1 2 3 4 5 6 7x (k)1 1 5,2500 3,1406 3,0879 3,0549 3,0343 3,0215 3,0134x (k)2 1 3,8125 3,8828 3,9267 3,9542 3,9714 3,9821 3,9888x (k)3 1 -5,0468 -5,0293 -5,0183 -5,0114 -5,0072 -5,0044 -5,0028Tabel 5.5: Hasil perhitungan iterasi Relaksasi dengan ω = 1, 25k 0 1 2 3 4 5 6 7x (k)1 1 6,3125 2,6223 3,1333 2,9570 3,0037 2,9963 3,0000x (k)2 1 3,5195 3,9585 4,0102 4,0075 4,0029 4,0009 4,0002x (k)3 1 -6,6501 -4,6004 -5,0967 -4,9735 -5,0057 -4,9983 -5,0003Dari 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 efektif dibandingkan Gauss-Seidel. Pertanyaannya sekarang, bagaimana menentukannilai ω optimal?Metode Relaksasi dengan pilihan nilai ω yang berkisar antara 0 dan 1 disebut metode underrelaxation,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 successiveover-relaxation (SOR), yang mana metode ini berguna untuk mengakselerasi atau mempercepatkondisi konvergen dibandingkan dengan Gauss-Seidel. Metode SOR ini juga sangat bergunauntuk menyelesaikan sistem persamaan linear yang muncul dari persamaan diferensial-parsialtertentu.5.5.1 Algoritma Iterasi Relaksasi• Langkah 1: Tentukan k=1• Langkah 2: Ketika (k ≤ N) lakukan Langkah 3-6– Langkah 3: Untuk i=1,...,n, hitunglahx i = (1 − ω) XO i +(ω − ∑ i−1j=1 a ijx j − ∑ )nj=i+1 a ijXO j + b ia ii


5.5. ITERASI DENGAN RELAKSASI 91– Langkah 4: Jika ‖x − XO‖ < ǫ, maka keluarkan OUTPUT (x 1 , ..., x n ) lalu STOP– Langkah 5: Tentukan k=k+1– Langkah 6: Untuk i=1,...n, tentukan XO i = x i• Langkah 7: OUTPUT (’Iterasi maksimum telah terlampaui’) lalu STOPDemikianlah catatan singkat dari saya tentang metode iterasi untuk menyelesaikan problemsistem persamaan linear. Saya cukupkan sementara sampai disini. Insya Allah akan sayasambung lagi dilain waktu. Kalau ada yang mau didiskusikan, silakan hubungi saya melaluiemail: supri92@gmail.com.


Bab 6Interpolasi✍ Objektif :⊲ Mengenalkan Interpolasi Lagrange⊲ Mengenalkan Interpolasi Spline-cubic6.1 Interpolasi LagrangeInterpolasi Lagrange diterapkan untuk mendapatkan fungsi polinomial P(x) berderajat tertentuyang melewati sejumlah titik data. Misalnya, kita ingin mendapatkan fungsi polinomialberderajat satu yang melewati dua buah titik yaitu (x 0 , y 0 ) dan (x 1 , y 1 ). Langkah pertama yangkita lakukan adalah mendefinisikan fungsi berikutdanL 0 (x) = x − x 1x 0 − x 1L 1 (x) = x − x 0x 1 − x 0kemudian kita definisikan fungsi polinomial sebagai berikutP(x) = L 0 (x)y 0 + L 1 (x)y 1Jika semua persamaan diatas kita gabungkan, maka akan didapatP(x) = L 0 (x)y 0 + L 1 (x)y 1P(x) = x − x 1x 0 − x 1y 0 + x − x 0x 1 − x 0y 1dan ketika x = x 0P(x 0 ) = x 0 − x 1x 0 − x 1y 0 + x 0 − x 0x 1 − x 0y 1 = y 093


94 BAB 6. INTERPOLASIdan pada saat x = x 1P(x 1 ) = x 1 − x 1x 0 − x 1y 0 + x 1 − x 0x 1 − x 0y 1 = y 1dari contoh ini, kira-kira apa kesimpulan sementara anda? Ya.. kita bisa sepakat bahwa fungsipolinomialbenar-benar melewati titik (x 0 , y 0 ) dan (x 1 , y 1 ).P(x) = x − x 1x 0 − x 1y 0 + x − x 0x 1 − x 0y 1 (6.1)Sekarang mari kita perhatikan lagi contoh lainnya. Misalnya ada tiga titik yaitu (x 0 , y 0 ), (x 1 , y 1 )dan (x 2 , y 2 ). Tentukanlah fungsi polinomial yang melewati ketiganya! Dengan pola yang samakita bisa awali langkah pertama yaitu mendefinisikanlaludanL 0 (x) = (x − x 1)(x − x 2 )(x 0 − x 1 )(x 0 − x 2 )L 1 (x) = (x − x 0)(x − x 2 )(x 1 − x 0 )(x 1 − x 2 )L 2 (x) = (x − x 0)(x − x 1 )(x 2 − x 0 )(x 2 − x 1 )kemudian kita definisikan fungsi polinomial sebagai berikutP(x) = L 0 (x)y 0 + L 1 (x)y 1 + L 2 (x)y 2Jika semua persamaan diatas kita gabungkan, maka akan didapat fungsi polinomialP(x) = (x − x 1)(x − x 2 )(x 0 − x 1 )(x 0 − x 2 ) y 0 + (x − x 0)(x − x 2 )(x 1 − x 0 )(x 1 − x 2 ) y 1 + (x − x 0)(x − x 1 )(x 2 − x 0 )(x 2 − x 1 ) y 2Kita uji sebentar. Ketika x = x 0P(x 0 ) = (x 0 − x 1 )(x 0 − x 2 )(x 0 − x 1 )(x 0 − x 2 ) y 0 + (x 0 − x 0 )(x 0 − x 2 )(x 1 − x 0 )(x 1 − x 2 ) y 1 + (x 0 − x 0 )(x 0 − x 1 )(x 2 − x 0 )(x 2 − x 1 ) y 2 = y 0pada saat x = x 1P(x 1 ) = (x 1 − x 1 )(x 1 − x 2 )(x 0 − x 1 )(x 0 − x 2 ) y 0 + (x 1 − x 0 )(x 1 − x 2 )(x 1 − x 0 )(x 1 − x 2 ) y 1 + (x 1 − x 0 )(x 1 − x 1 )(x 2 − x 0 )(x 2 − x 1 ) y 2 = y 1pada saat x = x 2P(x 2 ) = (x 2 − x 1 )(x 2 − x 2 )(x 0 − x 1 )(x 0 − x 2 ) y 0 + (x 2 − x 0 )(x 2 − x 2 )(x 1 − x 0 )(x 1 − x 2 ) y 1 + (x 2 − x 0 )(x 2 − x 1 )(x 2 − x 0 )(x 2 − x 1 ) y 2 = y 2


6.2. INTERPOLASI CUBIC SPLINE 95Terbukti bahwa fungsi polonomialP(x) = (x − x 1)(x − x 2 )(x 0 − x 1 )(x 0 − x 2 ) y 0 + (x − x 0)(x − x 2 )(x 1 − x 0 )(x 1 − x 2 ) y 1 + (x − x 0)(x − x 1 )(x 2 − x 0 )(x 2 − x 1 ) y 2 (6.2)melewati ketiga titik tadi.Kalau kita bandingkan antara persamaan (6.1) dan persamaan (6.2), terlihat bahwa derajat persamaan(6.2) lebih tinggi dibandingkan dengan derajat persamaan (6.1). Hal ini terlihat dari x 2pada persamaan (6.2) sementara pada persamaan (6.1) hanya ada x. persamaan (6.2) disebutfunsi polinomial berderajat 2, sedangkan persamaan (6.1) disebut fungsi polinomial berderajat1.6.2 Interpolasi Cubic SplineGambar 6.1: Fungsi f(x) dengan sejumlah titik dataGambar 6.2: Pendekatan dengan polinomial cubic spline


96 BAB 6. INTERPOLASIDiketahui suatu fungsi f(x) (Figure 6.1) yang dibatasi oleh interval a dan b, dan memilikisejumlah titik data a = x 0 < x 1 < ... < x n = b. Interpolasi cubic spline S(x) adalah sebuah potonganfungsi polinomial kecil-kecil (Figure 6.2) berderajat tiga (cubic) yang menghubungkandua titik data yang bersebelahan dengan ketentuan sebagai berikut:1. S j (x) adalah potongan fungsi yang berada pada sub-interval dari x j hingga x j+1 untuknilai j = 0, 1, ..., n − 1;2. S(x j ) = f(x j ), artinya pada setiap titik data (x j ), nilai f(x j ) bersesuaian dengan S(x j )dimana j = 0, 1, ..., n;3. S j+1 (x j+1 ) = S j (x j+1 ). Perhatikan titik x j+1 pada Figure 6.2. Ya.. tentu saja jika fungsiitu kontinyu, maka titik x j+1 menjadi titik sambungan antara S j dan S j+1 .4. S ′ j+1 (x j+1) = S ′ j (x j+1), artinya kontinyuitas menuntut turunan pertama dari S j dan S j+1pada titik x j+1 harus bersesuaian.5. S ′′j+1 (x j+1) = S ′′j (x j+1), artinya kontinyuitas menuntut turunan kedua dari S j dan S j+1pada titik x j+1 harus bersesuaian juga.6. Salah satu syarat batas diantara 2 syarat batas x 0 dan x n berikut ini mesti terpenuhi:• S ′′ (x 0 ) = S ′′ (x n ) = 0 ini disebut natural boundary• S ′ (x 0 ) = f ′ (x 0 ) dan S ′ (x n ) = f ′ (x n ) ini disebut clamped boundaryPolinomial cubic spline S (polinomial pangkat 3) untuk suatu fungsi f berdasarkan ketentuandi atas adalahS j (x) = a j + b j (x − x j ) + c j (x − x j ) 2 + d j (x − x j ) 3 (6.3)dimana j = 0, 1, ..., n − 1. Maka ketika x = x jS j (x j ) = a j + b j (x j − x j ) + c j (x j − x j ) 2 + d j (x j − x j ) 3S j (x j ) = a j = f(x j )Itu artinya, a j selalu jadi pasangan titik data dari x j . Dengan pola ini maka pasangan titik datax j+1 adalah a j+1 , konsekuensinya S(x j+1 ) = a j+1 . Berdasarkan ketentuan (3), yaitu ketikax = x j+1 dimasukan ke persamaan (12.7)a j+1 = S j+1 (x j+1 ) = S 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 ) 3dimana j = 0, 1, ..., n − 2. Sekarang, kita nyatakan h j = x j+1 − x j , sehinggaa j+1 = a j + b j h j + c j h 2 j + d j h 3 j (6.4)Kemudian, turunan pertama dari persamaan (12.7) adalahS ′ j(x) = b j + 2c j (x − x j ) + 3d j (x − x j ) 2


6.2. INTERPOLASI CUBIC SPLINE 97ketika x = x j ,S j(x ′ j ) = b j + 2c j (x j − x j ) + 3d j (x j − x j ) 2 = b jdan ketika x = x j+1 ,b j+1 = S j(x ′ j+1 ) = b j + 2c j (x j+1 − x j ) + 3d j (x j+1 − x j ) 2Ini dapat dinyatakan sebagaib j+1 = b j + 2c j (x j+1 − x j ) + 3d j (x j+1 − x j ) 2dan dinyatakan dalam h jb j+1 = b j + 2c j h j + 3d j h 2 j (6.5)Berikutnya, kita hitung turunan kedua dari persamaan (12.7)S ′′j (x) = 2c j + 6d j (x − x j ) (6.6)tapi dengan ketentuan tambahan yaitu S ′′ (x)/2, sehingga persamaan ini dimodifikasi menjadiS ′′j (x) = c j + 3d j (x − x j )dengan cara yang sama, ketika x = x jS ′′j (x j ) = c j + 3d j (x j − x j ) = c jdan ketika x = x j+1c j+1 = S ′′j (x j+1 ) = c j + 3d j (x j+1 − x j )dan d j bisa dinyatakandari sini, persamaan (6.4) dapat ditulis kembalic j+1 = c j + 3d j h j (6.7)d j = 13h j(c j+1 − c j )a j+1= a j + b j h j + c j h 2 j + d j h 3 j= a j + b j h j + c j h 2 j + h2 j3 (c j+1 − c j )= a j + b j h j + h2 j3 (2c j + c j+1 ) (6.8)


98 BAB 6. INTERPOLASIsementara persamaan (6.5) menjadib j+1= b j + 2c j h j + 3d j h 2 j= b j + 2c j h j + h j (c j+1 − c j )= b j + h j (c j + c j+1 ) (6.9)Sampai sini masih bisa diikuti, bukan? Selanjutnya, kita coba mendapatkan b j dari persamaan(6.8)b j = 1 h j(a j+1 − a j ) − h j3 (2c j + c j+1 ) (6.10)dan untuk b j−1b j−1 = 1h j−1(a j − a j−1 ) − h j−13 (2c j−1 + c j ) (6.11)Langkah berikutnya adalah mensubtitusikan persamaan (6.10) dan persamaan (6.11) kedalampersamaan (6.9),h j−1 c j−1 + 2(h j−1 + h j )c j + h j c j+1 = 3 h j(a j+1 − a j ) − 3h j−1(a j − a j−1 ) (6.12)dimana j = 1, 2, ..., n − 1. Dalam sistem persamaan ini, nilai {h j }j=0 n−1 dan nilai {a j} n j=0 sudahdiketahui, sementara nilai {c j } n j=0 belum diketahui dan memang nilai inilah yang akandihitung dari persamaan ini.Sekarang coba perhatikan ketentuan nomor (6), ketika S ′′ (x 0 ) = S ′′ (x n ) = 0, berapakah nilai c 0dan c n ? Nah, kita bisa evaluasi persamaan (6.6)S ′′ (x 0 ) = 2c 0 + 6d 0 (x 0 − x 0 ) = 0jelas sekali c 0 harus berharga nol. Demikian halnya dengan c n harganya harus nol. Jadi untuknatural boundary, nilai c 0 = c n = 0.Persamaan (6.12) dapat dihitung dengan operasi matrik Ax = b dimana⎡⎤1 0 0 . . . . . . . . . 0h 0 2(h 0 + h 1 ) h 1 0 . . . . . . 00 h 1 2(h 1 + h 2 ) h 2 0 . . . 0A =. . . . . . . . . . . . . . . . . . . . .⎢⎣. . . . . . . . . . . . h n−2 2(h n−2 + h n−1 ) h⎥n−1 ⎦0 . . . . . . . . . 0 0 1⎡ ⎤c 0cx =1⎢ ⎥⎣ . ⎦c n


6.2. INTERPOLASI CUBIC SPLINE 99⎡⎤03h 1(a 2 − a 1 ) − 3 h 0(a 1 − a 0 )b =.⎢ 3⎣h n−1(a n − a n−1 ) − 3h n−2(a n−1 − a n−2 )⎥⎦0Sekarang kita beralih ke clamped boundary dimana S ′ (a) = f ′ (a) dan S ′ (b) = f ′ (b). Nah, kitabisa evaluasi persamaan (6.10) dengan j = 0, dimana f ′ (a) = S ′ (a) = S ′ (x 0 ) = b 0 , sehinggaf ′ (a) = 1 h 0(a 1 − a 0 ) − h 03 (2c 0 + c 1 )konsekuensinya,2h 0 c 0 + h 0 c 1 = 3 h 0(a 1 − a 0 ) − 3f ′ (a) (6.13)Sementara pada x n = b n dengan persamaan (6.9)f ′ (b) = b n = b n−1 + h n−1 (c n−1 + c n )sedangkan b n−1 bisa didapat dari persamaan (6.11) dengan j = n − 1Jadib n−1 = 1h n−1(a n − a n−1 ) − h n−13 (2c n−1j + c n )f ′ (b) ==1(a n − a n−1 ) − h n−1h n−1 3 (2c n−1j + c n ) + h n−1 (c n−1 + c n )1(a n − a n−1 + h n−1h n−1 3 (c n−1j + 2c n )dan akhirnya kita perolehh n−1 c n−1 + 2h n−1 C n = 3f ′ (b) − 3h n−1(a n − a n−1 ) (6.14)Persamaan (6.13) dan persamaan (6.14) ditambah persamaan (6.12 membentuk operasi matrikAx = b dimana⎡⎤2h 0 h 0 0 . . . . . . . . . 0h 0 2(h 0 + h 1 ) h 1 0 . . . . . . 00 h 1 2(h 1 + h 2 ) h 2 0 . . . 0A =. . . . . . . . . . . . . . . . . . . . .⎢⎣ . . . . . . . . . . . . h n−2 2(h n−2 + h n−1 ) h⎥n−1 ⎦0 . . . . . . . . . 0 h n−1 2h n−1


100 BAB 6. INTERPOLASIGambar 6.3: Profil suatu object⎡ ⎤c 0cx =1⎢ ⎥⎣ . ⎦c n⎡⎤3h 0(a 1 − a 0 ) − 3f ′ (a)3h 1(a 2 − a 1 ) − 3 h 0(a 1 − a 0 )b =.⎢ 3⎣h n−1(a n − a n−1 ) − 3h n−2(a n−1 − a n−2 )⎥⎦3f ′ (b) − 3h n−1(a n − a n−1 )


6.2. INTERPOLASI CUBIC SPLINE 101Gambar 6.4: Sampling titik dataGambar 6.5: Hasil interpolasi cubic spline


j x j a j b j c j d j0 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,0011 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,25Gambar 6.6: Hasil interpolasi lagrange


Bab 7Diferensial Numerik✍ Objektif :⊲ Mengenalkan metode Euler.⊲ Mengenalkan metode Runge Kutta orde 4.⊲ Mengenalkan metode Finite Difference.7.1 Metode EulerSuatu persamaan diferensial dapat dinyatakan sebagai berikut:dydt= f(t, y), a ≤ t ≤ b, y(a) = α (7.1)Pada kenyataannya, melalui pendekatan numerik, kita tidak akan memperoleh solusi fungsiyang kontinyu; yang mungkin kita dapat adalah solusi diskrit dalam bentuk mesh points didalam interval [a,b]. Setelah diperoleh solusi numerik pada suatu point, maka point-pointyang lainpun bisa dicari dengan cara interpolasi.Tahap awal solusi pendekatan numerik adalah dengan menentukan point-point dalam jarakyang sama di dalam interval [a,b], yaitu dengan menerapkant i = a + ih, i = 0, 1, 2, ..., N (7.2)Jarak antar point dirumuskan sebagaih = b − aN(7.3)ini disebut step size.Metode Euler diturunkan dari deret Taylor. Misalnya, fungsi y(t) adalah fungsi yang kontinyu103


104 BAB 7. DIFERENSIAL NUMERIKGambar 7.1: Metode Eulerdan memiliki turunan dalam interval [a,b]. Maka dalam deret TaylorKarena h = (t i+1 − t i ), makay(t i+1 ) = y(t i ) + (t i+1 − t i )y ′ (t i ) + (t i+1 − t i ) 2y ′′ (ξ i ) (7.4)2dan, karena y(t) memenuhi persamaan diferensial (7.1),y(t i+1 ) = y(t i ) + hy ′ (t i ) + h22 y′′ (ξ i ) (7.5)y(t i+1 ) = y(t i ) + hf(t i , y(t i )) + h22 y′′ (ξ i ) (7.6)Metode Euler dibangun dengan pendekatan w i ≈ y(t i ) untuk i = 1, 2, 3, ..., N, dengan mengabaikansuku terakhir yang terdapat pada persamaan (7.6). Jadi metode Euler dinyatakan sebagaiw 0 = α (7.7)w i+1 = w i + hf(t i , w i ) (7.8)dimana i = 0, 1, 2, .., N − 1ContohDiketahui persamaan diferensialy ′ = y − t 2 + 1, 0 ≤ t ≤ 2, y(0) = 0, 5dimana N = 10. Sehinggah = b − aN = 2 − 010 = 0, 2


7.1. METODE EULER 105dansertat i = a + ih = 0 + i(0, 2) → t i = 0, 2iw 0 = 0, 5Dengan demikian persamaan euler dapat dinyatakan sebagaiw i+1 = w i + h(w i − t 2 i + 1)= w i + 0, 2(w i − 0, 04i 2 + 1)= 1, 2w i − 0, 008i 2 + 0, 2dimana i = 0, 1, ...,9.Pada saat i = 0 dan dari syarat awal diketahui w 0 = 0, 5w 1 = 1, 2w 0 − 0, 008(0) 2 + 0, 2 = 0, 8000000Pada saat i = 1Pada saat i = 2w 2 = 1, 2w 1 − 0, 008(1) 2 + 0, 2 = 1, 1520000w 3 = 1, 2w 2 − 0, 008(2) 2 + 0, 2 = 1, 5504000Demikian seterusnya, hingga pada i = 9w 10 = 1, 2w 9 − 0, 008(9) 2 + 0, 2 = 4, 8657845Disisi lain, solusi exact persamaan diferensial adalahy(t) = (t + 1) 2 − 0, 5e tTabel dibawah ini memperlihatkan solusi metode euler dan solusi exact serta error atau selisihantara keduanya. Trend error menunjukan bahwa ketika i semakin besar, error juga semakinmeningkat. Figure (7.2) memperlihatkan kurva peningkatan error ketika i semakin besar.Untuk mengatasi hal ini, salah satu pemecahannya adalah dengan menerapkan deret Taylorberorde lebih tinggi, atau cara lainnya adalah dengan menggunakan metode Runge-Kutta yangakan dijelaskan pada pertemuan berikutnya.


106 BAB 7. DIFERENSIAL NUMERIKt i w i y i = y(t i ) |w i − y i |0,0 0,5000000 0,5000000 0,00000000,2 0,8000000 0,8292986 0,02929860,4 1,1520000 1,2140877 0,06208770,6 1,5504000 1,6489406 0,09854060,8 1,9884800 2,1272295 0,13874951,0 2,4581760 2,6408591 0,18268311,2 2,9498112 3,1799415 0,23013031,4 3,4517734 3,7324000 0,28062661,6 3,9501281 4,2834838 0,33335571,8 4,4281538 4,8151763 0,38702252,0 4,8657845 5,3054720 0,4396874Gambar 7.2: Trend error metode euler7.2 Metode Runge KuttaPada saat membahas metode Euler untuk penyelesaian persamaan diferensial, kita telah sampaipada kesimpulan bahwa truncation error metode Euler terus membesar seiring denganbertambahnya iterasi. Dikaitkan dengan hal tersebut, metode Runge-Kutta Orde Empat menawarkanpenyelesaian persamaan diferensial dengan pertumbuhan truncation error yang jauh lebih kecil.


7.2. METODE RUNGE KUTTA 107Persamaan-persamaan yang menyusun metode Runge-Kutta Orde Empat adalahw 0= αk 1 = hf(t i , w i ) (7.9)k 2 = hf(t i + h 2 , w i + 1 2 k 1) (7.10)k 3 = hf(t i + h 2 , w i + 1 2 k 2) (7.11)k 4 = hf(t i+1 , w i + k 3 ) (7.12)w i+1 = w i + 1 6 (k 1 + 2k 2 + 2k 3 + k 4 ) (7.13)ContohDiketahui persamaan diferensialy ′ = y − t 2 + 1, 0 ≤ t ≤ 2, y(0) = 0, 5dengan mengganti y menjadi w, kita bisa nyatakan f(t i , w i ) sebagaif(t i , w i ) = w i − t 2 i + 1Jika N = 10, makadansertah = b − aN = 2 − 010 = 0, 2t i = a + ih = 0 + i(0, 2) → t i = 0, 2iw 0 = 0, 5Sekarang mari kita demonstrasikan metode Runge-Kutta Orde Empat ini. Untuk menghitungw 1 , tahap-tahap perhitungannya dimulai dari menghitung k 1k 1 = hf(t 0 , w 0 )= h(w 0 − t 2 0 + 1)= 0, 2((0, 5) − (0, 0) 2 + 1)= 0, 3lalu menghitung k 2k 2 = hf(t 0 + h 2 , w 0 + k 12 )= h[(w 0 + k 12 ) − (t 0 + h 2 )2 + 1)]= 0, 2[(0, 5 + 0, 3 0, 2) − (0, 0 +2 2 )2 + 1)]= 0, 328


108 BAB 7. DIFERENSIAL NUMERIKdilanjutkan dengan k 3k 3 = hf(t 0 + h 2 , w 0 + k 22 )= h[(w 0 + k 22 ) − (t 0 + h 2 )2 + 1)]0, 328= 0, 2[(0, 5 + ) − (0, 0 + 0, 22 2 )2 + 1)]= 0, 3308kemudian k 4k 4 = hf(t 1 , w 0 + k 3 )= h[(w 0 + k 3 ) − t 2 1 + 1]= 0, 2[(0, 5 + 0, 3308) − (0, 2) 2 + 1]= 0, 35816akhirnya diperoleh w 1w 1 = w 0 + 1 6 (k 1 + 2k 2 + 2k 3 + k 4 )= 0, 5 + 1 (0, 3 + 2(0, 328) + 2(0, 3308) + 0, 35816)6= 0, 5 + 1 (0, 3 + 0, 656 + 0, 6616 + 0, 35816)6= 0, 8292933Dengan cara yang sama, w 2 , w 3 , w 4 dan seterusnya dapat dihitung. Tabel berikut menunjukkanhasil perhitungannya.i t i w i y i = y(t i ) |w i − y i |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,1799942 3,1799415 0,00004747 1,4 3,7323401 3,7324000 0,00005998 1,6 4,2834095 4,2834838 0,00007439 1,8 4,8150857 4,8151763 0,000090610 2,0 5,3054720 5,3053630 0,0001089Dibandingkan dengan metode Euler, tingkat pertumbuhan truncation error, pada kolom |w i −y i |, jauh lebih rendah sehingga metode Runge-Kutta Orde Empat lebih disukai untuk membantumenyelesaikan persamaan-diferensial-biasa.


7.2. METODE RUNGE KUTTA 109Gambar 7.3: Rangkaian RCContoh tadi tampaknya dapat memberikan gambaran yang jelas bahwa metode Runge-KuttaOrde Empat dapat menyelesaikan persamaan diferensial biasa dengan tingkat akurasi yanglebih tinggi. Namun, kalau anda jeli, ada suatu pertanyaan cukup serius yaitu apakah metodeini dapat digunakan bila pada persamaan diferensialnya tidak ada variabel t ? Misalnya padakasus berikut iniSebuah kapasitor yang tidak bermuatan dihubungkan secara seri dengan sebuah resistor danbaterry (Figure 7.3). Diketahui ǫ = 12 volt, C = 5,00 µF dan R = 8,00 ×10 5 Ω. Saat saklar dihubungkan(t=0), muatan belum ada (q=0).dqdt = ǫ R − qRC(7.14)Solusi exact persamaan (7.14) adalah(q exact = q(t) = Cǫ 1 − e −t/RC) (7.15)Anda bisa lihat semua suku di ruas kanan persamaan (7.14) tidak mengandung variabel t.Padahal persamaan-persamaan penyusun metode Runge-Kutta selalu mencantumkan variabelt. Apakah persamaan (7.14) tidak bisa diselesaikan dengan metode Runge-Kutta? Belum tentu.Sekarang, kita coba selesaikan, pertama kita nyatakanm 1 = ǫ = 1, 5 × 10−5Rm 2 = 1 = 0, 25RCsehingga persamaan (7.14) dimodifikasi menjadidqdt = f(q i) = m 1 − q i m 2t i = a + ihJika t 0 = 0, maka a = 0, dan pada saat itu (secara fisis) diketahui q 0 = 0, 0. Lalu jika ditetapkan


110 BAB 7. DIFERENSIAL NUMERIKh = 0, 1 maka t 1 = 0, 1 dan kita bisa mulai menghitung k 1 dengan menggunakan q 0 = 0, 0,walaupun t 1 tidak dilibatkan dalam perhitungan inik 1 = hf(q 0 )= h(m 1 − q 0 m 2 )= 0, 1((1, 5 × 10 −5 ) − (0, 0)(0, 25))= 0, 150 × 10 −5lalu menghitung k 2k 2 = hf(q 0 + k 12 )= h[(m 1 − (q 0 + k 12 )m 2)]= 0, 1[(1, 5 × 10 −5 − ((0, 0) += 0, 14813 × 10 −50, 15 × 10−5)(0, 25)]2dilanjutkan dengan k 3k 3 = hf(q 0 + k 22 )= h[(m 1 − (q 0 + k 22 )m 2)]= 0, 1[(1, 5 × 10 −5 − ((0, 0) += 0, 14815 × 10 −50, 14813 × 10−5)(0, 25)]2kemudian k 4k 4 = hf(q 0 + k 3 )= h[(m 1 − (q 0 + k 3 )m 2 )]= 0, 1[(1, 5 × 10 −5 − ((0, 0) + 0, 14815 × 10 −5 )(0, 25)]= 0, 14630 × 10 −5akhirnya diperoleh q 1q 1 = q 0 + 1 6 (k 1 + 2k 2 + 2k 3 + k 4 )= 0, 0 + 1 (0, 150 + 2(0, 14813) + 2(0, 14815) + 0, 14630) × 10−56= 0, 14814 × 10 −5Selanjutnya q 2 dihitung. Tentu saja pada saat t 2 , dimana t 2 = 0, 2, namun sekali lagi, t 2 tidak


7.2. METODE RUNGE KUTTA 111terlibat dalam perhitungan ini. Dimulai menghitung k 1 kembalik 1 = hf(q 1 )= h(m 1 − q 1 m 2 )= 0, 1((1, 5 × 10 −5 ) − (0, 14814 × 10 −5 )(0, 25))= 0, 14630 × 10 −5lalu menghitung k 2k 2 = hf(q 1 + k 12 )= h[(m 1 − (q 1 + k 12 )m 2)]= 0, 1[(1, 5 × 10 −5 − ((0, 14814 × 10 −5 ) += 0, 14447 × 10 −50, 14630 × 10−5)(0, 25)]2dilanjutkan dengan k 3k 3 = hf(q 1 + k 22 )= h[(m 1 − (q 1 + k 22 )m 2)]= 0, 1[(1, 5 × 10 −5 − ((0, 14814 × 10 −5 ) += 0, 14449 × 10 −50, 14447 × 10−5)(0, 25)]2kemudian k 4k 4 = hf(q 1 + k 3 )= h[(m 1 − (q 1 + k 3 )m 2 )]= 0, 1[(1, 5 × 10 −5 − ((0, 14814 × 10 −5 ) + 0, 14449 × 10 −5 )(0, 25)]= 0, 14268 × 10 −5akhirnya diperoleh q 2q 2 = q 1 + 1 6 (k 1 + 2k 2 + 2k 3 + k 4 )= 0, 14814 × 10 −5 + 1 (0, 14630 + 2(0, 14447) + 2(0, 14449) + 0, 14268) × 10−56= 0, 29262 × 10 −5Dengan cara yang sama, q 3 , q 4 , q 5 dan seterusnya dapat dihitung. Tabel di atas menunjukkanhasil perhitungannya. Kolom q exact diperoleh dari persamaan (7.15).Luar biasa!! Tak ada error sama sekali. Mungkin, kalau kita buat 7 angka dibelakang koma,errornya akan terlihat. Tapi kalau anda cukup puas dengan 5 angka dibelakang koma, hasil ini


112 BAB 7. DIFERENSIAL NUMERIKi t i q i q exact = q(t i ) |q i − q exact |0 0,0 0,00000×10 −5 0,00000×10 −5 0,000001 0,1 0,14814×10 −5 0,14814×10 −5 0,000002 0,2 0,29262×10 −5 0,29262×10 −5 0,000003 0,3 0,43354×10 −5 0,43354×10 −5 0,000004 0,4 0,57098×10 −5 0,57098×10 −5 0,000005 0,5 0,70502×10 −5 0,70502×10 −5 0,000006 0,6 0,83575×10 −5 0,83575×10 −5 0,000007 0,7 0,96326×10 −5 0,96326×10 −5 0,000008 0,8 1,0876×10 −5 1,0876×10 −5 0,000009 0,9 1,2089×10 −5 1,2089×10 −5 0,0000010 1,0 1,3272×10 −5 1,3272×10 −5 0,00000sangat memuaskan. Figure 7.4 memperlihatkan kurva penumpukan muatan q terhadap waktut.6 x 10−5 Gambar 7.4: Kurva muatan q terhadap waktu t4200 2 4 6 8 10 12 14 16 18 20Berikut ini adalah script dalam matlab yang dipakai untuk menghitung q1 clear all2 clc3 E=12;4 R=800000;5 C=5e-6;6 m1=E/R;7 m2=1/(R*C);8 b=20.0;9 a=0.0;


7.3. METODE FINITE DIFFERENCE 11310 h=0.1;11 n=(b-a)/h;12 q0=0.0;13 t0=0.0;14 for i=1:n15 t(i)=a+i*h;16 end17 for i=1:n18 if i==119 k1=h*(m1-(m2*q0));20 k2=h*(m1-(m2*(q0+(k1/2))));21 k3=h*(m1-(m2*(q0+(k2/2))));22 k4=h*(m1-(m2*(q0+k3)));23 q(i)=q0+(k1+(2*k2)+(2*k3)+k4)/6;24 else25 k1=h*(m1-(m2*q(i-1)));26 k2=h*(m1-(m2*(q(i-1)+(k1/2))));27 k3=h*(m1-(m2*(q(i-1)+(k2/2))));28 k4=h*(m1-(m2*(q(i-1)+k3)));29 q(i)=q(i-1)+(k1+(2*k2)+(2*k3)+k4)/6;30 end31 end32 qSampai disini mudah-mudahan jelas dan bisa dimengerti. Silakan anda coba untuk kasus yanglain, misalnya proses pembuangan (discharging) q pada rangkaian yang sama, atau bisa jugaanda berlatih dengan rangkaian RL dan RLC. Saya akhiri dulu uraian saya sampai disini.7.3 Metode Finite DifferenceSuatu persamaan diferensial dapat dinyatakan sebagai berikut:d 2 ydx2(x) = p(x)dy (x) + q(x)y(x) + r(x), a ≤ x ≤ b, y(a) = α, y(b) = β (7.16)dxatau juga dapat dituliskan dalam bentuk lainy ′′ = p(x)y ′ + q(x)y + r(x) (7.17)Persamaan tersebut dapat diselesaikan dengan melakukan pendekatan numerik terhadap y ′′dan y ′ . Caranya adalah pertama, kita memilih angka integer sembarang yaitu N dimana N > 0dan membagi interval [a, b] dengan (N + 1), hasilnya dinamakan h (lihat Gambar 7.5)h = b − aN + 1(7.18)Dengan demikian maka titik-titik x yang merupakan sub-interval antara a dan b dapat dinyatakansebagaix i = a + ih, i = 0, 1, ..., N + 1 (7.19)Pencarian solusi persamaan diferensial melalui pendekatan numerik dilakukan dengan memanfaatkanpolinomial Taylor untuk mengevaluasi y ′′ dan y ′ pada x i+1 dan x i−1 seperti berikut


114 BAB 7. DIFERENSIAL NUMERIKGambar 7.5: Kurva suatu fungsi f(x) yang dibagi sama besar berjarak h. Evaluasi kurva yangdilakukan Finite-Difference dimulai dari batas bawah X 0 = a hingga batas atas x 6 = binidanJika kedua persamaan ini dijumlahkanDari sini y ′′ dapat ditentukany(x i+1 ) = y(x i + h) = y(x i ) + hy ′ (x i ) + h22 y′′ (x i ) (7.20)y(x i−1 ) = y(x i − h) = y(x i ) − hy ′ (x i ) + h22 y′′ (x i ) (7.21)y(x i+1 ) + y(x i−1 ) = 2y(x i ) + h 2 y ′′ (x i )h 2 y ′′ (x i ) = y(x i+1 ) − 2y(x i ) + y(x i−1 )y ′′ (x i ) = y(x i+1) − 2y(x i ) + y(x i−1 )h 2 (7.22)Dengan cara yang sama, y ′ (x i ) dapat dicari sebagai berikuty ′ (x i ) = y(x i+1) − y(x i−1 )2h(7.23)Selanjutnya persamaan (7.22) dan (7.23) disubstitusikan ke persamaan (7.17) makay(x i+1 ) − 2y(x i ) + y(x i−1 )h 2 = p(x i ) y(x i+1) − y(x i−1 )+ q(x i )y(x i ) + r(x i )2h−y(x i+1 ) + 2y(x i ) − y(x i−1 )h 2 = −p(x i ) y(x i+1) − y(x i−1 )− q(x i )y(x i ) − r(x i )2h−y(x i+1 ) + 2y(x i ) − y(x i−1 )h 2 + p(x i ) y(x i+1) − y(x i−1 )+ q(x i )y(x i ) = −r(x i )2h


7.3. METODE FINITE DIFFERENCE 115Sebelum dilanjut, saya nyatakan bahwa y(x i+1 )=w i+1 dan y(x i )=w i serta y(x i−1 )=w i−1 . Makapersamaan di atas dapat ditulis sebagai berikut( )−wi+1 + 2w i − w i−1h 2 + p(x i )(wi+1 − w i−12h)+ q(x i )w i = −r(x i )(−w i+1 + 2w i − w i−1 ) + h 2 p(x i)(w i+1 − w i−1 ) + h 2 q(x i )w i = −h 2 r(x i )−w i+1 + 2w i − w i−1 + h 2 p(x i)w i+1 − h 2 p(x i)w i−1 + h 2 q(x i )w i = −h 2 r(x i )−w i−1 − h 2 p(x i)w i−1 + 2w i + h 2 q(x i )w i − w i+1 + h 2 p(x i)w i+1 = −h 2 r(x i )(− 1 + h )2 p(x i) w i−1 + ( 2 + h 2 q(x i ) ) (w i − (1 − h )2 p(x i) w i+1 = −h 2 r(x i ) (7.24)dimana i=1,2,3...sampai N, karena yang ingin kita cari adalah w 1 , w 2 , w 3 ,..., w N . Sementara,satu hal yang tak boleh dilupakan yaitu w 0 dan w N+1 biasanya selalu sudah diketahui. Padapersamaan (7.16), jelas-jelas sudah diketahui bahwa w 0 =α dan w N+1 =β; keduanya dikenal sebagaisyarat batas atau istilah asingnya adalah boundary value. Topik yang sedang bahas inijuga sering disebut sebagai Masalah Syarat Batas atau Boundary Value Problem.Sampai disini kita mendapatkan sistem persamaan linear yang selanjutnya dapat dinyatakansebagai bentuk operasi matrikdimana A adalah matrik tridiagonal dengan orde N × NA =⎡⎢⎣Aw = b (7.25)2 + h 2 q(x 1 ) −1 + h 2 p(x 1) 0 . . . . . . . . . 0−1 − h 2 p(x 2) 2 + h 2 q(x 2 ) −1 + h 2 p(x 2) 0 . . . . . . 00 −1 − h 2 p(x 3) 2 + h 2 q(x 3 ) −1 + h 2 p(x 3) 0 . . . 00 0 −1 − h 2 p(x 4) 2 + h 2 q(x 4 ) −1 + h 2 p(x 4) 0 0. . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . −1 − h 2 p(x N−1) 2 + h 2 q(x N−1 ) −1 + h 2 p(x N−1)0 . . . . . . . . . . . . −1 − h 2 p(x N) 2 + h 2 q(x N )⎤⎥⎦⎡w =⎢⎣⎤w 1w 2w 3w 4.⎥⎦w Nw N−1⎡−h 2 r(x 1 ) + ( 1 + h 2 p(x 1) ) ⎤w 0−h 2 r(x 2 )−h 2 r(x 3 )b =−h 2 r(x 4 ).⎢⎣ −h 2 r(x N−1 )⎥−h 2 r(x N ) + ( 1 − h 2 p(x N) ) ⎦w N+17.3.1 Script Finite-Difference1 clear all2 clc34 a=1.0; %ganti angkanya sesuai data yang anda miliki


116 BAB 7. DIFERENSIAL NUMERIK5 b=2.0; %ganti angkanya sesuai data yang anda miliki6 n=9; %ganti angkanya sesuai data yang anda miliki7 h=(b-a)/(n+1);8 alpha=1; %ganti angkanya sesuai data yang anda miliki9 beta=2; %ganti angkanya sesuai data yang anda miliki1011 %====== Mencari Elemen Matrik A ========12 for i=1:n13 x=a+i*h;14 A(i,i)=2+h^2*fungsiQ(x);15 end16 for i=1:n-117 x=a+i*h;18 A(i,i+1)=-1+((h/2)*fungsiP(x));19 end20 for i=2:n21 x=a+i*h;22 A(i,i-1)=-1-((h/2)*fungsiP(x));23 end24 A25 %====== Mencari Elemen Vektor b ========26 x=a+h;27 b(1,1)=-h^2*fungsiR(x)+(1+((h/2)*fungsiP(x)))*alpha;28 for i=2:829 x=a+i*h;30 b(i,1)=-h^2*fungsiR(x);31 end32 xn=a+n*h33 b(n,1)=-h^2*fungsiR(xn)+(1-((h/2)*fungsiP(xn)))*beta;34 bPada akhirnya, elemen-elemen matrik A dan vektor b sudah diketahui. Sehingga vektor wdapat dihitung dengan berbagai metode pemecahan sistem persamaan linear, seperti EliminasiGauss, Gauss-Jourdan, Iterasi Jacobi dan Iterasi Gauss-Seidel.ContohDiketahui persamaan diferensial seperti berikut inimemiliki solusi exactdimanay ′′ = − 2 x y′ + 2 sin(lnx)x2y +x 2 , 1 ≤ x ≤ 2, y(1) = 1, y(2) = 2y = c 1 x + c 2x 2 − 3 10 sin(lnx) − 1 10 cos(lnx),c 2 = 1 [8 − 12 sin(ln2) − 4 cos(ln2)] ≈ −0, 0392070132070


7.3. METODE FINITE DIFFERENCE 117danc 1 = 1110 − c 2 ≈ 1, 1392070132.Dengan metode Finite-Difference, solusi pendekatan dapat diperoleh dengan membagi interval1 ≤ x ≤ 2 menjadi sub-interval, misalnya kita gunakan N = 9, sehingga spasi h diperolehh = b − aN + 1 = 2 − 19 + 1 = 0, 1Dari persamaan diferensial tersebut juga didapatp(x i ) = − 2 x iq(x i ) =2 x 2 ir(x i ) = sin(lnx i)x 2 iScript matlab telah dibuat untuk menyelesaikan contoh soal ini. Untuk memecahkan persoalanini, saya membuat 4 buah script, terdiri dari script utama, script fungsiP, script fungsiQ danscript fungsiR. Berikut ini adalah script fungsiP yang disimpan dengan nama file fungsiP.m:1 function y = fungsiP(x)2 y = -2/x;lalu inilah script fungsiQ yang disimpan dengan nama file fungsiQ.m:1 function y = fungsiQ(x)2 y = 2/x^2;kemudian ini script fungsiR yang disimpan dengan nama file fungsiR.m::1 function y = fungsiR(x)2 y = sin(log(x))/x^2;dan terakhir, inilah script utamanya:1 clear all2 clc34 a=1.0;5 b=2.0;67 alpha=1;8 beta=2;910 %=======jika diketahui n, maka h dihitung ====


118 BAB 7. DIFERENSIAL NUMERIK11 n=9;12 h=(b-a)/(n+1);1314 %=======jika diketahui h, maka n dihitung ====15 %h=0.1;16 %n=((b-a)/h)-1;1718 %====== Mencari Elemen Matrik A ========19 for i=1:n20 x=a+i*h;21 A(i,i)=2+h^2*fungsiQ(x);22 end23 for i=1:n-124 x=a+i*h;25 A(i,i+1)=-1+((h/2)*fungsiP(x));26 end27 for i=2:n28 x=a+i*h;29 A(i,i-1)=-1-((h/2)*fungsiP(x));30 end31 A32 %====== Mencari Elemen Vektor b ========33 x=a+h;34 b(1,1)=-h^2*fungsiR(x)+(1+((h/2)*fungsiP(x)))*alpha;35 for i=2:836 x=a+i*h;37 b(i,1)=-h^2*fungsiR(x);38 end39 xn=a+n*h40 b(n,1)=-h^2*fungsiR(xn)+(1-((h/2)*fungsiP(xn)))*beta;41 b42 %====== Menggabungkan Vektor b kedalam matrik A ========43 for i=1:n44 A(i,n+1)=b(i,1);45 end46 A4748 %&&&&&& Proses Eliminasi Gauss &&&&&&&&&&&&&&&&&&&&&&&&&49 %---------Proses Triangularisasi-----------50 for j=1:(n-1)5152 %----mulai proses pivot---53 if (A(j,j)==0)54 for p=1:n+155 u=A(j,p);56 v=A(j+1,p);57 A(j+1,p)=u;


7.3. METODE FINITE DIFFERENCE 11958 A(j,p)=v;59 end60 end61 %----akhir proses pivot---62 jj=j+1;63 for i=jj:n64 m=A(i,j)/A(j,j);65 for k=1:(n+1)66 A(i,k)=A(i,k)-(m*A(j,k));67 end68 end69 end70 %-------------------------------------------7172 %------Proses Substitusi mundur-------------73 x(n,1)=A(n,n+1)/A(n,n);7475 for i=n-1:-1:176 S=0;77 for j=n:-1:i+178 S=S+A(i,j)*x(j,1);79 end80 x(i,1)=(A(i,n+1)-S)/A(i,i);81 end82 %&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&8384 %===== Menampilkan Vektor w =================85 w=xTabel berikut ini memperlihatkan hasil perhitungan dengan pendekatan metode Finite-Differencew i dan hasil perhitungan dari solusi exact y(x i ), dilengkapi dengan selisih antara keduanya|w i − y(x i )|. Tabel ini memperlihatkan tingkat kesalahan (error) berada pada orde 10 −5 . Unxi w i y(x i ) |w i − y(x i )|1,0 1,00000000 1,000000001,1 1,09260052 1,09262930 2,88 × 10 −51,2 1,18704313 1,18708484 4,17 × 10 −51,3 1,28333687 1,28338236 4,55 × 10 −51,4 1,38140205 1,38144595 4,39 × 10 −51,5 1,48112026 1,48115942 3,92 × 10 −51,6 1,58235990 1,58239246 3,26 × 10 −51,7 1,68498902 1,68501396 2,49 × 10 −51,8 1,78888175 1,78889853 1,68 × 10 −51,9 1,89392110 1,89392951 8,41 × 10 −62,0 2,00000000 2,00000000tuk memperkecil orde kesalahan, kita bisa menggunakan polinomial Taylor berorde tinggi.Akan tetapi proses kalkulasi menjadi semakin banyak dan disisi lain penentuan syarat batas


120 BAB 7. DIFERENSIAL NUMERIKlebih kompleks dibandingkan dengan pemanfaatan polinomial Taylor yang sekarang. Untukmenghindari hal-hal yang rumit itu, salah satu jalan pintas yang cukup efektif adalah denganmenerapkan ekstrapolasi Richardson.ContohPemanfaatan ekstrapolasi Richardson pada metode Finite Difference untuk persamaan diferensialseperti berikut iniy ′′ = − 2 x y′ + 2 sin(lnx)x2y +x 2 , 1 ≤ x ≤ 2, y(1) = 1, y(2) = 2,dengan h = 0, 1, h = 0, 05, h = 0, 025. Ekstrapolasi Richardson terdiri atas 3 tahapan, yaituekstrapolasi yang pertamakemudian ekstrapolasi yang keduadan terakhir ekstrapolasi yang ketigaExt 1i = 4w i(h = 0, 05) − w i (h = 0, 1)3Ext 2i = 4w i(h = 0, 025) − w i (h = 0, 05)3Ext 3i = 16Ext 2i − Ext 1i15Tabel berikut ini memperlihatkan hasil perhitungan tahapan-tahapan ekstrapolasi tersebut. Jikaseluruh angka di belakang koma diikut-sertakan, maka akan terlihat selisih antara solusiexact dengan solusi pendekatan sebesar 6, 3 × 10 −11 . Ini benar-benar improvisasi yang luarbiasa.x i w i (h = 0, 1) w i (h = 0, 05) w i (h = 0, 025) Ext 1i Ext 2i Ext 3i1,0 1,00000000 1,00000000 1,00000000 1,00000000 1,00000000 1,000000001,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,000000007.3.2 AplikasiBesar simpangan terhadap waktu (y(t)) suatu sistem osilator mekanik yang padanya diberikangaya secara periodik (forced-oscilations) memenuhi persamaan diferensial seperti dibawah ini


7.3. METODE FINITE DIFFERENCE 121berikut syarat-syarat batasnyad 2 ydt 2 = dydt + 2y + cos(t), 0 ≤ t ≤ π 2 , y(0) = −0, 3, y(π 2 ) = −0, 1Dengan metode Finite-Difference, tentukanlah besar masing-masing simpangan di setiap intervalh = π/8. Buatlah table untuk membandingkan hasil finite-difference dengan solusi analitikyang memenuhi y(t) = − 1 10[sin(t) + 3cos(t)].jawab:Secara umum, persamaan diferensial dapat dinyatakan sbb:d 2 ydx2(x) = p(x)dy (x) + q(x)y(x) + r(x), a ≤ x ≤ b, y(a) = α, y(b) = βdxDengan membandingkan kedua persamaan di atas, kita bisa definisikanp(t) = 1 q(t) = 2 r(t) = cos(t) a = 0 b = π 2α = −0, 3 β = −0, 1Adapun persamaan finite-difference adalah(− 1 + h )2 p(x i) w i−1 + ( 2 + h 2 q(x i ) ) (w i − (1 − h )2 p(x i) w i+1 = −h 2 r(x i )Persamaan diatas dikonversi kedalam operasi matriksdimana A adalah matrik tridiagonal dengan orde N × NA =⎡⎢⎣Aw = b (7.26)2 + h 2 q(x 1 ) −1 + h 2 p(x 1) 0 . . . . . . . . . 0−1 − h 2 p(x 2) 2 + h 2 q(x 2 ) −1 + h 2 p(x 2) 0 . . . . . . 00 −1 − h 2 p(x 3) 2 + h 2 q(x 3 ) −1 + h 2 p(x 3) 0 . . . 00 0 −1 − h 2 p(x 4) 2 + h 2 q(x 4 ) −1 + h 2 p(x 4) 0 0. . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . −1 − h 2 p(x N−1) 2 + h 2 q(x N−1 ) −1 + h 2 p(x N−1)0 . . . . . . . . . . . . −1 − h 2 p(x N) 2 + h 2 q(x N )⎡w =⎢⎣⎤w 1w 2w 3w 4.⎥⎦w Nw N−1⎡−h 2 r(x 1 ) + ( 1 + h 2 p(x 1) ) ⎤w 0−h 2 r(x 2 )−h 2 r(x 3 )b =−h 2 r(x 4 ).⎢⎣ −h 2 r(x N−1 )⎥−h 2 r(x N ) + ( 1 − h 2 p(x N) ) ⎦w N+1Jumlah baris matrik ditentukan oleh bilangan n. Namun disoal hanya tersedia informasi nilai⎤⎥⎦


122 BAB 7. DIFERENSIAL NUMERIKh = π/8, sehingga n harus dihitung terlebih dahulu:h = b − an + 1n = b − ah− 1 = π2 − 0π/8 − 1 = 3perhitungan ini dilakukan didalam script matlab. Selanjutnya seluruh elemen matrik A danvektor b dihitung dengan matlab⎡⎢⎣⎤⎡⎤2, 3084 −0, 8037 0 w 1⎥⎢−1, 1963 2, 3084 −0, 8037 ⎦⎣w 20 −1, 1963 2, 3084 w 3⎥⎦ =⎡⎢⎣−0, 5014−0, 1090−0, 1394Proses diteruskan dengan metode Eliminasi Gauss dan didapat hasil akhir berikut iniw 1 = −0.3157 w 2 = −0.2829 w 3 = −0.2070⎤⎥⎦


Bab 8Persamaan Diferensial Parsial Numerik✍ Objektif :⊲ Mengenalkan Persamaan Diferensial Parsial Eliptik⊲ Mengenalkan Persamaan Diferensial Parsial Hiperbolik⊲ Mengenalkan Persamaan Diferensial Parsial Parabolik8.1 PendahuluanDalam bab ini, penulisan ’persamaan diferensial parsial’ akan dipersingkat menjadi PDP. PDPdapat dibagi menjadi 3 jenis, yaitu persamaan diferensial eliptik, parabolik dan hiperbolik.PDP eliptik dinyatakan sebagai berikut∂ 2 u∂x 2(x, y) + ∂2 u(x, y) = f(x, y) (8.1)∂y2 Di bidang fisika, persamaan (8.1) dikenal sebagai Persamaan Poisson. Jika f(x, y)=0, makadiperoleh persamaan yang lebih sederhana∂ 2 u∂x 2(x, y) + ∂2 u(x, y) = 0 (8.2)∂y2 yang biasa disebut sebagai Persamaan Laplace. Contoh masalah PDP eliptik di bidang fisikaadalah distribusi panas pada kondisi steady-state pada obyek 2-dimensi dan 3-dimensi.Jenis PDP kedua adalah PDP parabolik yang dinyatakan sebagai berikut∂u∂t (x, t) − uα2∂2∂x2(x, t) = 0 (8.3)Fenomena fisis yang bisa dijelaskan oleh persamaan ini adalah masalah aliran panas pada suatuobyek dalam fungsi waktu t.123


......124 BAB 8. PERSAMAAN DIFERENSIAL PARSIAL NUMERIKdmesh pointsy mky 2y 1cgrid linesax 1 x 2 ... x nhbGambar 8.1: Skema grid lines dan mesh points pada aplikasi metode Finite-DifferenceTerakhir, PDP ketiga adalah PDP hiperbolik yang dinyatakan sebagai berikutα 2∂2 u∂ 2 x (x, t) = ∂2 u(x, t) (8.4)∂t2 biasa digunakan untuk menjelaskan fenomena gelombang.Sekarang, mari kita bahas lebih dalam satu-persatu, difokuskan pada bagaimana cara menyatakansemua PDP di atas dalam formulasi Finite-Difference.8.2 PDP eliptikKita mulai dari persamaan aslinya∂ 2 u∂x 2(x, y) + ∂2 u(x, y) = f(x, y) (8.5)∂y2 dimana R = [(x, y)|a < x < b, c < y < d]. Maksudnya, variasi titik-titik x berada di antara adan b. Demikian pula dengan variasi titik-titik y, dibatasi mulai dari c sampai d (lihat Gambar8.1). Jika h adalah jarak interval antar titik yang saling bersebelahan pada titik-titik dalamrentang a dan b, maka titik-titik variasi di antara a dan b dapat diketahui melalui rumus inix i = a + ih, dimana i = 1, 2, . . .,n (8.6)dimana a adalah titik awal pada sumbu horisontal x. Demikian pula pada sumbu y. Jika kadalah jarak interval antar titik yang bersebelahan pada titik-titik dalam rentang c dan d, makatitik-titik variasi di antara c dan d dapat diketahui melalui rumus iniy j = c + jk, dimana j = 1, 2, . . .,m (8.7)


8.2. PDP ELIPTIK 125dimana c adalah titik awal pada sumbu vertikal y. Perhatikan Gambar 8.1, garis-garis yangsejajar sumbu horisontal, y = y i dan garis-garis yang sejajar sumbu vertikal, x = x i disebut gridlines. Sementara titik-titik perpotongan antara garis-garis horisontal dan vertikal dinamakanmesh points.Turunan kedua sebagaimana yang ada pada persamaan (8.5) dapat dinyatakan dalam rumuscentered-difference sebagai berikut∂ 2 u∂x 2(x i, y j ) = u(x i+1, y j ) − 2u(x i , y j ) + u(x i−1 , y j )h 2− h2 ∂ 4 u12 ∂x 4(ξ i, y j ) (8.8)∂ 2 u∂y 2 (x i, y j ) = u(x i, y j+1 ) − 2u(x i , y j ) + u(x i , y j−1 )k 2− k2 ∂ 4 u12 ∂y 4 (x i, η j ) (8.9)Metode Finite-Difference biasanya mengabaikan suku yang terakhir, sehingga∂ 2 u∂x 2(x i, y j ) = u(x i+1, y j ) − 2u(x i , y j ) + u(x i−1 , y j )h 2 (8.10)∂ 2 u∂y 2 (x i, y j ) = u(x i, y j+1 ) − 2u(x i , y j ) + u(x i , y j−1 )k 2 (8.11)Pengabaian suku terakhir otomatis menimbulkan error yang dinamakan truncation error. Jadi,ketika suatu persamaan diferensial diolah secara numerik dengan metode Finite-Difference, makasolusinya pasti meleset/keliru "sedikit", karena adanya truncation error. Akan tetapi, nilaierror tersebut dapat ditolerir hingga batas-batas tertentu yang uraiannya akan dikupas padabagian akhir bab ini.Ok. Mari kita lanjutkan! Sekarang persamaan (8.10) dan (8.11) disubstitusi ke persamaan (8.5),hasilnya adalahu(x i+1 , y j ) − 2u(x i , y j ) + u(x i−1 , y j )h 2 + u(x i, y j+1 ) − 2u(x i , y j ) + u(x i , y j−1 )k 2 = f(x i , y j ) (8.12)dimana i = 1, 2, ..., n − 1 dan j = 1, 2, ..., m − 1 dengan syarat batas sebagai berikutu(x 0 , y j ) = g(x 0 , y j ) u(x n , y j ) = g(x n , y j )u(x i , y 0 ) = g(x i , y 0 ) u(x i , y m ) = g(x i , y m )Pengertian syarat batas disini adalah bagian tepi atau bagian pinggir dari susunan mesh points.


126 BAB 8. PERSAMAAN DIFERENSIAL PARSIAL NUMERIKPada metode Finite-Difference, persamaan (8.12) dinyatakan dalam notasi w, sebagai berikutw i+1,j − 2w i,j + w i−1,jh 2+ w i,j+1 − 2w i,j + w i,j−1k 2 = f(x i , y j )w i+1,j − 2w i,j + w i−1,j + h2k 2 (w i,j+1 − 2w i,j + w i,j−1 ) = h 2 f(x i , y j )w i+1,j − 2w i,j + w i−1,j + h2k 2 w i,j+1 − 2 h2k 2 w i,j + h2k 2 w i,j−1 = h 2 f(x i , y j )−2[1 + h2k 2 ]w i,j + (w i+1,j + w i−1,j ) + h2k 2 (w i,j+1 + w i,j−1 ) = h 2 f(x i , y j )2[1 + h2k 2 ]w i,j − (w i+1,j + w i−1,j ) − h2k 2 (w i,j+1 + w i,j−1 ) = −h 2 f(x i , y j ) (8.13)dimana i = 1, 2, ..., n − 1 dan j = 1, 2, ..., m − 1, dengan syarat batas sebagai berikutw 0,j = g(x 0 , y j ) w n,j = g(x n , y j ) j = 0, 1, ..., m;w i,0 = g(x i , y 0 ) w i,m = g(x i , y m ) i = 1, 2, ..., n − 1.Persamaan (8.13) adalah rumusan akhir metode Finite-Difference untuk PDP Eliptik.8.2.1 Contoh pertamaMisalnya kita diminta mensimulasikan distribusi panas pada lempengan logam berukuran 0, 5m x 0, 5 m. Temperatur pada 2 sisi tepi lempengan logam dijaga pada 0 ◦ C, sementara pada 2sisi tepi lempengan logam yang lain, temperaturnya diatur meningkat secara linear dari 0 ◦ Chingga 100 ◦ C. Problem ini memenuhi PDP Eliptik:∂ 2 u∂x 2(x, y) + ∂2 u(x, y) = 0;∂y2 0 < x < 0, 5, 0 < y < 0, 5dengan syarat-syarat batasu(0, y) = 0, u(x,0) = 0, u(x,0.5) = 200x, u(0.5, y) = 200yJika n = m = 4 sedangkan ukuran lempeng logam adalah 0, 5 m x 0, 5 m, makah = 0, 54= 0, 125 k =0, 54= 0, 125Grid lines berikut mesh points dibuat berdasarkan nilai h dan k tersebut (lihat Gambar 8.2).Langkah berikutnya adalah menyusun persamaan Finite-Differences, dimulai dari persamaanasalnya (persamaan 8.13)2[1 + h2k 2 ]w i,j − (w i+1,j + w i−1,j ) − h2k 2 (w i,j+1 + w i,j−1 ) = −h 2 f(x i , y j )


8.2. PDP ELIPTIK 127YU(x,0.5)=200x0.5U(0,y)=0W 0,3W 0,2W 1,4W 2,4W 3,4W 4,3W 1,3W 2,3W 3,3W 1,2W 2,2W 3,2W 1,1W 2,1W 3,1W 0,1W 1,0W 2,0W 3,0W 4,2U(0.5,y)=200yW 4,1U(x,0)=00.5XGambar 8.2: Susunan grid lines dan mesh points untuk mensimulasikan distribusi temperaturpada lempeng logam sesuai contoh satuKarena h = k = 0, 125 dan f(x i , y j ) = 0, maka4w i,j − w i+1,j − w i−1,j − w i,j−1 − w i,j+1 = 0 (8.14)Disisi lain, karena n = 4, maka nilai i yang bervariasi i = 1, 2, ..., n − 1 akan menjadi i =1, 2, 3. Demikian hal-nya dengan j, karena m = 4, maka variasi j = 1, 2, ..., m − 1 atau j =1, 2, 3. Dengan menerapkan persamaan (8.14) pada setiap mesh point yang belum diketahuitemperaturnya, diperoleh4w 1,3 − w 2,3 − w 1,2 = w 0,3 + w 1,44w 2,3 − w 3,3 − w 2,2 − w 1,3 = w 2,44w 3,3 − w 3,2 − w 2,3 = w 4,3 + w 3,44w 1,2 − w 2,2 − w 1,1 − w 1,3 = w 0,24w 2,2 − w 3,2 − w 2,1 − w 1,2 − w 2,3 = 04w 3,2 − w 3,1 − w 2,2 − w 3,3 = w 4,24w 1,1 − w 2,1 − w 1,2 = w 0,1 + w 1,04w 2,1 − w 3,1 − w 1,1 − w 2,2 = w 2,04w 3,1 − w 2,1 − w 3,2 = w 3,0 + w 4,1


128 BAB 8. PERSAMAAN DIFERENSIAL PARSIAL NUMERIKSemua notasi w yang berada diruas kanan tanda sama-dengan sudah ditentukan nilainya sebagaisyarat batas, yaituw 1,0 = w 2,0 = w 3,0 = w 0,1 = w 0,2 = w 0,3 = 0,w 1,4 = w 4,1 = 25, w 2,4 = w 4,2 = 50, danw 3,4 = w 4,3 = 75Dengan memasukkan syarat batas tersebut ke dalam sistem persamaan linear, maka4w 1,3 − w 2,3 − w 1,2 = 254w 2,3 − w 3,3 − w 2,2 − w 1,3 = 504w 3,3 − w 3,2 − w 2,3 = 1504w 1,2 − w 2,2 − w 1,1 − w 1,3 = 04w 2,2 − w 3,2 − w 2,1 − w 1,2 − w 2,3 = 04w 3,2 − w 3,1 − w 2,2 − w 3,3 = 504w 1,1 − w 2,1 − w 1,2 = 04w 2,1 − w 3,1 − w 1,1 − w 2,2 = 04w 3,1 − w 2,1 − w 3,2 = 25Kemudian diubahkan ke dalam 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−1 0 0 4 −1 0 −1 0 00 −1 0 −1 4 −1 0 −1 00 0 −1 0 −1 4 0 0 −10 0 0 −1 0 0 4 −1 00 0 0 0 −1 0 −1 4 −10 0 0 0 0 −1 0 −1 4⎤⎡⎥⎢⎦⎣⎤ ⎡w 1,3w 2,3w 3,3w 1,2w 2,2=w 3,2w 1,1⎥ ⎢w 2,1 ⎦ ⎣w 3,1255015000500025⎤⎥⎦Mari kita perhatikan sejenak susunan elemen-elemen angka pada matrik berukuran 9x9. Terlihatjelas bahwa angka diagonal selalu bernilai 4. Ini sama sekali bukan ketidaksengajaan.Melainkan susunan itu sengaja direkayasa sedemikian rupa sehingga elemen-elemen tri-diagonalterisi penuh oleh angka bukan 0 dan pada diagonal utamanya diletakkan angka yang terbesar.Metode Eliminasi Gauss dan Iterasi Gauss-Seidel telah diaplikasikan untuk menyelesaikan persamaanmatrik di atas.


8.2. PDP ELIPTIK 1298.2.2 Script Matlab untuk PDP ElliptikInilah script Matlab yang dipakai untuk menghitung nila-nilai w menggunakan metode EliminasiGauss.1 clear all2 clc3 n=9;4 A=[ 4 -1 0 -1 0 0 0 0 0;5 -1 4 -1 0 -1 0 0 0 0;6 0 -1 4 0 0 -1 0 0 0;7 -1 0 0 4 -1 0 -1 0 0;8 0 -1 0 -1 4 -1 0 -1 0;9 0 0 -1 0 -1 4 0 0 -1;10 0 0 0 -1 0 0 4 -1 0;11 0 0 0 0 -1 0 -1 4 -1;12 0 0 0 0 0 -1 0 -1 4];1314 b=[25; 50; 150; 0; 0; 50; 0; 0; 25];1516 %&&&&&& Proses Eliminasi Gauss &&&&&&&&&&&&&&&&&&&&&&&&&17 %====== Menggabungkan Vektor b kedalam matrik A ========18 %====== sehingga terbentuk matrik Augmentasi. ========19 for i=1:n20 A(i,n+1)=b(i,1);21 end2223 %---------Proses Triangularisasi-----------24 for j=1:(n-1)2526 %----mulai proses pivot---27 if (A(j,j)==0)28 for p=1:n+129 u=A(j,p);30 v=A(j+1,p);31 A(j+1,p)=u;32 A(j,p)=v;33 end34 end35 %----akhir proses pivot---36 jj=j+1;37 for i=jj:n38 m=A(i,j)/A(j,j);39 for k=1:(n+1)40 A(i,k)=A(i,k)-(m*A(j,k));41 end42 end43 end44 %-------------------------------------------4546 %------Proses Substitusi mundur-------------47 x(n,1)=A(n,n+1)/A(n,n);4849 for i=n-1:-1:150 S=0;51 for j=n:-1:i+152 S=S+A(i,j)*x(j,1);53 end


130 BAB 8. PERSAMAAN DIFERENSIAL PARSIAL NUMERIK54 x(i,1)=(A(i,n+1)-S)/A(i,i);55 end56 %&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&5758 %===== Menampilkan Vektor w =================59 w=xSementara berikut ini adalah script Matlab untuk menghitung nila-nilai w menggunakan metodeIterasi Gauss-Seidel.1 clear all2 clc34 n=9;5 A=[ 4 -1 0 -1 0 0 0 0 0;6 -1 4 -1 0 -1 0 0 0 0;7 0 -1 4 0 0 -1 0 0 0;8 -1 0 0 4 -1 0 -1 0 0;9 0 -1 0 -1 4 -1 0 -1 0;10 0 0 -1 0 -1 4 0 0 -1;11 0 0 0 -1 0 0 4 -1 0;12 0 0 0 0 -1 0 -1 4 -1;13 0 0 0 0 0 -1 0 -1 4];1415 b=[25; 50; 150; 0; 0; 50; 0; 0; 25];1617 %&&&&&&& ITERASI GAUSS-SEIDEL &&&&&&&&&&&&&&&&&&18 itermax=100; %iterasi maksimum19 %----nilai awal-----------20 xl=[0; 0; 0; 0; 0; 0; 0; 0; 0];21 xb=xl;22 %----stopping criteria-----------23 sc=0.001;24 %----memulai iterasi-------------25 for iterasi=1:itermax26 smtr1=0;27 for j=2:n28 smtr1=smtr1+A(1,j)*xl(j,1);29 end30 xb(1,1)=(-smtr1+b(1,1))/A(1,1);31 %----------------------------------------------32 for i=2:n-133 smtr2=0;34 for j=i+1:n35 smtr2=smtr2-A(i,j)*xl(j,1);36 end37 smtr3=0;38 for k=1:i-139 smtr3=smtr3-A(i,k)*xb(k,1);40 end41 xb(i,1)=(smtr3+smtr2+b(i,1))/A(i,i);42 end43 %----------------------------------------------44 smtr4=0;45 for k=1:n-146 smtr4=smtr4-A(n,k)*xb(k,1);47 end48 xb(n,1)=(smtr4+b(n,1))/A(n,n);


8.2. PDP ELIPTIK 13149 %------perhitungan norm2 -------------50 s=0;51 for i=1:n52 s=s+(xb(i,1)-xl(i,1))^2;53 end54 epsilon=sqrt(s);55 %-------------------------------------56 xl=xb;57 %------memeriksa stopping criteria--------58 if epsilon


132 BAB 8. PERSAMAAN DIFERENSIAL PARSIAL NUMERIKdengan syarat batasu (0, y) = 0, u (2, y) = 2e y , 0 ≤ y ≤ 1,u (x,0) = x, u (x,1) = ex, 0 ≤ x ≤ 2,Solusi numerik dihitung dengan pendekatan finite-difference gauss-seidel dimana batas toleransikesalahan ditentukan∣ ∣∣w (l)ij − w(l−1) ij∣ ≤ 10 −108.3 PDP parabolikPDP parabolik yang kita pelajari disini adalah persamaan difusi∂u∂t (x, t) = uα2∂2∂x2(x, t), 0 < x < l, t > 0, (8.15)yang berlaku pada kondisidanu(0, t) = u(l, t) = 0, t > 0,u(x,0) = f(x), 0 ≤ x ≤ l,dimana t dalam dimensi waktu, sementara x berdimensi jarak.8.3.1 Metode Forward-differenceSolusi numerik diperoleh menggunakan forward-difference 1 dengan langkah-langkah yanghampir mirip seperti yang telah dilakukan pada PDP eliptik. Langkah pertama adalah menentukansebuah angka m > 0 yang dengannya nilai h ditentukan oleh rumus h = l/m. Langkahkedua adalah menentukan ukuran time-step k dimana k > 0. Adapun mesh points ditentukanoleh (x i , t j ), dimana x i = ih, dengan i = 0, 1, 2, ..., m, dan t j = jk dengan j = 0, 1, ....adalahBerdasarkan deret Taylor, turunan pertama terhadap t, dengan time step k, persamaan (8.15)∂u∂t (x i, t j ) = u (x i, t j + k) − u (x i , t j )− k ∂ 2 uk 2 ∂t 2 (x i, µ j ) (8.16)Namun, sebagaimana pendekatan finite-difference pada umumnya, pendekatan forward-differenceselalu mengabaikan suku terakhir, sehingga persamaan di atas ditulis seperti ini∂u∂t (x i, t j ) = u (x i, t j + k) − u (x i , t j )k(8.17)1 Pada Bab ini ada beberapa istilah yang masing-masing menggunakan kata difference, yaitu finite difference, forwarddifference, centered difference dan backward difference. Setiap istilah punya arti yang berbeda.


8.3. PDP PARABOLIK 133Sementara itu, turunan kedua terhadap x atas persamaan (8.15) berdasarkan deret Taylor adalah∂ 2 u∂x 2 (x i, t j ) = u (x i + h, t J ) − 2u (x i , t j ) + u (x i − h, t J )h 2− h2 ∂ 4 u12 ∂x 4 (ξ i, t j ) (8.18)Pengabaian suku terakhir menjadikan persamaan di atas ditulis kembali sebagai berikut∂ 2 u∂x 2 (x i, t j ) = u (x i + h, t j ) − 2u (x i , t j ) + u (x i − h, t j )h 2 (8.19)Kemudian persamaan (8.17) dan (8.19) disubstitusi kedalam persamaan (8.15), maka diperolehu (x i , t j + k) − u (x i , t j )k= α 2u(x i + h, t j ) − 2u (x i , t j ) + u (x i − h, t j )h 2 (8.20)atau dapat dinyatakan dalam notasi ww i,j+1 − w i,jk− α 2w i+1,j − 2w i,j + w i−1,jh 2 = 0 (8.21)Dari sini diperoleh solusi untuk w i,j+1 , yaituw i,j+1 =( )1 − 2α2 kh 2 w i,j + α 2 k h 2 (w i+1,j + w i−1,j ) (8.22)jikamakaλ = α2 kh 2 (8.23)(1 − 2λ) w i,j + λw i+1,j + λw i−1,j = w i,j+1 (8.24)8.3.2 Contoh ketiga: One dimensional heat equationMisalnya diketahui, distribusi panas satu dimensi (1D) sebagai fungsi waktu (t) pada sebatanglogam memenuhi persamaan berikut∂u∂t (x, t) − ∂2 u∂x2(x, t) = 0, 0 < x < 1 0 ≤ t,dengan syarat batasdan kondisi mula-mulau(0, t) = u(1, t) = 0, 0 < t,u(x,0) = sin(πx), 0 ≤ x ≤ 1,Solusi analitik atas masalah ini adalahu(x, t) = e −π2t sin(πx)Adapun sebaran posisi mesh-points dalam 1-D diperlihatkan pada Gambar 8.3.Sementara


134 BAB 8. PERSAMAAN DIFERENSIAL PARSIAL NUMERIKh=0.1Gambar 8.3: Sebatang logam dengan posisi titik-titik simulasi (mesh-points) distribusi temperatur. Jarakantar titik ditentukan sebesar h = 0,1.Gambar 8.4 melengkapi Gambar 8.3, dimana perubahan waktu tercatat setiap interval k =0, 0005. Sepintas Gambar 8.4 terlihat seolah-olah obyek yang mau disimulasikan berbentuk2-dimensi, padahal bendanya tetap 1-dimensi yaitu hanya sebatang logam.t0.0.....k=0.00050h=0.11xGambar 8.4: Interval mesh-points dengan jarak h = 0,1 dalam interval waktu k = 0,0005Selanjutnya, Gambar 8.5 memperlihatkan tepi-tepi syarat batas yaitu angka 0 di ujung kiridan angka 1 di ujung kanan pada sumbu horisontal x. Diantara batas-batas itu terdapat sebarantitik simulasi berjarak h = 0, 1. Sementara, sumbu vertikal menunjukan perubahan dariwaktu ke waktu dengan interval k = 0, 0005. Karena α = 1, h = 0, 1 dan k = 0, 0005 maka λt0.0.....0.00150.00100.00050 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.91xGambar 8.5: Posisi mesh-points. Arah x menunjukkan posisi titik-titik yang dihitung dengan forwarddifference,sedangkan arah t menunjukkan perubahan waktu yg makin meningkatdapat dihitung dengan persamaan (8.23)λ = α2 kh 2 = 0, 1 = 0, 050, 00052


8.3. PDP PARABOLIK 135Berdasarkan persamaan (8.24), sistem persamaan linear dapat disusun sebagai berikut0, 9w 1,j + 0, 5w 2,j = w 1,j+1 − 0, 5w 0,j0, 9w 2,j + 0, 5w 3,j + 0, 5w 1,j = w 2,j+10, 9w 3,j + 0, 5w 4,j + 0, 5w 2,j = w 3,j+10, 9w 4,j + 0, 5w 5,j + 0, 5w 3,j = w 4,j+10, 9w 5,j + 0, 5w 6,j + 0, 5w 4,j = w 5,j+10, 9w 6,j + 0, 5w 7,j + 0, 5w 5,j = w 6,j+10, 9w 7,j + 0, 5w 8,j + 0, 5w 6,j = w 7,j+10, 9w 8,j + 0, 5w 9,j + 0, 5w 7,j = w 8,j+10, 9w 9,j + 0, 5w 8,j = w 9,j+1 − 0, 5w 10,jSyarat batas menetapkan bahwa w 0,j = w 10,j = 0. Lalu dinyatakan dalam bentuk operasimatrik⎡⎤⎡⎤ ⎡ ⎤0, 9 0, 5 0 0 0 0 0 0 0 w 1,j w 1,j+10, 5 0, 9 0, 5 0 0 0 0 0 0w 2,jw 2,j+10 0, 5 0, 9 0, 5 0 0 0 0 0w 3,jw 3,j+10 0 0, 5 0, 9 0, 5 0 0 0 0w 4,jw 4,j+10 0 0 0, 5 0, 9 0, 5 0 0 0w 5,j=w 5,j+10 0 0 0 0, 5 0, 9 0, 5 0 0w 6,jw 6,j+10 0 0 0 0 0, 5 0, 9 0, 5 0w 7,jw 7,j+1⎢⎥⎢⎥ ⎢ ⎥⎣ 0 0 0 0 0 0 0, 5 0, 9 0, 5 ⎦⎣w 8,j ⎦ ⎣ w 8,j+1 ⎦0 0 0 0 0 0 0 0, 5 0, 9 w 9,j w 9,j+1(8.25)Persamaan matriks di atas dapat direpresentasikan sebagaiAw (j) = w (j+1) (8.26)Proses perhitungan dimulai dari j = 0. Persamaan matrik menjadi⎡⎤⎡⎤ ⎡0, 9 0, 5 0 0 0 0 0 0 0 w 1,00, 5 0, 9 0, 5 0 0 0 0 0 0w 2,00 0, 5 0, 9 0, 5 0 0 0 0 0w 3,00 0 0, 5 0, 9 0, 5 0 0 0 0w 4,00 0 0 0, 5 0, 9 0, 5 0 0 0w 5,0=0 0 0 0 0, 5 0, 9 0, 5 0 0w 6,00 0 0 0 0 0, 5 0, 9 0, 5 0w 7,0⎢⎥⎢⎥ ⎢⎣ 0 0 0 0 0 0 0, 5 0, 9 0, 5 ⎦⎣w 8,0 ⎦ ⎣0 0 0 0 0 0 0 0, 5 0, 9 w 9,0⎤w 1,1w 2,1w 3,1w 4,1w 5,1w 6,1w 7,1⎥w 8,1 ⎦w 9,1


136 BAB 8. PERSAMAAN DIFERENSIAL PARSIAL NUMERIKNilai w 1,0 , w 2,0 , ..., w 9,0 sudah ditentukan oleh kondisi awal, yaituu(x,0) = sinπx, 0 ≤ x ≤ 1,Jika h = 0, 1, maka x 1 = h = 0, 1; x 2 = 2h = 0, 2; x 3 = 3h = 0, 3;....; x 9 = 9h = 0, 9.Lalu masing-masing dimasukkan ke sinπx untuk mendapatkan nilai u(x,0). Kemudian notasiu(x,0) diganti dengan notasi w yang selanjutnya dinyatakan sebagai berikut: w 1,0 = u(x 1 , 0) =u(0.1, 0) = sinπ(0.1) = 0, 3090. Dengan cara yang sama: w 2,0 = 0, 5878; w 3,0 = 0, 8090; w 4,0 =0, 9511; w 5,0 = 1, 0000; w 6,0 = 0, 9511; w 7,0 = 0, 8090; w 8,0 = 0, 5878; dan w 9,0 = 0, 3090. Makapersamaan matriks menjadi⎡⎤⎡⎤ ⎡ ⎤0, 9 0, 5 0 0 0 0 0 0 0 0, 3090 w 1,10, 5 0, 9 0, 5 0 0 0 0 0 00, 5878w 2,10 0, 5 0, 9 0, 5 0 0 0 0 00, 8090w 3,10 0 0, 5 0, 9 0, 5 0 0 0 00, 9511w 4,10 0 0 0, 5 0, 9 0, 5 0 0 01, 0000=w 5,10 0 0 0 0, 5 0, 9 0, 5 0 00, 9511w 6,10 0 0 0 0 0, 5 0, 9 0, 5 00, 8090w 7,1⎢⎥⎢⎥ ⎢ ⎥⎣ 0 0 0 0 0 0 0, 5 0, 9 0, 5 ⎦⎣0, 5878 ⎦ ⎣ w 8,1 ⎦0 0 0 0 0 0 0 0, 5 0, 9 0, 3090 w 9,1Ini hanya perkalian matrik biasa 2 . Hasil perkalian itu adalah: w 1,1 = 0, 3075; w 2,1 = 0, 5849;w 3,1 = 0, 8051; w 4,1 = 0, 9464; w 5,1 = 0, 9951; w 6,1 = 0, 9464; w 7,1 = 0, 8051; w 8,1 = 0, 5849; danw 9,1 = 0, 3075. Semua angka ini adalah nilai temperatur kawat di masing-masing mesh pointssetelah selang waktu 0, 0005 detik 3 .Selanjutnya, hasil ini diumpankan lagi ke persamaan matriks yang sama untuk mendapatkanw x,2⎡⎢⎣0, 9 0, 5 0 0 0 0 0 0 00, 5 0, 9 0, 5 0 0 0 0 0 00 0, 5 0, 9 0, 5 0 0 0 0 00 0 0, 5 0, 9 0, 5 0 0 0 00 0 0 0, 5 0, 9 0, 5 0 0 00 0 0 0 0, 5 0, 9 0, 5 0 00 0 0 0 0 0, 5 0, 9 0, 5 00 0 0 0 0 0 0, 5 0, 9 0, 50 0 0 0 0 0 0 0, 5 0, 9⎤⎡⎥⎢⎦⎣0, 30750, 58490, 80510, 94640, 99510, 94640, 80510, 58490, 3075⎤ ⎡=⎥ ⎢⎦ ⎣⎤w 1,2w 2,2w 3,2w 4,2w 5,2w 6,2w 7,2⎥w 8,2 ⎦w 9,2Perhitungan dengan cara seperti ini diulang-ulang sampai mencapai waktu maksimum. Jikawaktu maksimum adalah T = 0, 5 detik, berarti mesti dilakukan 1000 kali iterasi 4 . Untuk2 Topik tentang perkalian matrik sudah diulas pada Bab 13 karena step time k-nya sudah ditentukan sebesar 0, 00054 cara menghitung jumlah iterasi: T/k = 0, 5/0, 0005 = 1000


8.3. PDP PARABOLIK 137sampai 1000 kali, maka indeks j bergerak dari 1 sampai 1000. Dengan bantuan script Matlab,proses perhitungan menjadi sangat singkat.8.3.2.1 Script Forward-DifferenceScript matlab Forward-Difference untuk menyelesaikan contoh masalah ini, dimana h = 0, 1 dank = 0, 00051 clear all2 clc34 n=9;5 alpha=1.0;6 k=0.0005;7 h=0.1;8 lambda=(alpha^2)*k/(h^2);910 % Kondisi awal11 for i=1:n12 suhu(i)=sin(pi*i*0.1);13 end1415 %Mengcopy kondisi awal ke w16 for i=1:n17 w0(i,1)=suhu(i);18 end1920 A=[ (1-2*lambda) lambda 0 0 0 0 0 0 0;21 lambda (1-2*lambda) lambda 0 0 0 0 0 0;22 0 lambda (1-2*lambda) lambda 0 0 0 0 0 ;23 0 0 lambda (1-2*lambda) lambda 0 0 0 0;24 0 0 0 lambda (1-2*lambda) lambda 0 0 0;25 0 0 0 0 lambda (1-2*lambda) lambda 0 0;26 0 0 0 0 0 lambda (1-2*lambda) lambda 0 ;27 0 0 0 0 0 0 lambda (1-2*lambda) lambda ;28 0 0 0 0 0 0 0 lambda (1-2*lambda) ];2930 iterasi=1000;31 for k=1:iterasi32 disp(’perkalian matriks’)33 %======================================34 for i=1:n35 w(i,1)=0.0;36 end3738 for i=1:n39 for j=1:n40 w(i,1)=w(i,1)+A(i,j)*w0(j,1);41 end42 end43 %====================================44 w45 w0=w;46 end


138 BAB 8. PERSAMAAN DIFERENSIAL PARSIAL NUMERIKTabel 8.1 memperlihatkan hasil perhitungan yang diulang-ulang hingga 1000 kali. Tabel tersebutjuga menunjukkan hasil perbandingan antara pemilihan nilai interval k = 0, 0005 dank = 0, 01. Tabel ini menginformasikan satu hal penting, yaitu pada saat interval k = 0, 0005,forward-difference berhasil mencapai konvergensi yang sangat baik. Namun pada saat intervalk = 0.01, dengan jumlah iterasi hanya 50 kali untuk mencapai time maksimum 0, 5 detik, terlihatjelas hasil forward-difference tidak konvergen (Bandingkan kolom ke-4 dan kolom ke-6!),dan ini dianggap bermasalah. Masalah ini bisa diatasi dengan metode backward-difference.Tabel 8.1: Hasil simulasi distribusi panas bergantung waktu dalam 1-dimensi. Kolom ke-2 adalahsolusi analitik/exact, kolom ke-3 dan ke-5 adalah solusi numerik forward-difference. Kolom ke-4 danke-6 adalah selisih antara solusi analitik dan numerikw i,1000 w i,50x i u(x i , 0.5) k = 0, 0005 |u(x i , 0.5) − w i,1000 | k = 0, 01 |u(x i , 0.5) − w i,50 |0,0 0 0 00,1 0,00222241 0,00228652 6, 411 × 10 −5 8, 19876 × 10 7 8, 199 × 10 70,2 0,00422728 0,00434922 1, 219 × 10 −4 −1, 55719 × 10 8 1, 557 × 10 80,3 0,00581836 0,00598619 1, 678 × 10 −4 2, 13833 × 10 8 2, 138 × 10 80,4 0,00683989 0,00703719 1, 973 × 10 −4 −2, 50642 × 10 8 2, 506 × 10 80,5 0,00719188 0,00739934 2, 075 × 10 −4 2, 62685 × 10 8 2, 627 × 10 80,6 0,00683989 0,00703719 1, 973 × 10 −4 −2, 49015 × 10 8 2, 490 × 10 80,7 0,00581836 0,00598619 1, 678 × 10 −4 2, 11200 × 10 8 2, 112 × 10 80,8 0,00422728 0,00434922 1, 219 × 10 −4 −1, 53086 × 10 8 1, 531 × 10 80,9 0,00222241 0,00228652 6, 511 × 10 −5 8, 03604 × 10 7 8, 036 × 10 71,0 0 0 08.3.3 Metode Backward-differenceKalau kita ulang lagi pelajaran yang lalu tentang forward-difference, kita akan dapatkan formulaforward-difference adalah sebagai berikut (lihat persamaan (8.21))w i,j+1 − w i,jk− α 2w i+1,j − 2w i,j + w i−1,jh 2 = 0Sekarang, dengan sedikit modifikasi, formula backward-difference dinyatakan sebagaiw i,j − w i,j−1k− α 2w i+1,j − 2w i,j + w i−1,jh 2 = 0 (8.27)jika ditetapkanλ = α2 kh 2maka backward-difference disederhanakan menjadi(1 + 2λ) w i,j − λw i+1,j − λw i−1,j = w i,j−1 (8.28)


8.3. PDP PARABOLIK 139coba sejenak anda bandingkan dengan formula forward-difference dalam λ sebagaimana dinyatakanoleh persamaan (8.24)(1 − 2λ) w i,j + λw i+1,j + λw i−1,j = w i,j+1O.K., mari kita kembali ke contoh soal kita yang tadi, dimana ada perubahan nilai k yangsemula k = 0, 0005 menjadi k = 0, 01. Sementara α dan h nilainya tetap. Maka λ dapatdihitung dengan persamaan (8.23) kembaliλ = α2 kh 2 = 0, 10, 01 2 = 1Berdasarkan persamaan (8.28), sistem persamaan linear mengalami sedikit perubahan3w 1,j − 1w 2,j = w 1,j−1 + 1w 0,j3w 2,j − 1w 3,j − 1w 1,j3w 3,j − 1w 4,j − 1w 2,j3w 4,j − 1w 5,j − 1w 3,j3w 5,j − 1w 6,j − 1w 4,j3w 6,j − 1w 7,j − 1w 5,j3w 7,j − 1w 8,j − 1w 6,j3w 8,j − 1w 9,j − 1w 7,j= w 2,j−1= w 3,j−1= w 4,j−1= w 5,j−1= w 6,j−1= w 7,j−1= w 8,j−13w 9,j − 1w 8,j = w 9,j−1 + 1w 10,jSyarat batas masih sama, yaitu w 0,j = w 10,j = 0. Lalu jika dinyatakan dalam bentuk operasimatrik⎡⎤⎡⎤ ⎡ ⎤3 −1 0 0 0 0 0 0 0 w 1,j w 1,j−1−1 3 −1 0 0 0 0 0 0w 2,jw 2,j−10 −1 3 −1 0 0 0 0 0w 3,jw 3,j−10 0 −1 3 −1 0 0 0 0w 4,jw 4,j−10 0 0 −1 3 −1 0 0 0w 5,j=w 5,j−10 0 0 0 −1 3 −1 0 0w 6,jw 6,j−10 0 0 0 0 −1 3 −1 0w 7,jw 7,j−1⎢⎥⎢⎥ ⎢ ⎥⎣ 0 0 0 0 0 0 −1 3 −1 ⎦⎣w 8,j ⎦ ⎣ w 8,j−1 ⎦0 0 0 0 0 0 0 −1 3 w 9,j w 9,j−1Persamaan matriks di atas dapat direpresentasikan sebagaiAw (j) = w (j−1) (8.29)


140 BAB 8. PERSAMAAN DIFERENSIAL PARSIAL NUMERIKPerhitungan dimulai dari iterasi pertama, dimana j = 1⎡⎢⎣3 −1 0 0 0 0 0 0 0−1 3 −1 0 0 0 0 0 00 −1 3 −1 0 0 0 0 00 0 −1 3 −1 0 0 0 00 0 0 −1 3 −1 0 0 00 0 0 0 −1 3 −1 0 00 0 0 0 0 −1 3 −1 00 0 0 0 0 0 −1 3 −10 0 0 0 0 0 0 −1 3⎤⎡⎥⎢⎦⎣⎤ ⎡w 1,1w 2,1w 3,1w 4,1w 5,1=w 6,1w 7,1⎥ ⎢w 8,1 ⎦ ⎣w 9,1⎤w 1,0w 2,0w 3,0w 4,0w 5,0w 6,0w 7,0⎥w 8,0 ⎦w 9,0Dengan memasukan kondisi awal, ruas kanan menjadi⎡⎢⎣3 −1 0 0 0 0 0 0 0−1 3 −1 0 0 0 0 0 00 −1 3 −1 0 0 0 0 00 0 −1 3 −1 0 0 0 00 0 0 −1 3 −1 0 0 00 0 0 0 −1 3 −1 0 00 0 0 0 0 −1 3 −1 00 0 0 0 0 0 −1 3 −10 0 0 0 0 0 0 −1 3⎤ ⎡⎥ ⎢⎦ ⎣⎤ ⎡w 1,1w 2,1w 3,1w 4,1w 5,1=w 6,1w 7,1⎥ ⎢w 8,1 ⎦ ⎣w 9,10, 30900, 58780, 80900, 95111, 00000, 95110, 80900, 58780, 3090⎤⎥⎦Berbeda dengan operasi matrik forward difference, operasi matrik backward difference ini bukanperkalian matrik biasa. Operasi matrik tersebut akan dipecahkan oleh metode Eliminasi Gauss 5 .Untuk jumlah iterasi hingga j = 50, perhitungannya dilakukan dalam script Matlab.8.3.3.1 Script Backward-Difference dengan Eliminasi Gauss1 clear all2 clc34 n=9;5 alpha=1.0;6 k=0.01;7 h=0.1;8 lambda=(alpha^2)*k/(h^2);910 %Kondisi awal11 for i=1:n12 suhu(i)=sin(pi*i*0.1);13 end1415 %Mengcopy kondisi awal ke w16 for i=1:n5 Uraian tentang metode Eliminasi Gauss tersedia di Bab 2


8.3. PDP PARABOLIK 14117 w0(i,1)=suhu(i);18 end1920 AA=[ (1+2*lambda) -lambda 0 0 0 0 0 0 0;21 -lambda (1+2*lambda) -lambda 0 0 0 0 0 0;22 0 -lambda (1+2*lambda) -lambda 0 0 0 0 0 ;23 0 0 -lambda (1+2*lambda) -lambda 0 0 0 0;24 0 0 0 -lambda (1+2*lambda) -lambda 0 0 0;25 0 0 0 0 -lambda (1+2*lambda) -lambda 0 0;26 0 0 0 0 0 -lambda (1+2*lambda) -lambda 0 ;27 0 0 0 0 0 0 -lambda (1+2*lambda) -lambda ;28 0 0 0 0 0 0 0 -lambda (1+2*lambda) ];2930 iterasi=50;31 for i=1:iterasi32 %&&&&&& Proses Eliminasi Gauss &&&&&&&&&&&&&&&&&&&&&&&&&33 A=AA; %Matriks Backward Difference dicopy supaya fix3435 for i=1:n36 A(i,n+1)=w0(i,1);37 end3839 %---------Proses Triangularisasi-----------40 for j=1:(n-1)4142 %----mulai proses pivot---43 if (A(j,j)==0)44 for p=1:n+145 u=A(j,p);46 v=A(j+1,p);47 A(j+1,p)=u;48 A(j,p)=v;49 end50 end51 %----akhir proses pivot---52 jj=j+1;53 for i=jj:n54 m=A(i,j)/A(j,j);55 for k=1:(n+1)56 A(i,k)=A(i,k)-(m*A(j,k));57 end58 end59 end60 %-------------------------------------------6162 %------Proses Substitusi mundur-------------63 w(n,1)=A(n,n+1)/A(n,n);6465 for i=n-1:-1:166 S=0;67 for j=n:-1:i+168 S=S+A(i,j)*w(j,1);69 end70 w(i,1)=(A(i,n+1)-S)/A(i,i);71 end72 %&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&73 w0=w;74 end75 w


142 BAB 8. PERSAMAAN DIFERENSIAL PARSIAL NUMERIKHasilnya menunjukkan bahwa kinerja metode backward-difference lebih baik dibanding metodeforward-difference, ini ditunjukkan dari selisih yang relatif kecil antara solusi numerik dan solusianalitik, sebagaimana bisa terlihat dari kolom ke-4 pada tabel berikutTabel 8.2: Hasil simulasi distribusi panas bergantung waktu dalam 1-dimensi dengan metode backwarddifferencedimana k = 0,01x i u(x i , 0.5) w i,50 |u(x i , 0.5) − w i,50 |0,0 0 00,1 0,00222241 0,00289802 6, 756 × 10 −40,2 0,00422728 0,00551236 1, 285 × 10 −30,3 0,00581836 0,00758711 1, 769 × 10 −30,4 0,00683989 0,00891918 2, 079 × 10 −30,5 0,00719188 0,00937818 2, 186 × 10 −30,6 0,00683989 0,00891918 2, 079 × 10 −30,7 0,00581836 0,00758711 1, 769 × 10 −30,8 0,00422728 0,00551236 1, 285 × 10 −30,9 0,00222241 0,00289802 6, 756 × 10 −41,0 0 08.3.4 Metode Crank-NicolsonMetode ini dimunculkan disini karena metode ini memiliki performa yang lebih unggul daridua metode sebelumnya. Namun begitu pondasi metode Crank-Nicolson terdiri atas metodeForward-Difference dan metode Backward-Difference. Mari kita ulang lagi pelajaran yang sudahkita lewati. Formula Forward-Difference adalahw i,j+1 − w i,jk− α 2w i+1,j − 2w i,j + w i−1,jh 2 = 0sedangkan Backward-Difference adalahw i,j − w i,j−1k− α 2w i+1,j − 2w i,j + w i−1,jh 2 = 0Ketika Backward-Difference berada pada iterasi ke j + 1, makaw i,j+1 − w i,jk− α 2w i+1,j+1 − 2w i,j+1 + w i−1,j+1h 2 = 0 (8.30)Jika formula ini dijumlahkan dengan formula forward-difference, kemudian hasilnya dibagi 2,maka akan diperolehw i,j+1 − w i,jk− α22[wi+1,j − 2w i,j + w i−1,jh 2+ w i+1,j+1 − 2w i,j+1 + w i−1,j+1h 2 ]= 0 (8.31)


8.3. PDP PARABOLIK 143inilah formula Crank-Nicolson. Adapun λ tetap dinyatakan sebagaimakaλ = α2 kh 2w i,j+1 − w i,j − λ 2 [w i+1,j − 2w i,j + w i−1,j + w i+1,j+1 − 2w i,j+1 + w i−1,j+1 ] = 0w i,j+1 − w i,j − λ 2 w i+1,j + λw i,j − λ 2 w i−1,j − λ 2 w i+1,j+1 + λw i,j+1 − λ 2 w i−1,j+1 = 0− λ 2 w i−1,j+1 + w i,j+1 + λw i,j+1 − λ 2 w i+1,j+1 − λ 2 w i−1,j − w i,j + λw i,j − λ 2 w i+1,j = 0dan akhirnya− λ 2 w i−1,j+1 + w i,j+1 + λw i,j+1 − λ 2 w i+1,j+1 = λ 2 w i−1,j + w i,j − λw i,j + λ 2 w i+1,j− λ 2 w i−1,j+1 + (1 + λ)w i,j+1 − λ 2 w i+1,j+1 = λ 2 w i−1,j + (1 − λ)w i,j + λ 2 w i+1,j (8.32)Dalam bentuk persamaan matrik dinyatakan sebagaiAw (j+1) = Bw (j) , untuk j = 0, 1, 2, ... (8.33)Dengan menggunakan contoh soal yang sama, yang sebelumnya telah diselesaikan denganmetode Forward-Difference dan Backward-Difference, maka penyelesaian soal tersebut denganmetode Crank-Nicolson juga akan didemonstrasikan di sini. Dengan nilai k = 0, 01; h = 0, 1;λ = 1 dan berdasarkan persamaan (8.32) diperoleh−0, 5w i−1,j+1 + 2w i,j+1 − 0, 5w i+1,j+1 = 0, 5w i−1,j + 0w i,j + 0, 5w i+1,jScript Matlab untuk menyelesaikan persamaan ini adalah1 clear all2 clc34 n=9;5 iterasi=50;6 alpha=1.0;7 k=0.01;8 h=0.1;109 lambda=(alpha^2)*k/(h^2);11 %Kondisi awal12 for i=1:n13 suhu(i)=sin(pi*i*0.1);14 end1516 %Mengcopy kondisi awal ke w17 for i=1:n18 w0(i,1)=suhu(i);


144 BAB 8. PERSAMAAN DIFERENSIAL PARSIAL NUMERIK19 end2021 AA=[(1+lambda) -lambda/2 0 0 0 0 0 0 0;22 -lambda/2 (1+lambda) -lambda/2 0 0 0 0 0 0;23 0 -lambda/2 (1+lambda) -lambda/2 0 0 0 0 0;24 0 0 -lambda/2 (1+lambda) -lambda/2 0 0 0 0;25 0 0 0 -lambda/2 (1+lambda) -lambda/2 0 0 0;26 0 0 0 0 -lambda/2 (1+lambda) -lambda/2 0 0;27 0 0 0 0 0 -lambda/2 (1+lambda) -lambda/2 0;28 0 0 0 0 0 0 -lambda/2 (1+lambda) -lambda/2;29 0 0 0 0 0 0 0 -lambda/2 (1+lambda)];3031 B=[(1-lambda) lambda/2 0 0 0 0 0 0 0;32 lambda/2 (1-lambda) lambda/2 0 0 0 0 0 0;33 0 lambda/2 (1-lambda) lambda/2 0 0 0 0 0;34 0 0 lambda/2 (1-lambda) lambda/2 0 0 0 0;35 0 0 0 lambda/2 (1-lambda) lambda/2 0 0 0;36 0 0 0 0 lambda/2 (1-lambda) lambda/2 0 0;37 0 0 0 0 0 lambda/2 (1-lambda) lambda/2 0;38 0 0 0 0 0 0 lambda/2 (1-lambda) lambda/2;39 0 0 0 0 0 0 0 lambda/2 (1-lambda)];4041 iterasi=50;42 for iter=1:iterasi4344 %===perkalian matriks===================45 for i=1:n46 b(i,1)=0.0;47 end48 for i=1:n49 for j=1:n50 b(i,1)=b(i,1)+B(i,j)*w0(j,1);51 end52 end53 %======================================5455 %&&&&&& Proses Eliminasi Gauss &&&&&&&&&&&&&&&&&&&&&&&&&56 A=AA; %Matriks Backward Difference dicopy supaya fix5758 for i=1:n59 A(i,n+1)=b(i,1);60 end6162 %---------Proses Triangularisasi-----------63 for j=1:(n-1)6465 %----mulai proses pivot---66 if (A(j,j)==0)67 for p=1:n+168 u=A(j,p);69 v=A(j+1,p);70 A(j+1,p)=u;71 A(j,p)=v;72 end73 end74 %----akhir proses pivot---75 jj=j+1;76 for i=jj:n77 m=A(i,j)/A(j,j);


8.4. PDP HIPERBOLIK 14578 for k=1:(n+1)79 A(i,k)=A(i,k)-(m*A(j,k));80 end81 end82 end83 %-------------------------------------------8485 %------Proses Substitusi mundur-------------86 w(n,1)=A(n,n+1)/A(n,n);8788 for i=n-1:-1:189 S=0;90 for j=n:-1:i+191 S=S+A(i,j)*w(j,1);92 end93 w(i,1)=(A(i,n+1)-S)/A(i,i);94 end95 %&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&96 w0=w;97 end98 iter99 wTabel 8.3: Hasil simulasi distribusi panas bergantung waktu (t) dalam 1-dimensi denganmetode backward-difference dan Crank-NicolsonBD CN Backward-Diff Crank-Nicolsonx i u(x i , 0.5) w i,50 w i,50 |u(x i , 0.5) − w i,50 | |u(x i , 0.5) − w i,50 |0,0 0 0 00,1 0,00222241 0,00289802 0,00230512 6, 756 × 10 −4 8, 271 × 10 −50,2 0,00422728 0,00551236 0,00438461 1, 285 × 10 −3 1, 573 × 10 −40,3 0,00581836 0,00758711 0,00603489 1, 769 × 10 −3 2, 165 × 10 −40,4 0,00683989 0,00891918 0,00709444 2, 079 × 10 −3 2, 546 × 10 −40,5 0,00719188 0,00937818 0,00745954 2, 186 × 10 −3 2, 677 × 10 −40,6 0,00683989 0,00891918 0,00709444 2, 079 × 10 −3 2, 546 × 10 −40,7 0,00581836 0,00758711 0,00603489 1, 769 × 10 −3 2, 165 × 10 −40,8 0,00422728 0,00551236 0,00438461 1, 285 × 10 −3 1, 573 × 10 −40,9 0,00222241 0,00289802 0,00230512 6, 756 × 10 −4 8, 271 × 10 −51,0 0 0 0Terlihat disini bahwa orde kesalahan metode Crank-Nicolson (kolom ke-6) sedikit lebih kecildibandingkan metode Backward-Difference (kolom ke-5). Ini menunjukkan tingkat akurasiCrank-Nicolson lebih tinggi dibandingkan Backward-Difference.8.4 PDP HiperbolikPada bagian ini, kita akan membahas solusi numerik untuk persamaan gelombang yang merupakansalah satu contoh PDP hiperbolik. Persamaan gelombang dinyatakan dalam persamaandiferensial sebagai berikut∂ 2 u∂t 2 (x, t) − uα2∂2 (x, t) = 0, 0 < x < l, t > 0 (8.34)∂x2


146 BAB 8. PERSAMAAN DIFERENSIAL PARSIAL NUMERIKdengan suatu kondisiu (0, t) = u (l, t) = 0, untuk t > 0,u (x,0) = f (x), dan ∂u (x,0) = g (x) , untuk 0 ≤ x ≤ l∂tdimana α adalah konstanta. Kita tentukan ukuran time-step sebesar k, jarak tiap mesh pointadalah h.x i = ih dan t j = jkdengan i = 0, 1, ..., m dan j = 0, 1, .... Pada bagian interior, posisi mesh points ditentukan olehkoordinat (x i , t j ), karenanya persamaan gelombang ditulis menjadi∂ 2 u∂t 2 (x i, t j ) − α 2∂2 u∂x 2 (x i, t j ) = 0 (8.35)Formula centered-difference digunakan sebagai pendekatan numerik persamaan gelombang padatiap-tiap suku. Untuk turunan kedua terhadap tdan turunan kedua terhadap x∂ 2 u∂t 2 (x i, t j ) = u (x i, t j+1 ) − 2u (x i , t j ) + u (x i , t j−1 )k 2∂ 2 u∂x 2 (x i, t j ) = u (x i+1, t j ) − 2u (x i , t j ) + u (x i−1 , t j )h 2Dengan mensubtitusikan kedua persamaan di atas kedalam persamaan (8.35)u (x i , t j+1 ) − 2u (x i , t j ) + u (x i , t j−1 )k 2 − α 2u(x i+1, t j ) − 2u (x i , t j ) + u (x i−1 , t j )h 2 = 0maka dapat diturunkan formula finite-difference untuk PDP hiperbolik sebagai berikutw i,j+1 − 2w i,j + w i,j−1k 2− α 2w i+1,j − 2w i,j + w i−1,jh 2 = 0 (8.36)Jika λ = αk/h, maka persamaan ini dapat ditulis kembaliw i,j+1 − 2w i,j + w i,j−1 − λ 2 w i+1,j + 2λ 2 w i,j − λ 2 w i−1,j = 0sehingga w i,j+1 selaku solusi numerik dapat dihitung dengan merubah sedikit suku-suku padaformula di atasw i,j+1 = 2 ( 1 − λ 2) w i,j + λ 2 (w i+1,j + w i−1,j ) − w i,j−1 (8.37)dengan i = 1, 2, ..., m − 1 dan j = 1, 2, .... Kondisi syarat batas ditentukan sebagai berikutw 0,j = w m,j = 0, untuk j = 1, 2, 3, ... (8.38)


8.4. PDP HIPERBOLIK 147sementara kondisi awal dinyatakanw i,0 = f (x i ) , untuk i = 1, 2, ..., m − 1 (8.39)Berbeda dengan PDP eliptik dan PDP parabolik, pada PDP hiperbolik, untuk menghitungmesh point (j + 1), diperlukan informasi mesh point (j) dan (j − 1). Hal ini sedikit menimbulkanmasalah pada langkah/iterasi pertama karena nilai untuk j = 0 sudah ditentukan olehpersamaan (8.39) sementara nilai untuk j = 1 untuk menghitung w i,2 , harus diperoleh lewatkondisi kecepatan awal∂u(x,0) = g (x), 0 ≤ x ≤ l (8.40)∂tSalah satu cara pemecahan dengan pendekatan forward-difference adalah∂u∂t (x i, 0) = u (x i, t 1 ) − u (x i , 0)k(8.41)u (x i , t 1 ) = u (x i , 0) + k ∂u∂t (x i, 0)= u (x i , 0) + kg (x i )konsekuensinyaw i,1 = w i,0 + kg(x i ), untuk i = 1, 2, ..., m − 1 (8.42)8.4.1 ContohTentukan solusi dari persamaan gelombang berikut ini∂ 2 u∂t 2 − ∂2 u= 0, 0 < x < 1, 0 < t∂x2 dengan syarat batasu (0, t) = u (l, t) = 0, untuk 0 < t,dan kondisi mula-mulau (x,0) = sinπx, 0 ≤ x ≤ 1∂u∂t = 0, 0 ≤ x ≤ 1menggunakan metode finite-difference, dengan m = 4, N = 4, dan T = 1, 0. Bandingkan hasilyang diperoleh dengan solusi analitik u(x, t) = cos πt sin πx.Jika persamaan gelombang pada contoh soal ini dibandingkan dengan persamaan (8.34),maka diketahui nilai α = 1 dan l = 1. Dari sini, nilai h dapat dihitung, yaitu h = l/m = 1/4 =0, 25. Sementara nilai k diperoleh dari k = T/N = 1, 0/4 = 0, 25. Dengan diketahuinya nilai α,h, dan k, maka λ dapat dihitung, yaitu λ = αk/h = 1. Selanjutnya, nilai λ ini dimasukkan ke


148 BAB 8. PERSAMAAN DIFERENSIAL PARSIAL NUMERIKpersamaan (8.37)w i,j+1w i,j+1w i,j+1= 2 ( 1 − λ 2) w i,j + λ 2 (w i+1,j + w i−1,j ) − w i,j−1= 2 ( 1 − 1 2) w i,j + 1 2 (w i+1,j + w i−1,j ) − w i,j−1= 0w i,j + (w i+1,j + w i−1,j ) − w i,j−1dimana i bergerak dari 0 sampai m, atau i = 0, 1, 2, 3, 4. Sementara j, bergerak dari 0 sampaiT/k = 4, atau j = 0, 1, 2, 3, 4.Catatan kuliah baru sampai sini!!8.5 Latihan1. Carilah solusi persamaan differensial elliptik berikut ini dengan pendekatan numerikmenggunakan metode Finite Differencegunakan h = 0, 2 dan k = 0, 1∂ 2 u∂x 2 + ∂2 u∂y 2 = (x2 + y 2 )e xy , 0 < x < 2, 0 < y < 1;u(0, y) = 1, u(2, y) = e 2y , 0 ≤ y ≤ 1u(x,0) = 1, u(x,1) = e x , 0 ≤ x ≤ 2Bandingkan hasilnya dengan solusi analitik u(x, t) = e xy .2. Carilah solusi persamaan differensial parabolik berikut ini dengan pendekatan numerikmenggunakan metode Finite Difference Backward-Difference∂u∂t − 1 ∂ 2 u= 0, 0 < x < 1, 0 < t;16 ∂x2 u(0, t) = u(1, t) = 0, 0 < t;u(x,0) = 2 sin 2πx, 0 ≤ x ≤ 1;gunakan m = 3, T = 0, 1, dan N = 2. Bandingkan hasilnya dengan solusi analitiku(x, t) = 2e −(π2 /4)t sin 2πxu (x i , t 1 ) = u (x i , 0) + k ∂u∂t (x i, 0) + k2 ∂ 2 u2 ∂t 2 (x i, 0) + k3 ∂ 3 u6 ∂t 3 (x i, ˆµ i ) (8.43)∂ 2 u∂t 2 (x i, 0) = α 2∂2 u∂x 2 (x i, 0) = α 2 dfdx 2 (x i) = α 2 f” (x i ) (8.44)


8.5. LATIHAN 149u (x i , t 1 ) = u (x i , 0) + kg (x i ) + α2 k 2w i1 = w i0 + kg (x i ) + α2 k 22 f” (x i) + k36∂ 3 u∂t 3 (x i, ˆµ i ) (8.45)2 f” (x i) (8.46)f” (x i ) = f (x i+1) − 2f (x i ) + f (x i−1 )h 2− h2 )f(4)(˜ξ12(8.47)u (x i , t 1 ) = u (x i , 0) + kg (x i ) + k2 α 22h 2 [f (xi+1 ) − 2f (x i ) + f (x i−1 )h 2] + O ( k 3 + h 2 k 2) (8.48)u (x i , t 1 ) = u (x i , 0) + kg (x i ) + λ22[f (xi+1 ) − 2f (x i ) + f (x i−1 )h 2] + O ( k 3 + h 2 k 2) (8.49)= ( 1 − λ 2) f (x i ) + λ22 f (x i+1) + λ22 f (x i−1) + kg (x i ) + O ( k 3 + h 2 k 2) (8.50)w i,1 = ( 1 − λ 2) f (x i ) + λ22 f (x i+1) + λ22 f (x i−1) + kg (x i ) (8.51)


Bab 9Integral Numerik✍ Objektif :⊲ Mengenalkan metode Trapezoida.⊲ Mengenalkan metode Simpson.⊲ Mengenalkan metode Composite-Simpson.⊲ Mengenalkan metode Adaptive Quardrature⊲ Mengenalkan metode Gaussian Quadrature9.1 Metode TrapezoidaSuatu persamaan integral∫ baf(x)dx (9.1)disebut numerical quadrature. Pendekatan numerik untuk menyelesaikan integral tersebutadalahn∑a i f(x i ) (9.2)i=0Metode pendekatan yang paling dasar dalam memecahkan masalah integral secara numerikadalah metode Trapezoida∫ baf(x)dx = h 2 [f(x 0) + f(x 1 )] − h312 f ′′ (ξ) (9.3)dimana x 0 = a, x 1 = b dan h = b − a. Karena bagian error pada Trapezoida adalah f ′′ , makapendekatan Trapezoida bekerja efektif pada fungsi-fungsi yang turunan kedua-nya bernilainol.151


152 BAB 9. INTEGRAL NUMERIKf(x)x =a 0 x =b 1Gambar 9.1: Metode Trapezoida. Gambar sebelah kiri menunjukkan kurva fungsi f(x) dengan batasbawah integral adalah a dan batas atas b. Gambar sebelah kanan menunjukan cara metode Trapesoidamenghitung luas area integrasi, dimana luas area adalah sama dengan luas trapesium di bawah kurvaf(x) dalam batas-batas a dan bf(x)x =a 0 x =b 1Gambar 9.2: Metode Simpson. Gambar sebelah kiri menunjukkan kurva fungsi f(x) dengan batasbawah integral adalah a dan batas atas b. Gambar sebelah kanan menunjukan cara metode Simpsonmenghitung luas area integrasi, dimana area integrasi di bawah kurva f(x) dibagi 2 dalam batas-batasa dan b9.2 Metode SimpsonMetode pendekatan yang lebih baik dalam integral numerik adalah metode Simpson∫ baf(x)dx = h 3 [f(x 0) + 4f(x 1 ) + f(x 2 )] − h590 f4 (ξ) (9.4)dengan x 0 = a, x 2 = b, dan x 1 = a + h dimana h = (b − a)/2.ContohMetode Trapezoida untuk fungsi f pada interval [0,2] adalah∫ 2dimana x 0 = 0, x 1 = 2 dan h = 2 − 0 = 2,0f(x)dx ≈ f(0) + f(2)sedangkan metode Simpson untuk fungsi f pada interval [0,2] adalah∫ 20f(x)dx ≈ 1 [f(0) + 4f(1) + f(2)]3


9.3. METODE COMPOSITE-SIMPSON 153dengan x 0 = 0, x 2 = 2, dan x 1 = a + h = 1 dimana h = (b − a)/2 = 1.Tabel berikut ini memperlihatkan evaluasi integral numerik terhadap beberapa fungsi dalaminterval [0,2] beserta solusi exact-nya. Jelas terlihat, metode Simpson lebih baik dibandingTrapezoida.f(x) x 2 x 4 1/(x + 1)√1 + x 2 sinx e xNilai exact 2,667 6,400 1,099 2,958 1,416 6,389Trapezoida 4,000 16,000 1,333 3,326 0,909 8,389Simpson 2,667 6,667 1,111 2,964 1,425 6,421Kalau diamati lebih teliti, akan kita dapatkan bahwa interval [0,2] telah dibagi 2 pada metodeSimpson, sementara pada metode Trapesoida tidak dibagi sama sekali. Sebenarnya denganmembagi interval lebih kecil lagi, maka error-nya akan semakin kecil. Misalnya, banyaknyapembagian interval dinyatakan dengan nketika n = 1: Trapesioda∫ x1x 0f(x)dx = h 2 [f(x 0) + f(x 1 )] − h312 f ′′ (ξ) (9.5)ketika n = 2: Simpson∫ x2x 0f(x)dx = h 3 [f(x 0) + 4f(x 1 ) + f(x 2 )] − h590 f4 (ξ) (9.6)ketika n = 3: Simpson tiga-per-delapan∫ x3x 0f(x)dx = 3h 8 [f(x 0) + 3f(x 1 ) + 3f(x 2 ) + f(x 3 )] − 3h580 f4 (ξ) (9.7)ketika n = 4:∫ x4x 0f(x)dx = 2h45 [7f(x 0) + 32f(x 1 ) + 12f(x 2 ) + 32f(x 3 ) + 7f(x 4 )] − 8h7945 f6 (ξ) (9.8)Keempat bentuk persamaan integral numerik di atas dikenal dengan closed Newton-Cotesformulas. Keterbatasan metode Newton-Cotes terlihat dari jumlah pembagian interval. Diatas tadi pembagian interval baru sampai pada n = 4. Bagaimana bila interval evaluasinyadipersempit supaya solusi numeriknya lebih mendekati solusi exact? Atau dengan kata lainn > 4.9.3 Metode Composite-SimpsonPersamaan (9.8) terlihat lebih rumit dibandingkan persamaan-persamaan sebelumnya. Bisakahanda bayangkan bentuk formulasi untuk n = 5 atau n = 6 dan seterusnya? Pasti akan lebihkompleks dibandingkan persamaan (9.8).


154 BAB 9. INTEGRAL NUMERIKf(x)hx0=ax 1x 2x 3x 4x 5x 6x 7x =bGambar 9.3: Metode Composite Simpson. Kurva fungsi f(x) dengan batas bawah integral adalah adan batas atas b. Luas area integrasi dipecah menjadi 8 area kecil dengan lebar masing-masing adalahh.nMetode Composite Simpson menawarkan cara mudah menghitung intergal numerik ketikanilai n > 4. Perhatikan contoh berikut, tentukan solusi numerik dari ∫ 40 ex dx. Metode Simpsondengan h = 2 (atau interval evaluasi integral dibagi 2 , n = 2) memberikan hasil∫ 40e x dx ≈ 2 3(e 0 + 4e 2 + e 4) = 56, 76958Padahal solusi exact dari integral tersebut adalah e 4 − e 0 = 53, 59815, artinya terdapat errorsebesar 3,17143 yang dinilai masih terlampau besar untuk ditolerir. Bandingkan denganmetode yang sama namun dengan h = 1 (atau interval evaluasi integral dibagi 4 , n = 4)∫ 40e x dx =∫ 20e x dx +∫ 42e x dx≈ 1 (e 0 + 4e + e 2) + 1 (e 2 + 4e 3 + e 4)33= 1 (e 0 + 4e + 2e 2 + 4e 3 + e 4)3= 53, 86385Hasil ini memperlihatkan error yang makin kecil, yaitu menjadi 0,26570. Jadi dengan memperkecilh, error menjadi semakin kecil dan itu artinya solusi integral numerik semakin mendekatisolusi exact. Sekarang kita coba kecilkan lagi nilai h menjadi h = 1 2(atau interval evaluasi integraldibagi 8 , n = 8),∫ 40e x dx =∫ 10e x dx +∫ 21e x dx +∫ 32e x dx +∫ 43e x dx≈ 1 ( )e 0 + 4e 1/2 + e + 1 (e + 4e 3/2 + e 2) +661(e 2 + 4e 5/2 + e 3) + 1 (e 3 + 4e 7/2 + e 4)66= 1 (e 0 + 4e 1/2 + 2e + 4e 3/2 + 2e 2 + 4e 5/2 + 2e 3 + 4e 7/2 + e 4)6= 53, 61622


9.4. ADAPTIVE QUARDRATURE 155dan seperti yang sudah kita duga, error-nya semakin kecil menjadi 0,01807.Prosedur ini dapat digeneralisir menjadi suatu formula sebagai berikut∫ baf(x)dx ==n/2 ∫ x2j∑j=1n/2∑j=1x 2j−2f(x)dx{ }h3 [f(x 2j−2) + 4f(x 2j−1 ) + f(x 2j )] − h590 f(4) (ξ j )(9.9)dimana h = (b−a)/n dan x j = a+jh, untuk j = 1, ..., n/2, dengan x 0 = a dan x n = b. Formulaini dapat direduksi menjadi∫ ba⎡f(x)dx = h ⎣f(x 0 ) + 23(n/2)−1∑j=1⎤n/2∑f(x 2j ) + 4 f(x 2j−1 ) + f(x n ) ⎦ − h5n/2∑f (4) (ξ j ) (9.10)90j=1Formula ini dikenal sebagai metode Composite Simpson.j=19.4 Adaptive QuardratureMetode composite mensyaratkan luas area integrasi dibagi menjadi sejumlah region denganjarak interval yang seragam yaitu sebesar nilai h. Akibatnya, bila metode composite diterapkanpada fungsi yang memiliki variasi yang tinggi dan rendah sekaligus, maka interval h yang kecilmenjadi kurang efektif, sementara interval h yang besar mengundang error yang besar pula.Metode Adaptive Quadrature muncul untuk mendapatkan langkah yang paling efektif dimananilai interval h tidak dibuat seragam, melainkan mampu beradaptasi sesuai dengan tingkatvariasi kurva fungsinya.Misalnya kita bermaksud mencari solusi numerik dari integral ∫ baf(x)dx dengan toleransiǫ > 0. Sebagai langkah awal adalah menerapkan metode Simpson dimana step size h = (b −a)/2dengan∫ bLangkah berikutnya adalah men∫ baf(x)dx = h 6( h−2af(x)dx = S(a, b) − h590 f(4) (µ) (9.11)S(a, b) = h [f(a) + 4f(a + h) + f(b)]3[ (f(a) + 4f a + h )(+ 2f (a + h) + 4f a + 3h ) ]+ f(b)22) 4(b − a)180 f(4) (˜µ) (9.12)


156 BAB 9. INTEGRAL NUMERIK9.5 Gaussian QuadratureSuatu integral dapat ditransformasi kedalam bentuk Gaussian quadrature melalui formulasiberikut∫ baf(x)dx =∫ 1−1dimana perubahan variabel memenuhi( ) (b − a)t + (b + a) (b − a)fdt (9.13)2 2t = 2x − a − bb − a⇔ x = 1 [(b − a)t + a + b] (9.14)2Berikut adalah table polinomial Legendre untuk penyelesaian Gaussian quadratureTabel 9.1: Polinomial Legendre untuk n=2,3,4 dan 5n Akar r n,i Koefisien c n,i2 0,5773502692 1,0000000000-0,5773502692 1,00000000003 0,7745966692 0,55555555560,0000000000 0,8888888889-0,7745966692 0,55555555564 0,8611363116 0,34785484510,3399810436 0,6521451549-0,3399810436 0,6521451549-0,8611363116 0,34785484515 0,9061798459 0,23692688500,5384693101 0,47862867050,0000000000 0,5688888889-0,5384693101 0,4786286705-0,9061798459 0,23692688509.5.1 ContohSelesaikan integrasi berikut ini∫ 1,5(Solusi exact integral diatas adalah: 0.1093643)jawab:1e −x2 dx (9.15)Pertama, integral tersebut ditransformasikan kedalam Gaussian quadrature melalui persamaan(9.13)∫ 1,51e −x2 dx = 1 4∫ 1−1e −(t+5)216 dt (9.16)Kedua, Gaussian quadrature dihitung menggunakan konstanta-konstanta yang tercantum padatabel polinomial Legendre. Untuk n = 2∫ 1,51e −x2 dx ≈ 1 4[e (−(0,5773502692+5)2 /16) + e (−(−0,5773502692+5)2 /16) ] = 0, 1094003


9.5. GAUSSIAN QUADRATURE 157Untuk n = 3∫ 1,51e −x2 dx ≈ 1 4 [(0, 5555555556)e(−(0,7745966692+5)2 /16) + (0, 8888888889)e (−(5)2 /16)+ (0, 5555555556)e (−(−0,7745966692+5)2 /16) ] = 0, 10936429.5.2 LatihanSelesaikan integrasi berikut iniSelesaikan integrasi berikut ini∫ 0,350∫ 3,532x 2 − 4 dxx√x 2 − 4 dx


158 BAB 9. INTEGRAL NUMERIKLatihan1. Hitunglah integral-integral berikut ini dengan metode Composite Simpson!a.b.c.d.e.f.∫ 21∫ 20∫ 31∫ 2−2∫ 3π/80∫ 53xlnxdx, n = 42x 2 + 4 dx, n = 6xx 2 + 4 dx, n = 8x 3 e x dx, n = 4tan xdx, n = 81√x 2 − 4 dx, n = 82. Tentukan nilai n dan h untuk mengevaluasi∫ 20e 2x sin 3xdxdengan metode Composite Simpson, bila error yang ditolerir harus lebih kecil dari 10 −4 .3. Dalam durasi 84 detik, kecepatan sebuah mobil balap formula 1 yang sedang melaju di arenagrandprix dicatat dalam selang interval 6 detik:time(dt) 0 6 12 18 24 30 36 42 48 54 60 66 72 78 84speed(ft/dt) 124 134 148 156 147 133 121 109 99 85 78 89 104 116 123Gunakan metode integral numerik untuk menghitung panjang lintasan yang telah dilalui mobiltersebut selama pencatatan waktu di atas!


Bab 10Metode Newton✍ Objektif :⊲ Mengenalkan matrik dan jenis-jenis matrik.⊲ Mengenalkan operasi penjumlahan dan perkalian matrik.⊲ Mendeklarasikan elemen-elemen matrik ke dalam memori komputer.⊲ Membuat script operasi matrik.10.1 PenyederhanaanMetode Newton sangat populer dan powerfull untuk mencari akar suatu fungsi yang kontinyu.Ada banyak jalan untuk memperkenalkan metode ini. Salah satunya bisa didahuluimulai dari deret Taylor atau polinomial Taylor. Suatu fungsi yang kontinyu dapat dinyatakandalam deret Taylor sebagai berikutf(x) = f(¯x) + (x − ¯x)f ′ (¯x) +(x − ¯x)2f ′′ (ξ(x))20 = f(¯x) + (p − ¯x)f ′ (¯x) +(p − ¯x)2f ′′ (ξ(p))20 = f(¯x) + (p − ¯x)f ′ (¯x)p − ¯x = − f(x)f ′ (¯x)p ≈ ¯x − f(x)f ′ (¯x)p n = p n−1 − f(p n−1)f ′ (p n−1 ), n ≥ 1159


160 BAB 10. METODE NEWTONGambar 10.1: Metode NewtonDemikianlah catatan singkat dari saya tentang metode Finite-Difference dengan ekstrapolasiRichardson untuk problem linear. Saya cukupkan sementara sampai disini. Insya Allah akansaya sambung dengan problem non-linear dan konsep ekstrapolasi. Kalau ada yang maudidiskusikan, silakan hubungi saya melalui email: supri92@gmail.com.


Bab 11Metode Monte Carlo✍ Objektif :⊲ Mengenalkan matrik dan jenis-jenis matrik.⊲ Mengenalkan operasi penjumlahan dan perkalian matrik.⊲ Mendeklarasikan elemen-elemen matrik ke dalam memori komputer.⊲ Membuat script operasi matrik.11.1 PenyederhanaanKita awali pembahasan metode Monte Carlo dengan mengetengahkan contoh yang sangatterkenal yaitu menghitung luas suatu lingkaran. Fugure 1 memperlihatkan lingkaran denganradius r = 1 berada di dalam kotak bujursangkar. Luas lingkaran adalah πr 2 = π(1) 2 = πsementara luas bujursangkar adalah (2) 2 = 4. Rasio antara luas lingkaran dan luas bola adalahρ =luas lingkaranluas bujursangkar = π 4= 0, 7853981633974483 (11.1)Jadi, dengan mengetahui nilai ρ, maka kita bisa menghitung luas lingkaran dengan caraluas lingkaran = ρ × luas bujursangkar (11.2)Bayangkan anda punya satu set permainan dart. Anda lemparkan sejumlah dart ke arahlingkaran tadi. Misalnya, total dart yang menancap di papan dart ada 1024 buah. Sebanyak812 dart berada di dalam lingkaran, dan yang lainnya di luar lingkaran. Rasio antara keduanyaρ =dart di dalam lingkarantotal dart di dalam bujursangkar = 812 = 0, 79296875 (11.3)1024161


162 BAB 11. METODE MONTE CARLOGambar 11.1: Lingkaran dan bujursangkarGambar 11.2: Dart yang menancap pada bidang lingkaran dan bujursangkarDengan pendekatan ke persamaan (11.2) maka luas lingkaran adalahluas lingkaran = ρ × luas bujursangkar= 0, 79296875 × 4= 3, 171875Apakah angka ini make sense? Mungkin anda masih ragu. Sekarang mari kita coba hitung nilaiπ dengan mengacu pada rumus di atas. Kita sepakati saja bahwa dart yang berada di dalamlingkaran mesti memenuhi x 2 i + y2 i ≤ 1. Dalam perhitungan, semua dart diganti dengan bilanganacak (random number). Dari 1000 dart, yang masuk lingkaran ada 787 buah, sehingga,mengacu persamaan (11.3)ρ = 787 = 0, 7871000


11.1. PENYEDERHANAAN 163Gambar 11.3: Dart yang menancap pada bidang 1/4 lingkaran dan bujursangkarmaka berdasarkan persamaan (11.1)π = ρ × 4 = 0, 787 × 4 = 3, 148Lumayan akurat bukan? Semakin banyak jumlah dart, semakin akurat nilai π yang anda peroleh.Sekarang mari kita kembangkan metode Monte Carlo ini untuk menghitung luas suatu areayang terletak di bawah garis kurva suatu fungsi f(x). Atau sebut saja menghitung integralsuatu fungsi f(x) yang dievaluasi antara batas a dan b. Luas kotak R yang melingkupi luasbidang integral A adalahR = {(x, y) : a ≤ x ≤ b dan 0 ≤ y ≤ d} (11.4)dimanad = maksimum f(x) , a ≤ x ≤ b (11.5)


Bab 12Inversi✍ Objektif :⊲ Mengenalkan matrik dan jenis-jenis matrik.⊲ Mengenalkan operasi penjumlahan dan perkalian matrik.⊲ Mendeklarasikan elemen-elemen matrik ke dalam memori komputer.⊲ Membuat script operasi matrik.12.1 Inversi LinearDiketahui data eksperimen tersaji dalam tabel berikut inix i y i x i y i1 1,3 6 8,82 3,5 7 10,13 4,2 8 12,54 5,0 9 13,05 7,0 10 15,6Lalu data tersebut di-plot dalam sumbu x dan y. Sekilas, kita bisa melihat bahwa data yangtelah di-plot tersebut dapat didekati dengan sebuah persamaan garis, yaitu a 1 x i + a 0 . Artinya,kita melakukan pendekatan secara linear, dimana fungsi pendekatan-nya adalahP(x i ) = a 1 x i + a 0 (12.1)Problemnya adalah berapakah nilai konstanta a 1 dan a 0 yang sedemikian rupa, sehingga posisigaris tersebut paling mendekati atau bahkan melalui titik-titik data yang telah di-plot di atas?165


166 BAB 12. INVERSI16141210Y 864201 2 3 4 5 6 7 8 9 10XDengan kata lain, sebisa mungkin y i sama dengan P(x i ) atau dapat diformulasikan sebagaim∑y i − P(x i ) = 0 (12.2)i=1m∑y i − (a 1 x i + a 0 ) = 0 (12.3)i=1dimana jumlah data, m = 10. Suku yang berada disebelah kiri dinamakan fungsi error (errorfunction), yaituE(a 0 , a 1 ) =m∑y i − (a 1 x i + a 0 ) (12.4)i=1Semua data yang diperoleh melalui eksperimen, fungsi error-nya tidak pernah bernilai nol. Jadi,tidak pernah didapatkan garis yang berhimpit dengan semua titik data ekperimen. Namundemikian, kita masih bisa berharap agar fungsi error menghasilkan suatu nilai, dimana nilaitersebut adalah nilai yang paling minimum atau paling mendekati nol. Harapan tersebut diwujudkanoleh metode least square dengan sedikit modifikasi pada fungsi error-nya sehinggamenjadiE(a 0 , a 1 ) =m∑[y i − (a 1 x i + a 0 )] 2 (12.5)i=1Agar fungsi error bisa mencapai nilai minimum, maka syarat yang harus dipenuhi adalah:∂E(a 0 , a 1 )∂a i= 0 (12.6)dimana i = 0 dan 1, karena dalam kasus ini memang cuma ada a 0 dan a 1 . Maka mesti ada dua


12.1. INVERSI LINEAR 167buah turunan yaitu:∂E(a 0 , a 1 )∂a 0= ∂ ∑m [y i − (a 1 x i + a 0 )] 2 = 0∂a 02i=1m∑(y i − a 1 x i − a 0 )(−1) = 0i=1∑m m∑a 0 .m + a 1 x i = y i (12.7)i=1 i=1dan∂E(a 0 , a 1 )∂a 1= ∂ ∑m [y i − (a 1 x i + a 0 )] 2 = 0∂a 12i=1m∑(y i − a 1 x i − a 0 )(−x i ) = 0i=1∑m ∑m m∑a 0 x i + a 1 x 2 i = x i y i (12.8)i=1 i=1 i=1Akhirnya persamaan (12.7) dan (12.8) dapat dicari solusinya berikut ini:a 0 =∑ m ∑ mi=1 x2 i i=1 y i − ∑ mi=1 x ∑ miy i i=1 x im (∑ m) ∑i=1 x2 i − ( mi=1 x i) 2 (12.9)dana 1 = m∑ mi=1 x iy i − ∑ mi=1 x ∑ mi i=1 y im (∑ m) ∑i=1 x2 i − ( mi=1 x i) 2 (12.10)Coba anda bandingkan kedua hasil di atas dengan rumus least square yang terdapat padabuku Praktikum Fisika Dasar keluaran Departemen Fisika-UI. Mudah-mudahan sama persis.OK, berdasarkan data ekperimen yang ditampilkan pada tabel diawal catatan ini, makadidapat:dana 0 =a 1 =Jadi, fungsi pendekatan-nya, P(x i ), adalah385(81) − 55(572, 4)10(385) − (55) 2 = −0, 360 (12.11)10(572, 4) − 55(81)10(385) − (55) 2 = 1, 538 (12.12)P(x i ) = 1, 538x i − 0, 360 (12.13)Solusi least square dengan pendekatan persamaan garis seperti ini juga dikenal dengan namalain yaitu regresi linear. Sedangkan nilai a 0 dan a 1 disebut koefisien regresi. Gambar dibawah ini menampilkan solusi regresi linear tersebut berikut semua titik datanyaTentu saja anda sudah bisa menduga bahwa selain regresi linear, mungkin saja terdapat regresi


168 BAB 12. INVERSI1614P(x) = 1.538*x − 0.36121086420−20 2 4 6 8 10parabola atau quadratik dimana fungsi pendekatannya berupa persamaan parabola, yaitu:P(x i ) = a 2 x 2 i + a 1 x i + a 0 (12.14)dimana koefisien regresinya ada tiga yaitu a 0 , a 1 dan a 2 . Kalau anda menduga demikian, makadugaan anda benar! Bahkan sebenarnya tidak terbatas sampai disitu. Secara umum, fungsipendekatan, P(x i ), bisa dinyatakan dalam aljabar polinomial berikut ini:P(x i ) = a n x n i + a n−1 x n−1i+ ... + a 2 x 2 i + a 1 x i + a 0 (12.15)Namun untuk saat ini, saya tidak ingin memperluas pembahasan hingga regresi parabola, danpolinomial. Saya masih ingin melibatkan peranan metode eliminasi gauss dalam menyelesaikanproblem least square seperti yang selalu saya singgung pada catatan-catatan kuliahsaya yang terdahulu. Nah, kalau metode eliminasi gauss hendak digunakan untuk mencarisolusi regresi linear, kita bisa mulai dari persamaan (12.7) dan (12.8), yaitu:∑ma 0 .m + a 1 x i =i=1∑m ∑ma 0 x i + a 1 x 2 i =i=1 i=1m∑i=1y im∑x i y ii=1Keduanya bisa dinyatakan dalam operasi matrik:[m∑ mi=1 x i∑ mi=1 x i∑ mi=1 x2 i] [] [ ∑m ]a 0i=1=y i∑a m1 i=1 x iy i(12.16)Kalau anda mengikuti catatan-catatan terdahulu, pasti anda tidak asing lagi dengan dengansemua elemen-elemen matrik di atas. Semua sudah saya ulas pada catatan yang berjudul AplikasiElimininasi Gauss: Model Garis. Silakan anda lanjutkan perhitungan matrik tersebuthingga diperoleh koefisien regresi a 0 dan a 1 . Selamat mencoba!


12.2. INVERSI NON-LINEAR 16912.2 Inversi Non-LinearPersamaan least squares linear adalah sebagai berikut:[G t G]δm = G t δd (12.17)Persamaan least squares non-linear dapat dinyatakan sebagai berikut:[G t G + λI]δm = G t δd (12.18)dimana G adalah matrik kernel, namun dia juga biasa dikenal dengan sebutan matrik Jacobian,sementara λ adalah faktor pengali Lagrange, dan I adalah matrik identitas yang ordenyadisesuaikan dengan G t G. Adapun definisi δm dan δd akan dijelaskan pada bagianakhir catatan ini.Langkah-langkah untuk menyelesaikan problem least squares non-linear adalah:1. Menentukan model, misal f(x) = x m2. Menghitung jacobian, G. Caranya adalah menghitung turunan pertama dari model terhadapmodel-parameter, m. Sesuai permisalan pada point 1, didapatA = ∂f(m)∂m = xm ln(x) (12.19)3. Membuat perhitungan simulasi, misalnya ditentukan m = 2. Nilai m adalah nilai yanghendak dicari. Dalam simulasi, nilai m dianggap sudah diketahui bahkan ditentukan.Lalu hitunglah f(x) = x m dengan x bergerak dari x = 1, 2, 3..,10. Jadi, nanti akan didapat10 buah f(x). Mau lebih dari 10 juga boleh, terserah saja. Hasil hitungannya dikasihnama d, jadi d = f(x). Karena dalam simulasi ini x-nya bergerak hanya sampai 10, makahasilnya mesti ada 10 d, yaitu d 1 , d 2 , .., d 10 .4. Buatlah perhitungan untuk m sembarang, misal mula-mula dipilih m = 5. Ini adalah nilaiawal dari m yang akan diiterasikan sedemikian rupa hingga nantinya m akan menuju2 sesuai dengan nilai m pada simulasi (point 3). Bagusnya dibedakan penulisannya, atautulis saja m 0 = 5, dimana m 0 maksudnya adalah m mula-mula. Lalu hitung lagi nilaif(x) = x m0 . Sekarang dinamakan d c = f(x). Jangan lupa bahwa saat perhitungan, nilaix bergerak dari 1 sampai 10. Jadi, nanti didapat 10 d c .5. Hitunglah δd, dimana δd = d c −d. Sebelumnya sudah dinyatakan bahwa d c ada 10 buah,demikian juga d ada 10 buah, maka δd harus ada 10 buah juga.6. Selanjutnya hitung ||δd|| yang rumusnya seperti ini||δd|| = 1 N Σ(dc − d) 2 = 1 N Σδd2 (12.20)dimana N = 10 karena δd-nya ada 10. Rumus ini tidak mutlak harus demikian, anda bisajuga menggunakan norm 2, l 2 .


170 BAB 12. INVERSI7. Tentukan nilai epsilon, ǫ, misal ǫ = 0.000001. Lalu lakukan evaluasi sederhana. Cek,apakah ||δd|| < ǫ ? Pasti awalnya ||δd|| > ǫ, kenapa? Karena m ≠ m 0 . Kalau beginisituasinya, δd yang ada 10 biji itu dimasukan kedalam proses berikutnya.8. Hitunglah operasi matriks berikut ini untuk mendapatkan δm[G t G + λI]δm = G t δd (12.21)dengan λ-nya dikasih nilai sembarang antara 0 dan 1, misalnya λ = 0.005. Perhitunganini bisa diselesaikan dengan metode eliminasi gauss.9. Ganti nilai m 0 menjadi m 1 sesuai dengan rumusm 1 = m 0 + δm (12.22)Nah, m 1 ini dimasukan ke proses yang dijelaskan pada point 4 kemudian proses diulangihingga point 9, begitu seterusnya. Dari sinilah dimulai proses iterasi. Iterasi akanberhenti bila ||δd|| < ǫ. Pada saat itu, nilai m k akan mendekati m = 2 sesuai dengan msimulasi.Selamat mencoba! Saya juga telah menulis beberapa persamaan non-linear sebagai bahanlatihan. Lihat saja di Latihan 1. Tapi tolong diperiksa lagi, apakah jacobiannya sudah benaratau ada kekeliruan. Selanjutnya, kalau ada pertanyaan atau komentar, silakan kirim kesupri92@gmail.com


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 AcademicResource Center.171


IndeksPositive-definite, 5Transpose, 3Tridiagonal, 5Vektor-baris, 6Vektor-kolom, 6173

More magazines by this user
Similar magazines