Komputasi Matlab 3

download Komputasi Matlab 3

of 226

Transcript of Komputasi Matlab 3

Komputasi untuk Sains dan Teknik-Menggunakan Matlab-Supriyanto Suparno( Website:http://supriyanto.sika.ui.edu )( Email:[email protected] atau [email protected] )Edisi IIIRevisi terakhir tgl: 29 Juni 2010Departemen Fisika-FMIPA, Univeristas IndonesiaDipublikasikan pertama kali pada September 2007UntukNina MarliyaniMuih SyamildanHasan AzmiUsia bukan ukuran kedewasaan(Supriyanto, 2006)Ketekunan adalah jalan yang terpercaya untuk mengantarkan kita menuju kesuksesan(Supriyanto, 2007)Kata PengantarAlhamdulillah, bukuinimemasukiedisike-3. Penomoranedisiinisebenarnyahanyauntukmenandakan perubahan isi buku yang semakin kaya metode numerik dibandingkan denganedisi-edisi sebelumnya. Pengayaan isi buku ini, sejujurnya, berasal dari sejumlah pertanyaanyangsampaikemailboxsaya, entahitudalambentukkonsultasiTugasAkhirmahasiswaS1sebagaimana yang saya terima dari mahasiswa UNPAD, UDAYANA, UNESAdan UNSRI sertaUIsendiri, ataupunsekedarpertanyaanseputartugaskuliahsepertiyangbiasaditanyakanoleh para mahasiswa dari Univ. Pakuan, Bogor.Pertanyaan-pertanyaan itu menjadikan saya sadar bahwa buku edisi ke-II yang berjumlah187 halaman, ternyata belumbisa memenuhi kebutuhan banyak mahasiswa yang memerlukanteknikpengolahandatasecaranumerik. Karenanya, insyaAllah, padaedisi ke-IIIini, sayamencoba menyempurnakan buku ini secara bertahap.Buku ini mulai ditulis pada tahun 2005 dengan isi yang seadanya, pokoknya asal tercatat.Kemudian di tahun 2006-akhir buku ini menjadi catatan perkuliahan Komputasi Fisika. Pen-gayaanisibukuterusberlangsunghinggaakhir2007. Laludiawaltahun2008, isibukuiniditambah dengan materi perkuliahan Analisis Numerik. Jadi materi Komputasi Fisika tahun2007 dan materi Analisis Numerik 2008, telah digabung jadi satu dalam buku ini.Secara garis besar, ilmu sika dapat dipelajari lewat 3 jalan, yaitu pertama, dengan meng-gunakan konsep atau teori sika yang akhirnya melahirkan sika teori. Kedua,dengan caraeksperimenyangmenghasilkanaliransikaeksperimental, danketiga, sikabisadipelajarilewat simulasi fenomena alam yang sangat mengandalkan komputer serta algoritma numerik.Tujuanpenyusunanbukuiniadalahuntukmeletakkanpondasidasardaribangunanpema-haman akan metode-metode komputasi yang banyak digunakan untuk mensimulasikan fenom-ena sika.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 Aca-demicResourceCenter. Disampingitu, bukuini dilengkapi olehsejumlahcontohaplikasikomputasi pada upaya penyelesaian problem-problem sika.Padaedisi ke-3ini sayamulai menfokuskanmenulisscript dalamlingkunganMatlab.Padahal, dalam edisi ke-2 yang lalu, script numerik disalin ke dalam 2 bahasa pemrograman,yaitu Fortran77 dan Matlab. Namun mayoritas ditulis dalam Matlab.AkhirnyasayainginmengucapkanrasaterimakasihyangtakterhinggakepadaDedeDjuhanayangtelahberkenanmemberikanformatLATEX-nyasehinggatampilantulisanpadabuku ini benar-benar layaknya sebuah buku yang siap dicetak. Tak lupa, saya pun berterimakasihkepadaseluruhmahasiswayangtelahmengambilmatakuliahKomputasiFisikaPTA2006/2007 di Departemen Fisika, FMIPA, Universitas Indonesia atas diskusi yang berlangsungiiiivselamakuliah. KepadaseluruhmahasiswadariberbagaiuniversitasdiTimurdandiBaratIndonesiajugasayaungkapkanterimakasihataspertanyaan-pertanyaanyangturut mem-perkaya isi buku ini.Walaupun buku ini masih jauh dari sempurna, namun semoga ia dapat menyumbangkankontribusi yang berarti untuk kebangkitan ilmu pengetahuan pada diri anak bangsa Indonesiayang saat ini sedang terpuruk.Saya wariskan buku ini untuk siswa dan mahasiswa Indonesiadimanapun mereka berada. Anda berhak memanfaatkan buku ini. Saya izinkan anda untukmeng-copydanmenggunakanbukuiniselamaituditujukanuntukbelajardanbukanuntuktujuan komersial, kecuali kalau saya dapat bagian komisi-nya :). Bagi yang ingin berdiskusi,memberikan masukan, kritikan dan saran, silakan dikirimkan ke email:[email protected], 8 Juni 2008Supriyanto SuparnoDaftar IsiLembar Persembahan iKata Pengantar iiiDaftar Isi ivDaftar Gambar viiiDaftar Tabel x1 Matrik dan Komputasi 11.1 Mengenal matrik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Vektor-baris dan vektor-kolom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3 Inisialisasi matrik dalam memori komputer . . . . . . . . . . . . . . . . . . . . . . 21.4 Macam-macam matrik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.4.1 Matrik transpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.4.2 Matrik bujursangkar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.4.3 Matrik simetrik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.4.4 Matrik diagonal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.4.5 Matrik identitas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.4.6 Matrik upper-triangular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.4.7 Matrik lower-triangular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.4.8 Matrik tridiagonal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.4.9 Matrik diagonal dominan . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.4.10 Matrik positive-denite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.5 Operasi matematika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.5.1 Penjumlahan matrik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.5.2 Komputasi penjumlahan matrik . . . . . . . . . . . . . . . . . . . . . . . . 71.5.3 Perkalian matrik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.5.4 Komputasi perkalian matrik . . . . . . . . . . . . . . . . . . . . . . . . . . 131.5.5 Perkalian matrik dan vektor-kolom . . . . . . . . . . . . . . . . . . . . . . 211.5.6 Komputasi perkalian matrik dan vektor-kolom . . . . . . . . . . . . . . . . 221.6 Penutup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251.7 Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 Fungsi 272.1 Fungsi internal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.2 Fungsi eksternal penjumlahan matrik . . . . . . . . . . . . . . . . . . . . . . . . . 29vvi2.3 Fungsi eksternal perkalian matrik . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312.4 Fungsi eksternal perkalian matrik dan vektor-kolom . . . . . . . . . . . . . . . . . 332.5 Penutup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353 Metode Eliminasi Gauss 373.1 Sistem persamaan linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373.2 Teknik penyederhanaan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373.2.1 Cara menghilangkan sebuah variabel . . . . . . . . . . . . . . . . . . . . . 383.2.2 Permainan indeks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393.3 Triangularisasi dan Substitusi Mundur. . . . . . . . . . . . . . . . . . . . . . . . . 403.3.1 Contoh pertama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403.3.2 Contoh kedua. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423.4 Matrik dan Eliminasi Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433.4.1 Matrik Augmentasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433.4.2 Penerapan pada contoh pertama . . . . . . . . . . . . . . . . . . . . . . . . 443.4.3 Source-code dasar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473.4.4 Optimasi source code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493.4.5 Pentingnya nilai n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563.4.6 Jangan puas dulu.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573.4.7 Pivoting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573.5 Function Eliminasi Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583.6 Contoh aplikasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603.6.1 Menghitung arus listrik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603.6.2 Mencari invers matrik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623.7 Penutup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 694 Aplikasi Eliminasi Gauss pada Masalah Inversi 714.1 Inversi Model Garis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714.1.1 Script matlab inversi model garis. . . . . . . . . . . . . . . . . . . . . . . . 744.2 Inversi Model Parabola. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 754.2.1 Script matlab inversi model parabola . . . . . . . . . . . . . . . . . . . . . 794.3 Inversi Model Bidang. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 804.4 Contoh aplikasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 824.4.1 Menghitung gravitasi di planet X . . . . . . . . . . . . . . . . . . . . . . . . 825 Metode LU Decomposition 895.1 Faktorisasi matrik. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 895.2 Algoritma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 936 Metode Iterasi 996.1 Kelebihan Vektor-kolom. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 996.2 Pengertian Norm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1006.2.1 Script perhitungan norm dua . . . . . . . . . . . . . . . . . . . . . . . . . . 100vii6.2.2 Script perhitungan norm tak hingga . . . . . . . . . . . . . . . . . . . . . . 1016.2.3 Perhitungan norm-selisih . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1016.3 Iterasi Jacobi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1026.3.1 Script metode iterasi Jacobi . . . . . . . . . . . . . . . . . . . . . . . . . . . 1056.3.2 Stopping criteria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1136.3.3 Fungsi eksternal iterasi Jacobi. . . . . . . . . . . . . . . . . . . . . . . . . . 1156.4 Iterasi Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1166.4.1 Script iterasi Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1186.4.2 Algoritma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1246.4.3 Script iterasi Gauss-Seidel dalam Fortran . . . . . . . . . . . . . . . . . . . 1256.5 Iterasi dengan Relaksasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1266.5.1 Algoritma Iterasi Relaksasi . . . . . . . . . . . . . . . . . . . . . . . . . . . 1287 Interpolasi 1297.1 Interpolasi Lagrange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1297.2 Interpolasi Cubic Spline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1318 Diferensial Numerik 1398.1 Metode Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1398.2 Metode Runge Kutta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1458.2.1 Aplikasi: Pengisian muatan pada kapasitor. . . . . . . . . . . . . . . . . . 1488.3 Metode Finite Difference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1538.3.1 Script Finite-Difference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1568.3.2 Aplikasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1618.4 Persamaan Diferensial Parsial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1628.5 PDP eliptik. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1638.5.1 Contoh pertama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1658.5.2 Script Matlab untuk PDP Elliptik. . . . . . . . . . . . . . . . . . . . . . . . 1688.5.3 Contoh kedua. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1708.6 PDP parabolik. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1718.6.1 Metode Forward-difference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1718.6.2 Contoh ketiga: One dimensional heat equation . . . . . . . . . . . . . . . . . 1728.6.3 Metode Backward-difference . . . . . . . . . . . . . . . . . . . . . . . . . . . 1778.6.4 Metode Crank-Nicolson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1818.7 PDP Hiperbolik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1848.7.1 Contoh. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1868.8 Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1879 Integral Numerik 1899.1 Metode Trapezoida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1899.2 Metode Simpson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1909.3 Peran faktor pembagi, n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192viii9.3.1 Source code metode integrasi . . . . . . . . . . . . . . . . . . . . . . . . . . 1929.4 Metode Composite-Simpson. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1939.5 Adaptive Quardrature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1959.6 Gaussian Quadrature. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1959.6.1 Contoh. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1969.6.2 Latihan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19610 Mencari Akar 19910.1 Metode Newton. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19911 Metode Monte Carlo 20111.1 Penyederhanaan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20112 Inversi 20512.1 Inversi Linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20512.2 Inversi Non-Linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208Daftar Pustaka 210Indeks 211Daftar Gambar4.1 Sebaran data observasi antara suhu dan kedalaman . . . . . . . . . . . . . . . . . 724.2 Kurva hasil inversi data observasi antara suhu dan kedalaman. . . . . . . . . . . 754.3 Kurva hasil inversi data observasi antara suhu dan kedalaman. . . . . . . . . . . 804.4 Grak data pengukuran gerak batu . . . . . . . . . . . . . . . . . . . . . . . . . . . 844.5 Grak hasil inversi parabola. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 867.1 Fungsi f(x) dengan sejumlah titik data . . . . . . . . . . . . . . . . . . . . . . . . 1317.2 Pendekatan dengan polinomial cubic spline. . . . . . . . . . . . . . . . . . . . . . 1317.3 Prol suatu object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1367.4 Sampling titik data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1377.5 Hasil interpolasi cubic spline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1377.6 Hasil interpolasi lagrange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1388.1 Kiri: Kurva y(t) dengan pasangan titik absis dan ordinat dimana jarak titik absis sebe-sarh. Pasangant1adalahy(t1), pasangant2adalahy(t2), begituseterusnya. Kanan:Garissinggungyangmenyinggungkurvay(t)padat=a, kemudianberdasarkangarissinggungtersebut, ditentukanpasangant1sebagai w1. Perhatikangambaritusekalilagi! w1 dan y(t1) beda tipis alias tidak sama persis. . . . . . . . . . . . . . . . . . . . . 1408.2 Kurva biru adalah solusi exact, dimana lingkaran-lingkaran kecil warna biru pada kurvamenunjukkanposisipasanganabsistdanordinaty(t)yangdihitungolehPersamaan(8.9). Sedangkan titik-titik merah mengacu pada hasil perhitungan metode euler, yaitunilai wi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1448.3 Kurva biru adalah solusi exact, dimana lingkaran-lingkaran kecil warna biru pada kurvamenunjukkanposisipasanganabsistdanordinaty(t)yangdihitungolehPersamaan(8.9). Sedangkan titik-titik merah mengacu pada hasil perhitungan metode Runge Kuttaorde 4, yaitu nilai wi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1488.4 Rangkaian RC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1498.5 Kurva pengisian muatan q (charging) terhadap waktu t . . . . . . . . . . . . . . . 1538.6 Kurva suatu fungsi f(x) yang dibagi sama besar berjarak h. Evaluasi kurva yangdilakukanFinite-DifferencedimulaidaribatasbawahX0=ahinggabatasatasx6= b. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1548.7 Skema grid lines dan mesh points pada aplikasi metode Finite-Difference . . . . . . 1648.8 Susunan grid lines dan mesh points untuk mensimulasikan distribusi temperaturpada lempeng logam sesuai contoh satu. . . . . . . . . . . . . . . . . . . . . . . . 1668.9 Sebatanglogamdenganposisi titik-titiksimulasi (mesh-points) distribusi temperatur.Jarak antar titik ditentukan sebesar h = 0, 1. . . . . . . . . . . . . . . . . . . . . . . . . 173ixx DAFTAR GAMBAR8.10 Interval mesh-points dengan jarak h = 0, 1 dalam interval waktu k = 0, 0005 . . . . . . . 1738.11 Posisi mesh-points. Arah x menunjukkan posisi titik-titik yang dihitung dengan forward-difference, sedangkan arah t menunjukkan perubahan waktu yg makin meningkat . . . . 1739.1 Metode Trapezoida. Gambar sebelah kiri menunjukkan kurva fungsi f(x) dengan batasbawahintegral adalahadanbatasatasb. GambarsebelahkananmenunjukancarametodeTrapesoidamenghitungintegraldengancaramenghitungluasareaintegrasi,dimanaluasareaintegrasi samadenganluastrapesiumdi bawahkurvaf(x)dalambatas-batasadanb. Jikaandaperhatikandenganteliti, adaareakecildibawahgariskurva dan diatas garis miring yang berada diluar bidang trapesium. Metode Trapesoidatidak menghitung luas area kecil tersebut. Disinilah letak kelemahan metode trapezoida. 1909.2 MetodeSimpson. Gambarsebelahkirimenunjukkankurvafungsif(x)denganbatasbawahintegral adalahadanbatasatasb. Gambarsebelahkananmenunjukancarametode Simpson menghitung luas area integrasi, dimana area integrasi di bawah kurvaf(x) dibagi 2 dalam batas interval a x1 dan x1b dengan lebar masing-masing adalah h1919.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 adalah h. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19410.1 Metode Newton. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20011.1 Lingkaran dan bujursangkar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20111.2 Dart yang menancap pada bidang lingkaran dan bujursangkar . . . . . . . . . . . 20211.3 Dart yang menancap pada bidang 1/4 lingkaran dan bujursangkar . . . . . . . . 203Daftar Tabel4.1 Data suhu bawah permukaan tanah terhadap kedalaman. . . . . . . . . . . . . . 714.2 Data suhu bawah permukaan tanah terhadap kedalaman. . . . . . . . . . . . . . 764.3 Data ketinggian terhadap waktu dari planet X . . . . . . . . . . . . . . . . . . . . 836.1 Hasil akhir elemen-elemen vektor x hingga iterasi ke-10 . . . . . . . . . . . . . . . 1136.2 Hasil perhitungan norm2-selisih hingga iterasi ke-10 . . . . . . . . . . . . . . . . 1136.3 Hasil Iterasi Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1176.4 Hasil perhitungan iterasi Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . . . . . 1276.5 Hasil perhitungan iterasi Relaksasi dengan = 1, 25 . . . . . . . . . . . . . . . . . 1278.1 Solusi yang ditawarkan oleh metode euler widan solusi exact y(ti) serta selisihantara keduanya . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1438.2 SolusiyangditawarkanolehmetodeRungeKuttaorde4(wi)dansolusiexacty(ti) serta selisih antara keduanya . . . . . . . . . . . . . . . . . . . . . . . . . . . 1488.3 Perbandingan antara hasil perhitungan numerik lewat metode Runge Kutta danhasil perhitungan dari solusi exact, yaitu persamaan (8.16) . . . . . . . . . . . . . 1528.4 Hasil simulasi distribusi panas bergantung waktu dalam 1-dimensi. Kolom ke-2 adalahsolusi analitik/exact, kolomke-3 dan ke-5 adalah solusi numerik forward-difference. Kolomke-4 dan ke-6 adalah selisih antara solusi analitik dan numerik. . . . . . . . . . . . . . 1778.5 Hasil simulasi distribusi panas bergantung waktu dalam1-dimensi dengan metode backward-difference dimana k = 0, 01 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1818.6 Hasilsimulasidistribusipanasbergantungwaktu(t)dalam1-dimensidenganmetode backward-difference dan Crank-Nicolson. . . . . . . . . . . . . . . . . . . . 1849.1 Polinomial Legendre untuk n=2,3,4 dan 5 . . . . . . . . . . . . . . . . . . . . . . . 196xixii DAFTAR TABELBab 1Matrik dan KomputasiObjektif :Mengenalkan matrik, vektor dan jenis-jenis matrik.Mendeklarasikan elemen-elemen matrik ke dalam memori komputer.Mengenalkan operasi penjumlahan dan perkalian matrik.Membuat script operasi matrik.1.1 Mengenal matrikNotasi suatu matrik berukuran n x m ditulis dengan huruf besar dan dicetak tebal,misalnyaAnm. Huruf n menyatakan jumlah baris, dan huruf m jumlah kolom. Suatu matrik tersusunatas elemen-elemen yang dinyatakan dengan huruf kecil lalu diikuti oleh angka-angka indeks,misalnya aij. Indeks i menunjukkan posisi baris ke-i dan indeks j menentukan posisi kolomke-j.A = (aij) =__a11a12. . . a1ma21a22. . . a2m.........an1an2. . . anm__(1.1)Padamatrikini, a11, a12, ..., a1madalahelemen-elemenyangmenempatibarispertama. Se-mentara a12, a22, ..., an2 adalah elemen-elemen yang menempati kolom kedua.Contoh 1: Matrik A23A =_3 8 56 4 7_dimanamasing-masingelemennyaadalaha11=3, a12=8, a13=5, a21=6, a22=4, dana23= 7.12 BAB 1. MATRIK DAN KOMPUTASIContoh 2: Matrik B32B =__1 35 92 4__dimanamasing-masingelemennyaadalahb11=1, b12=3, b21=5, b22=9, b31=2, danb32= 4.1.2 Vektor-baris dan vektor-kolomNotasi vektor biasanya dinyatakan dengan huruf kecil dan dicetak tebal. Suatu matrik dina-makanvektor-barisberukuranm, bilahanyamemilikisatubarisdanmkolom, yangdiny-atakan sebagai berikuta =_a11a12. . . a1m_ =_a1a2. . . am_(1.2)Sedangkan suatu matrik dinamakan vektor-kolomberukuran n, bila hanya memiliki satu kolomdan n baris, yang dinyatakan sebagai berikuta =__a11a21...an1__=__a1a2...an__(1.3)1.3 Inisialisasi matrik dalam memori komputerSebelum dilanjutkan, saya sarankan agar anda mencari tahu sendiri bagaimana cara membuatm-le di Matlab dan bagaimana cara menjalankannya. Karena semua source code yang terdapatdalam buku ini ditulis dalam m-le. Walaupun sangat mudah untuk melakukan copy-paste, na-mun dalam upaya membiasakan diri menulis source code di m-le, saya anjurkan anda menulisulang semuanya.Dalam Matlab terdapat 3 cara inisialisasi matrik. Cara pertama1, 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 A1Cara ini bisa diterapkan pada bahasa C, Fortran, Pascal, Delphi, Java, Basic, dll. Sementara cara kedua dan caraketiga hanya akan dimengerti oleh Matlab1.4. MACAM-MACAM MATRIK 3Sedangkan untuk matrik B32, 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 BCarakeduarelatiflebihmudahdanbenar-benarmerepresentasikandimensimatriknya, di-mana jumlah baris dan jumlah kolom terlihat dengan jelas.1 clear all2 clc34 A=[ 3 8 55 6 4 7 ];67 B=[ 1 38 5 99 2 4 ];Caraketigajauhlebihsingkat, namuntidakmenunjukkandimensi matriklantaranditulishanya dalam satu baris.1 clear all2 clc34 A=[ 3 8 5 ; 6 4 7 ];5 B=[ 1 3 ; 5 9 ; 2 4];1.4 Macam-macam matrik1.4.1 Matrik transposeOperasi transpose terhadap suatu matrik akan menukar elemen-elemen kolommenjadi elemen-elemen baris. Notasi matrik tranpose adalah ATatau At.Contoh 3: Operasi transpose terhadap matrik AA =_3 8 56 4 7_AT=__3 68 45 7__Dengan Matlab, operasi transpose cukup dilakukan dengan menambahkan tanda petik tung-gal di depan nama matriknya4 BAB 1. MATRIK DAN KOMPUTASI1 clear all2 clc34 A=[ 3 8 55 6 4 7 ];67 AT = A;1.4.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 3A =__1 3 85 9 72 4 6__1.4.3 Matrik simetrikMatrik simetrik adalah matrik bujursangkar yang elemen-elemen matrik transpose-nya berni-lai sama dengan matrik asli-nya.Contoh 5: Matrik simetrikA =__2 3 7 13 5 6 27 6 9 81 2 8 10__AT=__2 3 7 13 5 6 27 6 9 81 2 8 10__1.4.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 00 29 00 0 61__1.4.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 3I =__1 0 00 1 00 0 1__1.4. MACAM-MACAM MATRIK 51.4.6 Matrik upper-triangularMatrik upper-tringular adalah matrik bujursangkar yang seluruh elemen dibawah elemen di-agonal bernilai 0 (nol).Contoh 8: Matrik upper-triangularA =__3 6 2 10 4 1 50 0 8 70 0 0 9__1.4.7 Matrik lower-triangularMatrik lower-tringular adalah matrik bujursangkar yang seluruh elemen diatas elemen diago-nal bernilai 0 (nol).Contoh 9: Matrik lower-triangularA =__12 0 0 032 2 0 08 7 11 05 10 6 9__1.4.8 Matrik tridiagonalMatrik tridiagonal adalah matrik bujursangkar yang seluruh elemen bukan 0 (nol) berada dis-ekitar elemen diagonal, sementara elemen lainnya bernilai 0 (nol).Contoh 10: Matrik tridiagonalA =__3 6 0 02 4 1 00 5 8 70 0 3 9__1.4.9 Matrik diagonal dominanMatrik diagonal dominan adalah matrik bujursangkar yang memenuhi|aii| >n

j=1,j=i|aij| (1.4)dimana i=1,2,3,..n. Coba perhatikan matrik-matrik berikut iniA =__7 2 03 5 10 5 6__B =__6 4 34 2 03 0 1__6 BAB 1. MATRIK DAN KOMPUTASIPada elemen diagonal aii matrik A, |7| > |2|+|0|, lalu |5| > |3|+|1|, dan |6| > |5|+|0|. MakamatrikAdisebut matrikdiagonal dominan. Sekarang perhatikan elemen diagonal matrikB,|6| < |4| +| 3|, | 2| < |4| +|0|, dan |1| < | 3| +|0|. Dengan demikian, matrik B bukan matrikdiagonal dominan.1.4.10 Matrik positive-deniteSuatu matrik dikatakan positive-denite bila matrik tersebut simetrik dan memenuhixTAx > 0 (1.5)Contoh 11: Diketahui matrik simetrik berikutA =__2 1 01 2 10 1 2__untuk menguji apakah matrik A bersifat positive-denite, makaxTAx =_x1x2x3___2 1 01 2 10 1 2____x1x2x3__=_x1x2x3___2x1x2x1 + 2x2x3x2 + 2x3__= 2x212x1x2 + 2x222x2x3 + 2x23= x21 + (x212x1x2 + x22) + (x222x2x3 + x23) + x23= x21 + (x1x2)2+ (x2x3)2+ x23Dari sini dapat disimpulkan bahwa matrik A bersifat positive-denite, karena memenuhix21 + (x1x2)2+ (x2x3)2+ x23> 0kecuali jika x1=x2=x3=0.1.5 Operasi matematika1.5.1 Penjumlahan matrikOperasi penjumlahan pada dua buah matrik hanya bisa dilakukan bila kedua matrik tersebutberukuran sama. Misalnya matrik C23C =_9 5 37 2 1_1.5. OPERASI MATEMATIKA 7dijumlahkan dengan matrik A23, lalu hasilnya (misalnya) dinamakan matrik D23D = A+ CD =_3 8 56 4 7_+_9 5 37 2 1_=_3 + 9 8 + 5 5 + 36 + 7 4 + 2 7 + 1_=_12 13 813 6 8_Tanpa mempedulikan nilai elemen-elemen masing-masing matrik, operasi penjumlahan antaramatrik A23dan C23, bisa juga dinyatakan dalam indeks masing-masing dari kedua matriktersebut, yaitu_d11d12d13d21d22d23_ =_a11 + c11a12 + c12a13 + c13a21 + c21a22 + c22a23 + c23_Dijabarkan satu persatu sebagai berikutd11= a11 + c11d12= a12 + c12d13= a13 + c13(1.6)d21= a21 + c21d22= a22 + c22d23= a23 + c23Dari sini dapat diturunkan sebuah rumus umum penjumlahan dua buah matrikdij= aij + cij(1.7)dimanai=1,2danj=1,2,3. Perhatikanbaik-baik! Batasihanyasampaiangka2sementarabatas jsampai angka 3.Kemampuan anda dalam menentukan batas indeks sangat pentingdalam dunia programming.1.5.2 Komputasi penjumlahan matrikBerdasarkancontohoperasipenjumlahandiatas,indeksjpadapersamaan(1.7)lebihcepatberubah dibanding indeks i sebagaimana ditulis pada 3 baris pertama dari Persamaan (1.6),d11= a11 + c11d12= a12 + c12d13= a13 + c138 BAB 1. MATRIK DAN KOMPUTASIJelasterlihat, ketikaindeksimasihbernilai1, indeksjsudahberubahdarinilai1sampai3.Hal ini membawa konsekuensi pada script pemrograman, dimana looping untuk indeks j harusdiletakkan di dalam looping indeks i. Aturan mainnya adalah yang looping-nya paling cepatharus diletakkan paling dalam; sebaliknya, loopingterluar adalah loopingyang indeksnyapaling jarang berubah.Bila anda masih belum paham terhadap kalimat yang dicetak tebal, saya akan berikan con-tohsourcecodedasaryangnantinyaakankitaoptimasiselangkahdemiselangkah. OK,kitamulai dari source code paling mentah berikut ini.1 clear all2 clc34 A=[3 8 5; 6 4 7]; % inisialisasi matrik A56 C=[9 5 3; 7 2 1]; % inisialisasi matrik B78 % ---proses penjumlahan matrik----9 D(1,1)=A(1,1)+C(1,1);10 D(1,2)=A(1,2)+C(1,2);11 D(1,3)=A(1,3)+C(1,3);12 D(2,1)=A(2,1)+C(2,1);13 D(2,2)=A(2,2)+C(2,2);14 D(2,3)=A(2,3)+C(2,3);1516 % ---menampilkan matrik A, C dan D----17 A18 C19 DTanda%berfungsi untukmemberikankomentaratauketerangan. Komentaratauketeran-gan tidak akan diproses oleh Matlab. Saya yakin anda pahamdengan logika yang ada padabagian % proses penjumlahan matrik- dalam source code di atas. Misalnya pada baris ke-9,elemen d11adalah hasil penjumlahan antara elemen a11dan c11, sesuai dengan baris pertamaPersamaan 1.6.Tahappertamapenyederhanaansourcecodedilakukandenganmenerapkanperintahfor-end untuk proses looping. Source code tersebut berubah menjadi1 clear all2 clc34 A=[3 8 5; 6 4 7]; % inisialisasi matrik A56 C=[9 5 3; 7 2 1]; % inisialisasi matrik B78 % ---proses penjumlahan matrik----9 for j=1:310 D(1,j)=A(1,j)+C(1,j);11 end1213 for j=1:314 D(2,j)=A(2,j)+C(2,j);15 end1.5. OPERASI MATEMATIKA 91617 % ---menampilkan matrik A, C dan D----18 A19 C20 DPadabariske-9danke-13,sayamengambilhurufjsebagainamaindeksdimanajbergerakdari 1 sampai 3. Coba anda pikirkan, mengapa j hanya bergerak dari 1 sampai 3?Modikasi tahap kedua adalah sebagai berikut1 clear all2 clc34 A=[3 8 5; 6 4 7]; % inisialisasi matrik A56 C=[9 5 3; 7 2 1]; % inisialisasi matrik B78 % ---proses penjumlahan matrik----9 i=110 for j=1:311 D(i,j)=A(i,j)+C(i,j);12 end1314 i=215 for j=1:316 D(i,j)=A(i,j)+C(i,j);17 end1819 % ---menampilkan matrik A, C dan D----20 A21 C22 DSayagunakanindeksipadabariske-9danke-14yangmasing-masingberisiangka1dan2.Dengan begitu indeks i bisa menggantikan angka 1 dan 2 yang semula ada di baris ke-11 danke-16. Nah sekarang coba anda perhatikan, statemen pada baris ke-10, ke-11 dan ke-12 samapersisdenganstatemenpadabariske-15, ke-16danke-17, sehinggamerekabisadisatukankedalam sebuah looping yang baru dimana i menjadi nama indeksnya.1 clear all2 clc34 A=[3 8 5; 6 4 7]; % inisialisasi matrik A56 C=[9 5 3; 7 2 1]; % inisialisasi matrik B78 % ---proses penjumlahan matrik----9 for i=1:210 for j=1:311 D(i,j)=A(i,j)+C(i,j);12 end13 end1415 % ---menampilkan matrik A, C dan D----10 BAB 1. MATRIK DAN KOMPUTASI16 A17 C18 DCoba anda pahami dari baris ke-9, mengapa indeks i hanya bergerak dari 1 sampai 2?Source code di atas memang sudah tidak perlu dimodikasi lagi, namun ada sedikit saranuntuk penulisan looping bertingkat dimana sebaiknya looping terdalam ditulis agak menjorokkedalam seperti berikut ini1 clear all2 clc34 A=[3 8 5; 6 4 7]; % inisialisasi matrik A56 C=[9 5 3; 7 2 1]; % inisialisasi matrik B78 % ---proses penjumlahan matrik----9 for i=1:210 for j=1:311 D(i,j)=A(i,j)+C(i,j);12 end13 end1415 % ---menampilkan matrik A, C dan D----16 A17 C18 DSekarang anda lihat bahwa looping indeks jditulis lebih masuk kedalam dibandingkan loop-ing indeks i. Semoga contoh ini bisa memperjelas aturan umum pemrograman dimana yanglooping-nya paling cepat harus diletakkan paling dalam; sebaliknya, looping terluar adalahloopingyang indeksnya paling jarang berubah. Dalam contoh ini looping indeks jbergeraklebih cepat dibanding looping indeks i.1.5.3 Perkalian matrikOperasiperkalianduabuahmatrikhanyabisadilakukanbilajumlahkolommatrikpertamasamadenganjumlahbarismatrikkedua. Jadikeduamatriktersebuttidakharusberukuransama seperti pada penjumlahan dua matrik. Misalnya matrikA23dikalikan dengan matrikB32, lalu hasilnya (misalnya) dinamakan matrik E22E22= A23.B321.5. OPERASI MATEMATIKA 11E =_3 8 56 4 7___1 35 92 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 82_Tanpamempedulikannilai elemen-elemenmasing-masingmatrik, operasi perkalianantaramatrik A23dan B32,bisa juga dinyatakan dalam indeks masing-masing dari kedua matriktersebut, yaitu_e11e12e21e22_ =_a11.b11 + a12.b21 + a13.b31a11.b12 + a12.b22 + a13.b32a21.b11 + a22.b21 + a23.b31a21.b12 + a22.b22 + a23.b32_Bila dijabarkan, maka elemen-elemen matrik E22 adalahe11= a11.b11 + a12.b21 + a13.b31(1.8)e12= a11.b12 + a12.b22 + a13.b32(1.9)e21= a21.b11 + a22.b21 + a23.b31(1.10)e22= a21.b12 + a22.b22 + a23.b32(1.11)Sejenak, marikitaamatiperubahanpasanganangka-angkaindeksyangmengiringielemene, elemenadanelemenbmulaidaripersamaan(1.8)sampaipersamaan(1.11). Perhatikanperubahan angka-indeks-pertama pada elemen e seperti berikut inie1..= ..e1..= ..e2..= ..e2..= ..Pola perubahan yang sama akan kita dapati pada angka-indeks-pertama dari elemen ae1..= a1...b... + a1...b... + a1...b...e1..= a1...b... + a1...b... + a1...b...e2..= a2...b... + a2...b... + a2...b...e2..= a2...b... + a2...b... + a2...b...Dengandemikiankitabisamencantumkanhuruf i sebagai pengganti angka-angkaindeks12 BAB 1. MATRIK DAN KOMPUTASIyang polanya samaei..= ai...b... + ai...b... + ai...b...ei..= ai...b... + ai...b... + ai...b...ei..= ai...b... + ai...b... + ai...b...ei..= ai...b... + ai...b... + ai...b...dimanaibergerakmulai dari angka1hinggaangka2, ataukitanyatakani=1,2. Selanjut-nya, masih dari persamaan (1.8) sampai persamaan (1.11), marilah kita perhatikan perubahanangka-indeks-kedua pada elemen e dan elemen b,ei1= ai...b..1 + ai...b..1 + ai...b..1ei2= ai...b..2 + ai...b..2 + ai...b..2ei1= ai...b..1 + ai...b..1 + ai...b..1ei2= ai...b..2 + ai...b..2 + ai...b..2Dengandemikiankitabisamencantumkanhuruf j sebagai pengganti angka-angkaindeksyang polanya samaeij= ai...b..j + ai...b..j + ai...b..jeij= ai...b..j + ai...b..j + ai...b..jeij= ai...b..j + ai...b..j + ai...b..jeij= ai...b..j + ai...b..j + ai...b..jdimana jbergerak mulai dari angka 1 hingga angka 2, atau kita nyatakan j=1,2. Selanjutnya,masih dari persamaan (1.8) sampai persamaan (1.11), mari kita perhatikan perubahan angka-indeks-keduaelemenadanangka-indeks-pertamaelemenb, dimanakitaakandapati polasebagai berikuteij= ai1.b1j + ai2.b2j + ai3.b3jeij= ai1.b1j + ai2.b2j + ai3.b3jeij= ai1.b1j + ai2.b2j + ai3.b3jeij= ai1.b1j + ai2.b2j + ai3.b3jDankitabisamencantumkanhurufksebagaipengganti angka-angkaindeksyangpolanya1.5. OPERASI MATEMATIKA 13sama, dimana k bergerak mulai dari angka 1 hingga angka 3, atau kita nyatakan k=1,2,3.eij= aik.bkj + aik.bkj + aik.bkjeij= aik.bkj + aik.bkj + aik.bkjeij= aik.bkj + aik.bkj + aik.bkjeij= aik.bkj + aik.bkj + aik.bkjKemudian secara sederhana dapat ditulis sebagai berikuteij= aik.bkj + aik.bkj + aik.bkj(1.12)Selanjutnya dapat ditulis pula formula berikuteij=3

k=1aikbkj(1.13)dimana i=1,2; j=1,2; dan k=1,2,3.Berdasarkan contoh ini, maka secara umum bila ada matrik Anm yang dikalikan dengan ma-trik Bmp, akan didapatkan matrik Enp dimana elemen-elemen matrik E memenuhieij=m

k=1aikbkj(1.14)dengan i=1,2,. . . ,n; j=1,2. . . ,p; dan k=1,2. . . ,m.1.5.4 Komputasi perkalian matrikMari kita mulai lagi dari source code paling dasar dari operasi perkalian matrik sesuai dengancontoh di atas.1 clear all2 clc34 A = [3 8 5; 6 4 7]; % inisialisasi matrik A5 B = [1 3; 5 9; 2 4]; % inisialisasi matrik B67 % ---proses perkalian matrik----8 E(1,1)=A(1,1)*B(1,1)+A(1,2)*B(2,1)+A(1,3)*B(3,1);9 E(1,2)=A(1,1)*B(1,2)+A(1,2)*B(2,2)+A(1,3)*B(3,2);10 E(2,1)=A(2,1)*B(1,1)+A(2,2)*B(2,1)+A(2,3)*B(3,1);11 E(2,2)=A(2,1)*B(1,2)+A(2,2)*B(2,2)+A(2,3)*B(3,2);1213 % ---menampilkan matrik A, B dan E----14 A15 B16 E14 BAB 1. MATRIK DAN KOMPUTASISejenak, mari kita amati dengan cermat statemen dari baris ke-9 sampai ke-12 sambil dikaitkandengan bentuk umum penulisan indeks pada perkalian matrik yaitueij= aik.bkj + aik.bkj + aik.bkj(1.15)Dari sana ada 4 point yang perlu dicatat:elemen e memiliki indeks i dan indeks j dimana indeks j lebih cepat berubah dibandingindeks i.pada baris statemen ke-8 sampai ke-11 ada tiga kali operasi perkalian dan dua kali op-erasi penjumlahanyangsemuanyamelibatkanindeksi, indeksj danindeksk. Na-mun indeks k selalu berubah pada masing-masing perkalian. Jadi indeks k paling cepatberubah dibanding indeks i dan indeks j.elemen a memiliki indeks i dan indeks k dimana indeks k lebih cepat berubah dibandingindeks i.elemen b memiliki indeks k dan indeks j dimana indeks k lebih cepat berubah dibandingindeks j.Tahapan modikasi source code perkalian matrik tidak semudah penjumlahan matrik. Danmengajarkanlogikadibaliksourcecodeperkalianmatrikjauhlebihsulit daripadasekedarmemodikasi source code tersebut. Tapi akan saya coba semampu saya lewat tulisan ini walauharus perlahan-lahan. Mudah-mudahan mudah untuk dipahami.Saya mulai dengan memecah operasi pada statemen baris ke-8 yang bertujuan menghitungnilai E(1, 1)1 clear all2 clc34 A = [3 8 5; 6 4 7]; % inisialisasi matrik A5 B = [1 3; 5 9; 2 4]; % inisialisasi matrik B67 % ---proses perkalian matrik----8 % ---E(1,1) dihitung 3 kali9 E(1,1)=A(1,1)*B(1,1);10 E(1,1)=E(1,1)+A(1,2)*B(2,1);11 E(1,1)=E(1,1)+A(1,3)*B(3,1);1213 % ---E(1,2); E(2,1); dan E(2,2) masih seperti semula14 E(1,2)=A(1,1)*B(1,2)+A(1,2)*B(2,2)+A(1,3)*B(3,2);15 E(2,1)=A(2,1)*B(1,1)+A(2,2)*B(2,1)+A(2,3)*B(3,1);16 E(2,2)=A(2,1)*B(1,2)+A(2,2)*B(2,2)+A(2,3)*B(3,2);1718 % ---menampilkan matrik A, B dan E----19 A20 B21 EAgar baris ke-9 memiliki pola yang sama dengan baris ke-11 dan ke-12, upaya yang dilakukanadalah1.5. OPERASI MATEMATIKA 151 clear all2 clc34 A = [3 8 5; 6 4 7]; % inisialisasi matrik A5 B = [1 3; 5 9; 2 4]; % inisialisasi matrik B67 % ---proses perkalian matrik----8 % ---E(1,1) dihitung 3 kali9 E(1,1)=0;10 E(1,1)=E(1,1)+A(1,1)*B(1,1);11 E(1,1)=E(1,1)+A(1,2)*B(2,1);12 E(1,1)=E(1,1)+A(1,3)*B(3,1);1314 % ---E(1,2); E(2,1); dan E(2,2) masih seperti semula15 E(1,2)=A(1,1)*B(1,2)+A(1,2)*B(2,2)+A(1,3)*B(3,2);16 E(2,1)=A(2,1)*B(1,1)+A(2,2)*B(2,1)+A(2,3)*B(3,1);17 E(2,2)=A(2,1)*B(1,2)+A(2,2)*B(2,2)+A(2,3)*B(3,2);1819 % ---menampilkan matrik A, B dan E----20 A21 B22 EDari sini kita bisa munculkan indeks k1 clear all2 clc34 A = [3 8 5; 6 4 7]; % inisialisasi matrik A5 B = [1 3; 5 9; 2 4]; % inisialisasi matrik B67 % ---proses perkalian matrik----8 E(1,1)=0;9 for k=1:3 % k bergerak dari 1 sampai 310 E(1,1)=E(1,1)+A(1,k)*B(k,1);11 end1213 % ---E(1,2); E(2,1); dan E(2,2) masih seperti semula14 E(1,2)=A(1,1)*B(1,2)+A(1,2)*B(2,2)+A(1,3)*B(3,2);15 E(2,1)=A(2,1)*B(1,1)+A(2,2)*B(2,1)+A(2,3)*B(3,1);16 E(2,2)=A(2,1)*B(1,2)+A(2,2)*B(2,2)+A(2,3)*B(3,2);1718 % ---menampilkan matrik A, B dan E----19 A20 B21 EKemudiancarayangsamadilakukanpadaE(1, 2), E(2, 1), danE(2, 2). Andamesticermatdan hati-hati dalam menulis angka-angka indeks!!!1 clear all2 clc34 A = [3 8 5; 6 4 7]; % inisialisasi matrik A5 B = [1 3; 5 9; 2 4]; % inisialisasi matrik B616 BAB 1. MATRIK DAN KOMPUTASI7 % ---proses perkalian matrik----8 E(1,1)=0;9 for k=1:310 E(1,1)=E(1,1)+A(1,k)*B(k,1);11 end1213 E(1,2)=0;14 for k=1:315 E(1,2)=E(1,2)+A(1,k)*B(k,2);16 end1718 E(2,1)=0;19 for k=1:320 E(2,1)=E(2,1)+A(2,k)*B(k,1);21 end2223 E(2,2)=0;24 for k=1:325 E(2,2)=E(2,2)+A(2,k)*B(k,2);26 end2728 % ---menampilkan matrik A, B dan E----29 A30 B31 EInisialisasi elemen-elemen matrik E dengan angka nol, bisa dilakukan diawal proses perkalianyang sekaligus memunculkan indeks i dan j untuk elemen E1 clear all2 clc34 A = [3 8 5; 6 4 7]; % inisialisasi matrik A5 B = [1 3; 5 9; 2 4]; % inisialisasi matrik B67 % ---proses perkalian matrik----8 for i=1:2 % i bergerak dari 1 sampai 29 for j=1:2 % j bergerak dari 1 sampai 210 E(i,j)=0;11 end12 end1314 for k=1:315 E(1,1)=E(1,1)+A(1,k)*B(k,1);16 end1718 for k=1:319 E(1,2)=E(1,2)+A(1,k)*B(k,2);20 end2122 for k=1:323 E(2,1)=E(2,1)+A(2,k)*B(k,1);24 end2526 for k=1:327 E(2,2)=E(2,2)+A(2,k)*B(k,2);28 end291.5. OPERASI MATEMATIKA 1730 % ---menampilkan matrik A, B dan E----31 A32 B33 ESekarang coba anda perhatikan statemen pada baris ke-15 dan ke-19, lalu bandingkan indeksi dan indeks jpada elemen E. Indeks mana yang berubah?Ya. Jawabannya adalah indeks j.Dengan demikian kita bisa munculkan indeks j1 clear all2 clc34 A = [3 8 5; 6 4 7]; % inisialisasi matrik A5 B = [1 3; 5 9; 2 4]; % inisialisasi matrik B67 % ---proses perkalian matrik----8 for i=1:2 % i bergerak dari 1 sampai 29 for j=1:2 % j bergerak dari 1 sampai 210 E(i,j)=0;11 end12 end1314 j=1;15 for k=1:316 E(1,j)=E(1,j)+A(1,k)*B(k,j);17 end1819 j=2;20 for k=1:321 E(1,j)=E(1,j)+A(1,k)*B(k,j);22 end2324 for k=1:325 E(2,1)=E(2,1)+A(2,k)*B(k,1);26 end2728 for k=1:329 E(2,2)=E(2,2)+A(2,k)*B(k,2);30 end3132 % ---menampilkan matrik A, B dan E----33 A34 B35 ELihatlah, statemendaribariske-15sampaike-17memilikipolayangsamadenganstatemendari baris ke-20 sampai ke-22, sehingga mereka bisa disatukan kedalam looping indeks j1 clear all2 clc34 A = [3 8 5; 6 4 7]; % inisialisasi matrik A5 B = [1 3; 5 9; 2 4]; % inisialisasi matrik B67 % ---proses perkalian matrik----8 for i=1:2 % i bergerak dari 1 sampai 218 BAB 1. MATRIK DAN KOMPUTASI9 for j=1:2 % j bergerak dari 1 sampai 210 E(i,j)=0;11 end12 end1314 for j=1:215 for k=1:316 E(1,j)=E(1,j)+A(1,k)*B(k,j);17 end18 end1920 for k=1:321 E(2,1)=E(2,1)+A(2,k)*B(k,1);22 end2324 for k=1:325 E(2,2)=E(2,2)+A(2,k)*B(k,2);26 end2728 % ---menampilkan matrik A, B dan E----29 A30 B31 ESekarangcobasekali lagi andaperhatikanstatemenpadabariske-21danke-25, laluband-ingkanindeksidanindeksjpadaelemenE. Indeksmanayangberubah? Ya. Jawabannyatetap indeks j. Dengan demikian kita bisa munculkan juga indeks j disana1 clear all2 clc34 A = [3 8 5; 6 4 7]; % inisialisasi matrik A5 B = [1 3; 5 9; 2 4]; % inisialisasi matrik B67 % ---proses perkalian matrik----8 for i=1:2 % i bergerak dari 1 sampai 29 for j=1:2 % j bergerak dari 1 sampai 210 E(i,j)=0;11 end12 end1314 for j=1:215 for k=1:316 E(1,j)=E(1,j)+A(1,k)*B(k,j);17 end18 end1920 j=1;21 for k=1:322 E(2,j)=E(2,j)+A(2,k)*B(k,j);23 end2425 j=2;26 for k=1:327 E(2,j)=E(2,j)+A(2,k)*B(k,j);28 end291.5. OPERASI MATEMATIKA 1930 % ---menampilkan matrik A, B dan E----31 A32 B33 ECermatilah, statemen dari baris ke-21 sampai ke-23 memiliki pola yang sama dengan statemendari baris ke-25 sampai ke-27, sehingga mereka pun bisa disatukan kedalam looping indeks j1 clear all2 clc34 A = [3 8 5; 6 4 7]; % inisialisasi matrik A5 B = [1 3; 5 9; 2 4]; % inisialisasi matrik B67 % ---proses perkalian matrik----8 for i=1:2 % i bergerak dari 1 sampai 29 for j=1:2 % j bergerak dari 1 sampai 210 E(i,j)=0;11 end12 end1314 for j=1:215 for k=1:316 E(1,j)=E(1,j)+A(1,k)*B(k,j);17 end18 end1920 for j=1:221 for k=1:322 E(2,j)=E(2,j)+A(2,k)*B(k,j);23 end24 end2526 % ---menampilkan matrik A, B dan E----27 A28 B29 EAkhirnya kita sampai pada bagian akhir tahapan modikasi. Perhatikan baris ke-16 dan ke-22.Indeks i pada elemen E dan A bergerak dari 1 ke 2, sehingga indeks i bisa dimunculkan1 clear all2 clc34 A = [3 8 5; 6 4 7]; % inisialisasi matrik A5 B = [1 3; 5 9; 2 4]; % inisialisasi matrik B67 % ---proses perkalian matrik----8 for i=1:2 % i bergerak dari 1 sampai 29 for j=1:2 % j bergerak dari 1 sampai 210 E(i,j)=0;11 end12 end1314 i=1;15 for j=1:220 BAB 1. MATRIK DAN KOMPUTASI16 for k=1:317 E(i,j)=E(i,j)+A(i,k)*B(k,j);18 end19 end2021 i=2;22 for j=1:223 for k=1:324 E(i,j)=E(i,j)+A(i,k)*B(k,j);25 end26 end2728 % ---menampilkan matrik A, B dan E----29 A30 B31 ESekarang, statemen dari baris ke-15 sampai ke-19 memiliki pola yang sama dengan statemendari baris ke-22 sampai ke-26. Mereka bisa disatukan oleh looping indeks i1 clear all2 clc34 A = [3 8 5; 6 4 7]; % inisialisasi matrik A5 B = [1 3; 5 9; 2 4]; % inisialisasi matrik B67 % ---proses perkalian matrik----8 for i=1:29 for j=1:210 E(i,j)=0;11 end12 end1314 for i=1:215 for j=1:216 for k=1:317 E(i,j)=E(i,j)+A(i,k)*B(k,j);18 end19 end20 end2122 % ---menampilkan matrik A, B dan E----23 A24 B25 EInilah hasil akhir dari tahapan-tahapan modikasi yang selanjutnya saya sebut sebagai prosesoptimasi. Upaya yang baru saja saya perlihatkan, sebenarnya penuh dengan jebakan-jebakankesalahan, terutamajikaandakurangcermatmembacaindeksdanpola. Upayasepertiitumemerlukan konsentrasi dan perhatian yang tidak sebentar. Upaya semacam itu tidak semu-dahmeng-copyhasilakhiroptimasi. Walaupunbisadi-copy,namunsayamenyarankanagaranda mencoba melakukan proses optimasi itu sekali lagi di komputer tanpa melihat catatan inidan tanpa bantuan orang lain. Kalau anda gagal,cobalah berkir lebih keras untuk mencarijalankeluarnya. Jikamasihtetapgagal, silakanlihatcatataninisebentarsajasekedaruntuk1.5. OPERASI MATEMATIKA 21mencari tahudimanaletakkesalahannya. Hanyadengancarabegituilmuprogramminginiakan bisa menyatu pada diri anda.1.5.5 Perkalian matrik dan vektor-kolomOperasi perkalian antara matrik dan vektor-kolom sebenarnya sama saja dengan perkalian an-tara dua matrik. Hanya saja ukuran vektor-kolom boleh dibilang spesial yaitu m x 1, dimanam merupakan jumlah baris sementara jumlah kolomnya hanya satu. Misalnya matrikA, pa-dacontoh1, dikalikandenganvektor-kolomxyangberukuran3x1ataudisingkatdenganmengatakan vektor-kolom x berukuran 3, lalu hasilnya (misalnya) dinamakan vektor-kolom yy = Axy =_3 8 56 4 7___234__=_3.2 + 8.3 + 5.46.2 + 4.3 + 7.4_=_5052_Sekali lagi, tanpa mempedulikan nilai elemen-elemen masing-masing, operasi perkalian antaramatrik A dan vektor-kolom x, bisa juga dinyatakan dalam indeksnya masing-masing, yaitu_y1y2_ =_a11.x1 + a12.x2 + a13.x3a21.x1 + a22.x2 + a23.x3_Bila dijabarkan, maka elemen-elemen vektor-kolom y adalahy1= a11.x1 + a12.x2 + a13.x3y2= a21.x1 + a22.x2 + a23.x3kemudian secara sederhana dapat diwakili oleh rumus berikutyi=3

j=1aijxjdimana i=1,2.Berdasarkan 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 122 BAB 1. MATRIK DAN KOMPUTASIdimana elemen-elemen vektor-kolom y memenuhiyi=m

j=1aijxj(1.16)dengan i=1,2,. . . ,n.1.5.6 Komputasi perkalian matrik dan vektor-kolomMari kitamulai lagi dari sourcecodepalingdasardari operasi perkalianantaramatrikdanvektor-kolom sesuai dengan contoh di atas1 clear all2 clc34 A = [3 8 5; 6 4 7]; % inisialisasi matrik A5 x = [2; 3; 4]; % inisialisasi vektor x67 % ---proses perkalian matrik dan vektor----8 y(1,1)=A(1,1)*x(1,1)+A(1,2)*x(2,1)+A(1,3)*x(3,1);9 y(2,1)=A(2,1)*x(1,1)+A(2,2)*x(2,1)+A(2,3)*x(3,1);1011 % ---menampilkan matrik A, B dan E----12 A13 x14 ySejenak, marikitaamatidengancermatstatemendaribariske-8danke-9sambildikaitkandengan bentuk umum penulisan indeks pada perkalian antara matrik dan vektor-kolom yaituyi1= aij.xj1 + aij.xj1 + aij.xj1(1.17)Dari sana ada 3 point yang perlu dicatat:elemen y dan elemen x sama-sama memiliki indeks i yang berpasangan dengan angka 1.padabarisstatemenke-8danke-9adatigakalioperasiperkaliandanduakalioperasipenjumlahan yang semuanya melibatkan indeks i dan indeks j. Namun indeks jselaluberubahpadamasing-masingperkalian. Jadi indeksjlebihcepatberubahdibandingindeks i.elemen a memiliki indeks i dan indeks j dimana indeks j lebih cepat berubah dibandingindeks i.Kita mulai dengan memecah operasi pada statemen baris ke-8 yang bertujuan menghitungnilai y(1, 1)1 clear all2 clc31.5. OPERASI MATEMATIKA 234 A = [3 8 5; 6 4 7]; % inisialisasi matrik A5 x = [2; 3; 4]; % inisialisasi vektor x67 % ---proses perkalian matrik dan vektor----8 y(1,1)=A(1,1)*x(1,1);9 y(1,1)=y(1,1)+A(1,2)*x(2,1);10 y(1,1)=y(1,1)+A(1,3)*x(3,1);1112 y(2,1)=A(2,1)*x(1,1)+A(2,2)*x(2,1)+A(2,3)*x(3,1);1314 % ---menampilkan matrik A, B dan E----15 A16 x17 yAgar baris ke-8 memiliki pola yang sama dengan baris ke-9 dan ke-10, upaya yang dilakukanadalah1 clear all2 clc34 A = [3 8 5; 6 4 7]; % inisialisasi matrik A5 x = [2; 3; 4]; % inisialisasi vektor x67 % ---proses perkalian matrik dan vektor----8 y(1,1)=0;9 y(1,1)=y(1,1)+A(1,1)*x(1,1);10 y(1,1)=y(1,1)+A(1,2)*x(2,1);11 y(1,1)=y(1,1)+A(1,3)*x(3,1);1213 y(2,1)=A(2,1)*x(1,1)+A(2,2)*x(2,1)+A(2,3)*x(3,1);1415 % ---menampilkan matrik A, B dan E----16 A17 x18 yDari sini kita bisa munculkan indeks j1 clear all2 clc34 A = [3 8 5; 6 4 7]; % inisialisasi matrik A5 x = [2; 3; 4]; % inisialisasi vektor x67 % ---proses perkalian matrik dan vektor----8 y(1,1)=0;9 for j=1:310 y(1,1)=y(1,1)+A(1,j)*x(j,1);11 end1213 y(2,1)=A(2,1)*x(1,1)+A(2,2)*x(2,1)+A(2,3)*x(3,1);1415 % ---menampilkan matrik A, B dan E----16 A17 x18 y24 BAB 1. MATRIK DAN KOMPUTASIDengan cara yang sama, baris ke-13 dimodikasi menjadi1 clear all2 clc34 A = [3 8 5; 6 4 7]; % inisialisasi matrik A5 x = [2; 3; 4]; % inisialisasi vektor x67 % ---proses perkalian matrik dan vektor----8 y(1,1)=0;9 for j=1:310 y(1,1)=y(1,1)+A(1,j)*x(j,1);11 end1213 y(2,1)=0;14 for j=1:315 y(2,1)=y(2,1)+A(2,j)*x(j,1);16 end1718 % ---menampilkan matrik A, B dan E----19 A20 x21 yInisialisasi vektorydenganangkanol dapat dilakukandiawal prosesperkalian, sekaligusmemunculkan indeks i1 clear all2 clc34 A = [3 8 5; 6 4 7]; % inisialisasi matrik A5 x = [2; 3; 4]; % inisialisasi vektor x67 % ---proses perkalian matrik dan vektor----8 for i=1:29 y(i,1)=0;10 end1112 for j=1:313 y(1,1)=y(1,1)+A(1,j)*x(j,1);14 end1516 for j=1:317 y(2,1)=y(2,1)+A(2,j)*x(j,1);18 end1920 % ---menampilkan matrik A, B dan E----21 A22 x23 yKemudian, untuk menyamakan pola statemen baris ke-13 dan ke-17, indeks i kembali dimunculkan1 clear all2 clc31.6. PENUTUP 254 A = [3 8 5; 6 4 7]; % inisialisasi matrik A5 x = [2; 3; 4]; % inisialisasi vektor x67 % ---proses perkalian matrik dan vektor----8 for i=1:29 y(i,1)=0;10 end1112 i=1;13 for j=1:314 y(i,1)=y(i,1)+A(i,j)*x(j,1);15 end1617 i=2;18 for j=1:319 y(i,1)=y(i,1)+A(i,j)*x(j,1);20 end2122 % ---menampilkan matrik A, B dan E----23 A24 x25 yAkhir dari proses optimasi adalah sebagai berikut1 clear all2 clc34 A = [3 8 5; 6 4 7]; % inisialisasi matrik A5 x = [2; 3; 4]; % inisialisasi vektor x67 % ---proses perkalian matrik dan vektor----8 for i=1:29 y(i,1)=0;10 end1112 for i=1:213 for j=1:314 y(i,1)=y(i,1)+A(i,j)*x(j,1);15 end16 end1718 % ---menampilkan matrik A, B dan E----19 A20 x21 y1.6 PenutupDemikianlah catatan singkat dan sederhana mengenai jenis-jenis matrik dasar dan operasi pen-jumlahan dan perkalian yang seringkali dijumpai dalam pengolahan data secara numerik.Se-muanya akan dijadikan acuan atau referensi pada pembahasan topik-topik numerik yang akandatang.26 BAB 1. MATRIK DAN KOMPUTASI1.7 LatihanDiketahui matrik A, matrik B, dan vektor x sebagai berikutA =__1 3 6 25 9 7 5.62 4 8 12.3 1.4 0.8 2.3__B =__8 1 4 213 10 5 0.17 2 9 52.7 12 8.9 5.7__x =__0.41782.958756.30698.1__1. 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 B dan vektor x.Bab 2FungsiObjektif :Mengenalkan fungsi internal.Membuat fungsi ekstenal.Membuat fungsi ekternal untuk penjumlahan matrik.Membuat fungsi ekternal untuk perkalian matrik.2.1 Fungsi internalPada bab terdahulu kita sudah melakukan proses optimasi penjumlahan matrik dengan sourcecode akhir seperti ini1 clear all2 clc34 A=[3 8 5; 6 4 7]; % inisialisasi matrik A5 C=[9 5 3; 7 2 1]; % inisialisasi matrik B67 % ---proses penjumlahan matrik----8 for i=1:29 for j=1:310 D(i,j)=A(i,j)+C(i,j);11 end12 end1314 % ---menampilkan matrik A, C dan D----15 A16 C17 DPertanyaanyangsegeramuncul adalahapakahsource code tersebut bisadigunakanuntukmenyelesaikan penjumlahan matrik yang dimensinya bukan 2x3 ? MisalnyaD = A+ C2728 BAB 2. FUNGSID =__4 3 8 65 1 2 36 7 9 1__+__2 6 7 29 1 3 85 8 4 7__Tentu saja bisa, asal indeks i bergerak dari 1 sampai 3 dan indeks jbergerak dari 1 sampai 4.Lihat source code berikut1 clear all2 clc34 A=[4 3 8 6; 5 1 2 3; 6 7 9 1]; % inisialisasi matrik A5 C=[2 6 7 2; 9 1 3 8; 5 8 4 7]; % inisialisasi matrik B67 % ---proses penjumlahan matrik----8 for i=1:39 for j=1:410 D(i,j)=A(i,j)+C(i,j);11 end12 end1314 % ---menampilkan matrik A, C dan D----15 A16 C17 DWalaupun bisa digunakan, namun cara modikasi seperti itu sangat tidak eksibel dan bere-sikosalahjikakurangteliti. Untukmenghindari resikokesalahandanagarlebiheksibel,source code tersebut perlu dioptimasi sedikit lagi menjadi1 clear all2 clc34 A=[4 3 8 6; 5 1 2 3; 6 7 9 1]; % inisialisasi matrik A5 C=[2 6 7 2; 9 1 3 8; 5 8 4 7]; % inisialisasi matrik B67 % ---proses penjumlahan matrik----8 dim=size(A);9 n=dim(1);10 m=dim(2);11 for i=1:n12 for j=1:m13 D(i,j)=A(i,j)+C(i,j);14 end15 end1617 % ---menampilkan matrik A, C dan D----18 A19 C20 DPerhatikan, adatambahan3statemenyaitumulai dari bariske-8sampai ke-10. Sementarabaris ke-11 dan ke-12 hanya mengalami sedikit perubahan. Statemen di baris ke-8 bermaksudmendeklarasikan variabel dimuntuk diisi oleh hasil perhitungan fungsi internal yang bernama2.2. FUNGSI EKSTERNAL PENJUMLAHAN MATRIK 29size.Matrik A dijadikan parameter input fungsi size.Fungsi size berguna untuk menghitungjumlahbarisdanjumlahkolomdari matrikA. Hasilnyaadalahdim(1)untukjumlahbarisdan dim(2) untuk jumlah kolom. Pada baris ke-9, variabel n dideklarasikan untuk menerimainformasi jumlah baris dari dim(1), sementara variabel mdiisi dengan informasi jumlah kolomdaridim(2)padabariske-10. Adapunbariske-11danke-12hanyamengubahangkaindeksbatas atas, masing-masing menjadi n dan m.Sekarangkalaukitabaliklagimenghitungpenjumlahanmatrikdaricontohsebelumnyayang berukuran 2x3, maka source code akan seperti ini1 clear all2 clc34 A=[3 8 5; 6 4 7]; % inisialisasi matrik A5 C=[9 5 3; 7 2 1]; % inisialisasi matrik B67 % ---proses penjumlahan matrik----8 dim=size(A);9 n=dim(1);10 m=dim(2);11 for i=1:n12 for j=1:m13 D(i,j)=A(i,j)+C(i,j);14 end15 end1617 % ---menampilkan matrik A, C dan D----18 A19 C20 DAjaib bukan!?Tidak ada statemen yang berubah kecuali hanya pada baris ke-4 dan ke-5. Pe-rubahan itu tidak bisa dihindari karena memang di kedua baris itulah deklarasi elemen-elemenmatrik A dan matrik C dilakukan.2.2 Fungsi eksternal penjumlahan matrikSaatnyakitamemasukitopiktentangpembuatanfungsieksternal. Darisourcecodeyangter-akhir tadi, mari kita ambil bagian proses penjumlahan matrik-nya saja1 dim=size(A);2 n=dim(1);3 m=dim(2);4 for i=1:n5 for j=1:m6 D(i,j)=A(i,j)+C(i,j);7 end8 endKitaakanjadikanpotongansourcecodeinimenjadifungsieksternal, denganmenambahkanstatemen function seperti ini30 BAB 2. FUNGSI1 function D=jumlah(A,C)2 dim=size(A);3 n=dim(1);4 m=dim(2);5 for i=1:n6 for j=1:m7 D(i,j)=A(i,j)+C(i,j);8 end9 endkemudian ia harus di-save dengan nama jumlah.m. Sampai dengan langkah ini kita telah mem-buat fungsi eksternal dan diberi nama fungsi jumlah.Sederhana sekali bukan?Untuk mengujikerja fungsi eksternal tersebut, coba jalankan source code berikut ini1 clear all2 clc34 A=[3 8 5; 6 4 7]; % inisialisasi matrik A5 C=[9 5 3; 7 2 1]; % inisialisasi matrik B67 % ---proses penjumlahan matrik----8 D=jumlah(A,C)910 % ---menampilkan matrik A, C dan D----11 A12 C13 Datau anda jalankan source code yang berikut ini1 clear all2 clc34 A=[4 3 8 6; 5 1 2 3; 6 7 9 1]; % inisialisasi matrik A5 C=[2 6 7 2; 9 1 3 8; 5 8 4 7]; % inisialisasi matrik B67 % ---proses penjumlahan matrik----8 D=jumlah(A,C)910 % ---menampilkan matrik A, C dan D----11 A12 C13 Datau coba iseng-iseng anda ganti matrik-nya menjadi1 clear all2 clc34 V=[4 3; 5 1]; % inisialisasi matrik V5 W=[2 6; 9 3]; % inisialisasi matrik W67 % ---proses penjumlahan matrik----8 U=jumlah(V,W)2.3. FUNGSI EKSTERNAL PERKALIAN MATRIK 31910 % ---menampilkan matrik V, W dan U----11 W12 V13 UPeriksa hasilnya, betul atau salah? Pasti betul! Kesimpulannya adalah setelah fungsi eksternalberhasil anda dapatkan, maka seketika itu pula anda tidak perlu menggubrisnya lagi.BahkanandatidakperlumengingatnamamatrikaslinyayangtertulisdifungsijumlahyaitumatrikA, matrik C dan matrik D. Ditambah lagi, source code anda menjadi terlihat lebih singkat danelegan. Dan kini, perhatian anda bisa lebih difokuskan pada deklarasi matrik-nya saja.2.3 Fungsi eksternal perkalian matrikMarikitaberalihkeperkalianmatrik. Kitaakanmembuatfungsieksternaluntukperkalianmatrik. Berikut ini adalah source code perkalian matrik hasil akhir optimasi yang telah ditulispanjang lebar pada bab sebelumnya1 clear all2 clc34 A = [3 8 5; 6 4 7]; % inisialisasi matrik A5 B = [1 3; 5 9; 2 4]; % inisialisasi matrik B67 % ---proses perkalian matrik----8 for i=1:29 for j=1:210 E(i,j)=0;11 end12 end1314 for i=1:215 for j=1:216 for k=1:317 E(i,j)=E(i,j)+A(i,k)*B(k,j);18 end19 end20 end2122 % ---menampilkan matrik A, B dan E----23 A24 B25 ESource code tersebut digunakan untuk menghitung perkalian matrik berikutE22= A23 B32Dan kita bisa sepakati simbol indeks m, n, dan p untuk men-generalisir dimensi matrikEmn= Amp Bpn32 BAB 2. FUNGSIDengan demikian, source code tersebut dapat dioptimasi menjadi1 clear all2 clc34 A = [3 8 5; 6 4 7]; % inisialisasi matrik A5 B = [1 3; 5 9; 2 4]; % inisialisasi matrik B67 % ---proses perkalian matrik----8 dim=size(A);9 m=dim(1);10 p=dim(2);11 dim=size(B);12 n=dim(2);13 for i=1:m14 for j=1:n15 E(i,j)=0;16 end17 end1819 for i=1:m20 for j=1:n21 for k=1:p22 E(i,j)=E(i,j)+A(i,k)*B(k,j);23 end24 end25 end2627 % ---menampilkan matrik A, B dan E----28 A29 B30 ESelanjutnya kita ambil bagian proses perkalian matrik nya untuk dibuat fungsi eksternal1 function E=kali(A,B)2 dim=size(A);3 m=dim(1);4 p=dim(2);5 dim=size(B);6 n=dim(2);7 for i=1:m8 for j=1:n9 E(i,j)=0;10 end11 end1213 for i=1:m14 for j=1:n15 for k=1:p16 E(i,j)=E(i,j)+A(i,k)*B(k,j);17 end18 end19 endlaludi-savedengannamakali.m,makaterciptalahfungsieksternalyangbernamafungsikali.Kemudian coba anda uji fungsi kali tersebut dengan menjalankan source code berikut2.4. FUNGSI EKSTERNAL PERKALIAN MATRIK DAN VEKTOR-KOLOM 331 clear all2 clc34 A = [3 8 5; 6 4 7]; % inisialisasi matrik A5 B = [1 3; 5 9; 2 4]; % inisialisasi matrik B67 % ---proses perkalian matrik----8 E = kali(A,B)910 % ---menampilkan matrik A, B dan E----11 A12 B13 ESilakanandaperiksahasilperhitungannya. Pastibetul! Andabisamencobaperkalianma-triklainnyadenganmenggunakansourcecodetersebut. Bahkanandabisamenggantinamamatriknya untuk selain A, B dan E.2.4 Fungsi eksternal perkalian matrik dan vektor-kolomMari kita beralih ke perkalian matrik dan vektor-kolom. Kita akan membuat fungsi eksternaluntuk perkalian matrik dan vektor-kolom. Berikut ini adalah source code perkalian matrik danvektor-kolom hasil akhir optimasi yang telah ditulis panjang lebar pada bab sebelumnya1 clear all2 clc34 A = [3 8 5; 6 4 7]; % inisialisasi matrik A5 x = [2; 3; 4]; % inisialisasi vektor x67 % ---proses perkalian matrik dan vektor----8 for i=1:29 y(i,1)=0;10 end1112 for i=1:213 for j=1:314 y(i,1)=y(i,1)+A(i,j)*x(j,1);15 end16 end1718 % ---menampilkan matrik A, B dan E----19 A20 x21 ySource code tersebut digunakan untuk menghitung perkalian matrik dan vektor-kolom berikuty21= A23 x31Dan kita bisa sepakati simbol indeks m dan n untuk men-generalisir dimensi matrikym1= Amn xn134 BAB 2. FUNGSIDengan demikian, source code tersebut dapat dioptimasi menjadi1 clear all2 clc34 A = [3 8 5; 6 4 7]; % inisialisasi matrik A5 x = [2; 3; 4]; % inisialisasi vektor x67 % ---proses perkalian matrik dan vektor----8 dim=size(A);9 m=dim(1);10 n=dim(2);11 for i=1:m12 y(i,1)=0;13 end1415 for i=1:m16 for j=1:n17 y(i,1)=y(i,1)+A(i,j)*x(j,1);18 end19 end2021 % ---menampilkan matrik A, B dan E----22 A23 x24 ySelanjutnya kita ambil bagian proses perkalian matrik dan vektor nya untuk dibuat fungsi ekster-nal1 function y=kalivektor(A,x)2 dim=size(A);3 m=dim(1);4 n=dim(2);5 for i=1:m6 y(i,1)=0;7 end89 for i=1:m10 for j=1:n11 y(i,1)=y(i,1)+A(i,j)*x(j,1);12 end13 endlalu di-save dengan nama kalivektor.m, maka terciptalah fungsi eksternal yang bernama fungsikalivektor. Kemudiancobaandaujifungsikalivektortersebutdenganmenjalankansourcecodeberikut1 clear all2 clc34 A = [3 8 5; 6 4 7]; % inisialisasi matrik A5 x = [2; 3; 4]; % inisialisasi vektor x67 % ---proses perkalian matrik dan vektor----2.5. PENUTUP 358 y = kalivektor(A,x);910 % ---menampilkan matrik A, B dan E----11 A12 xSilakanandaperiksahasilperhitungannya. Pastibetul! Andabisamencobaperkalianma-trik dan vektor-kolom dengan angka elemen yang berbeda menggunakan source code tersebut.Bahkan anda bisa mengganti nama matrik dan vektor nya untuk selain A, x dan y.2.5 PenutupAdatigapilaryangharusdikuasai olehseorangcalonprogrammer. Pertama, iaharustahubagaimanacaramendeklarasikandata. Kedua, iaharustahubagaimanamendayagunakanow-control, yangdalambabini danbabsebelumnyamenggunakanpasanganfor-end. Danketiga, ia harus bisa membuat fungsi eksternal.TidakadayangmelarangandaberalihkeFortran, ataukeDelphi, ataukeC++, ataukePython, atau bahasa pemrograman apa saja. Saran saya, ketika anda berkenalan dengan suatubahasa pemrograman, yang pertama kali anda lakukan adalah menguasai ketiga pilar itu. In-sya Allah ia akan membantu anda lebih cepat mempelajari bahasa pemrograman yang sedanganda geluti.Penguasaan atas ketiga pilar tersebut akan mengarahkan programmer untuk membuat sourcecode yang bersifat modular atau extention. Ini adalah modal untuk memasuki apa yang disebutobject oriented programming.Sesungguhnya Matlab memiliki banyak fungsi internal yang bisa langsung dipakai. Andabisa coba sendiri suatu saat nanti. Kekuatan bahasa pemrograman salah satunya terletak padaseberapa kaya dia memilik banyak fungsi. Library adalah kata lain untuk fungsi. Jadi,suatubahasa pemrograman akan semakin unggul bila dia memiliki semakin banyak library. Menurutsaya, yang terdepan saat ini masih dimenangkan oleh Python. Dengan Python, source code andaakan bisa berjalan di Windows, Linux dan Machintos serta beberapa platform lainnya.36 BAB 2. FUNGSIBab 3Metode Eliminasi GaussObjektif :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.3.1 Sistem persamaan linearSecara umum, sistem persamaan linear dinyatakan sebagai berikutPn: an1x1 + an2x2 + ... + annxn= bn(3.1)dimana a dan b merupakan konstanta, x adalah variable, n = 1, 2, 3, ....Berikut ini adalah sistem persamaan linear yang terdiri dari empat buah persamaan yaituP1, P2, P3, dan P4P1: x1+ x2+ 3x4= 4P2: 2x1+ x2 x3+ x4= 1P3: 3x1 x2 x3+ 2x4= -3P4: x1+ 2x2+ 3x3 x4= 4Problem dari sistem persamaan linear adalah bagaimana mencari nilai pengganti bagi vari-abel x1, x2, x3, dan x4 sehingga semua persamaan diatas menjadi benar.Langkah awal penye-lesaian problem tersebut adalah dengan melakukan penyederhanaan sistem persamaan linear.3.2 Teknik penyederhanaanAdabanyakjalanuntukmenyederhanakansistempersamaanlinear. Namuntantangannya,kita ingin agar pekerjaan ini dilakukan oleh komputer. Oleh karena itu, kita harus menciptakan3738 BAB 3. METODE ELIMINASI GAUSSalgoritmayangnantinyabisaberjalandi komputer. Untukmencapai tujuanitu, kitaakanberpatokan pada tiga buah aturan operasi matematika, yaituPersamaan Pi dapat dikalikan dengan sembarang konstanta , lalu hasilnya ditempatkandi posisi persamaan Pi. Simbol operasi ini adalah (Pi) (Pi). ContohP1: x1 + x2 + 3x4= 4jika = 2, maka2P1: 2x1 + 2x2 + 6x4= 8PersamaanPjdapatdikalikandengansembarangkonstantakemudiandijumlahkandengan persamaan Pi, lalu hasilnya ditempatkan di posisi persamaan Pi. Simbol operasiini adalah (PiPj) (Pi). ContohP2: 2x1 + x2x3 + x4= 12P1: 2x1 + 2x2 + 6x4= 8maka operasi (P22P1) (P2) mengakibatkan perubahan pada P2 menjadiP2: x2x35x4= 7Dengancaraini,makavariabelx1berhasildihilangkandariP2. Upayauntukmenghi-langkan suatu variabel merupakan tahapan penting dalam metode Eliminasi Gauss.Persamaan Pi dan Pjdapat bertukar posisi.Simbol operasi ini adalah (Pi) (Pj).Con-tohP2: 2x1 + x2x3 + x4= 1P3: 3x1x2x3 + 2x4= 3maka operasi (P2) (P3) mengakibatkan pertukaran posisi masing-masing persamaan,menjadiP2: 3x1x2x3 + 2x4= 3P3: 2x1 + x2x3 + x4= 13.2.1 Cara menghilangkan sebuah variabelSebelum dilanjut, saya ingin mengajak anda untuk fokus memahami aturan operasi yang ked-ua. Misalnya ada 2 persamaan linear yaituP1: 3x1 + 2x25x3 + 8x4= 3P2: 4x1 + 7x2x3 + 6x4= 93.2. TEKNIK PENYEDERHANAAN 39Kemudian anda diminta untuk menghilangkan variabel x1dari P2. Itu artinya, anda dimintauntukmemodikasiP2sedemikianrupasehinggadidapatP2yangbaru, yangdidalamnyatidak ada x1.Berdasarkan rumus operasi (PiPj) (Pi), maka operasi yang tepat adalah (P243P1) (P2). Perhatikan! Bilangan , yaitu43, harus dikalikan dengan P1, BUKAN dengan P2. Sedan-gkan angka43adalah satu-satunya angka yang bisa menghapus variabel x1dari P2lewat op-erasi (P243P1). Selengkapnya adalah sebagai berikutP2: 4x1 + 7x2x3 + 6x4= 943P1:433x1 +432x2435x3 +438x4=433Kemudian, hasil operasi (P243P1) disimpan sebagai P2 yang baruP2:_4 433_x1 +_7 432_x2_1 435_x3 +_6 438_x4=_9 433_Dengan sendirinya x1 akan lenyap dari P2. Mudah-mudahan jelas sampai disini. Demikianlahcara untuk menghilangkan x1 dari P2.3.2.2 Permainan indeksSekarang, marikitatinjauhalyangsama, yaitumenghilangkanx1dariP2, namunmenggu-nakan permainan indeks. Secara umum, P1 dan P2 bisa dinyatakan sebagaiP1: a11x1 + a12x2 + a13x3 + a14x4= a15P2: a21x1 + a22x2 + a23x3 + a24x4= a25Agar x1 hilang dari P2, operasi yang benar adalah (P2P1) (P2), dimana =a21a11. Dengandemikian, P2 yang baru akan memenuhiP2:_a21a21a11a11_x1+_a22a21a11a12_x2+_a23a21a11a13_x3+_a24a21a11a14_x4=_a25a21a11a15_Perhatikanlahvariasiindekspadapersamaandiatas. Semogaintuisiandabisamenangkapkeberadaan suatu pola perubahan indeks. Jika belum, mari kita kembangkan persoalan ini.Sekarang saya ketengahkan kehadapan anda tiga buah persamaan, yaitu P1, P2 dan P3P1: a11x1 + a12x2 + a13x3 + a14x4= a15P2: a21x1 + a22x2 + a23x3 + a24x4= a25P3: a31x1 + a32x2 + a33x3 + a34x4= a35Bagaimana cara menghilangkan x1 dari P3 dengan memanfaatkan P1??40 BAB 3. METODE ELIMINASI GAUSSBegini caranya, (P3P1) (P3), dengan =a31a11..P3:_a31a31a11a11_x1+_a32a31a11a12_x2+_a33a31a11a13_x3+_a34a31a11a14_x4=_a35a31a11a15_Mudah-mudahan, pola perubahan indeksnya semakin jelas terlihat. Selanjutnya jika ada per-samaan P4 yang ingin dihilangkan x1nya dengan memanfaatkan P1, bagaimana caranya?Tentu saja operasinya adalah (P4P1) (P4), dengan =a41a11P4:_a41a41a11a11_x1+_a42a41a11a12_x2+_a43a41a11a13_x3+_a44a41a11a14_x4=_a45a41a11a15_3.3 Triangularisasi dan Substitusi Mundur3.3.1 Contoh pertamaSekarang,mari kita kembali kepada sistem persamaan linear yang sudah ditulis di awal babiniP1: x1+ x2+ 3x4= 4P2: 2x1+ x2 x3+ x4= 1P3: 3x1 x2 x3+ 2x4= -3P4: x1+ 2x2+ 3x3 x4= 4Sekali lagi saya tegaskan bahwa problem dari sistem persamaan linear adalah bagaimanamendapatkan angka-angka yang bisa menggantikan variabel x1, x2, x3, dan x4 sehingga semuapersamaan di atas menjadi benar. Dengan berpegang pada ketiga teknik penyederhanaan tadi,maka sistem persamaan linear di atas dapat disederhanakan dengan langkah-langkah berikutini:1. Gunakan persamaan P1 untuk menghilangkan variabel x1 dari persamaan P2, P3 dan P4dengan cara (P22P1) (P2), (P33P1) (P3) dan (P4 + P1) (P4).Hasilnya akanseperti iniP1: x1 + x2 + 3x4= 4,P2: x2x35x4= 7,P3: 4x2x37x4= 15,P4: 3x2 + 3x3 + 2x4= 8Silakan anda cermati bahwa x1 kini telah hilang dari P2, P3 dan P4.2. GunakanpersamaanP2untukmenghilangkanvariabel x2dari persamaanP3danP43.3. TRIANGULARISASI DAN SUBSTITUSI MUNDUR 41dengan cara (P34P2) (P3) dan (P4 + 3P2) (P4). Hasilnya akan seperti iniP1: x1 + x2 + 3x4= 4,P2: x2x35x4= 7,P3: 3x3 + 13x4= 13,P4: 13x4= 13Kalau x3 masih ada di persamaan P4, dibutuhkan satu operasi lagi untuk menghilangkan-nya. Namun hasil operasi pada langkah ke-2 ternyata sudah otomatis menghilangkan x3dari P4.Bentuk akhir dari sistem persamaan linear di atas, dikenal sebagai bentuk trian-gular.Sampai denganlangkahke-2ini, kitaberhasil mendapatkansistempersamaanlinearyanglebihsederhana. Apayangdimaksuddengansederhanadalamkonteksini? Su-atu sistem persamaan linear dikatakan sederhana bila kita bisa mendapatkan seluruh ni-lai pengganti variabelnya dengan cara yang lebih mudah atau dengan usaha yang tidakmemakan waktu lama dibandingkan sebelum disederhanakan.3. Selanjutnya kita jalankan proses backward-substitution untuk mendapatkan angka-angkapengganti bagi x1, x2, x3dan x4. Melalui proses backward-substitution, yang pertamakali didapat adalah angka pengganti bagi variabel x4, kemudian x3, lalu diikuti x2, danakhirnya x1. Silakan cermati yang berikut iniP4: x4= 1313= 1,P3: x3=13(13 13x4) =13(13 13) = 0,P2: x2= (7 + 5x4 + x3) = (7 + 5 + 0) = 2,P1: x1= 4 3x4x2= 4 3 2 = 1Jadisolusinyaadalahx1= 1, x2=2, x3=0danx4=1. Cobasekarangandacek,apakah semua solusi ini cocok dan tepat bila dimasukan ke sistempersamaan linear yangpertama, yaitu yang belum disederhanakan?OK, mudah-mudahanngerti ya... Kalaubelumpaham, cobadibacasekali lagi. Atau,sekarang kita beralih kecontoh yang lain.42 BAB 3. METODE ELIMINASI GAUSS3.3.2 Contoh keduaDiketahui sistem persamaan linear, terdiri dari empat buah persamaan yaitu P1, P2, P3, dan P4seperti berikut ini:P1: x1 x2+ 2x3 x4= -8P2: 2x1 2x2+ 3x3 3x4= -20P3: x1+ x2+ x3= -2P4: x1 x2+ 4x3+ 3x4= 4Seperti contoh pertama, solusi sistempersamaan linear di atas akan dicari dengan langkah-langkah berikut ini:1. Gunakan persamaan P1untuk menghilangkan x1dari persamaan P2, P3dan P4dengancara (P22P1) (P2), (P3P1) (P3) dan (P4P1) (P4). Hasilnya akan seperti iniP1: x1x2 + 2x3x4= 8,P2: x3x4= 4,P3: 2x2x3 + x4= 6,P4: 2x3 + 4x4= 12Perhatikan persamaan P2! Akibat dari langkah yang pertama tadi, ternyata tidak hanyax1saja yang hilang dari persamaan P2, variabel x2pun turut hilang dari persamaan P2.Kondisi ini bisa menggagalkan proses triangularisasi. Untuk itu, posisi P2 mesti ditukardenganpersamaanyangberadadibawahnya, yangmasihmemilikivariabelx2. Makayang paling cocok adalah ditukar dengan P3.2. Tukar posisi persamaan P2 dengan persamaan P3, (P2 P3). Hasilnya akan seperti iniP1: x1x2 + 2x3x4= 8,P2: 2x2x3 + x4= 6,P3: x3x4= 4,P4: 2x3 + 4x4= 123. Agarsistempersamaanlineardi atasmenjadi berbentuktriangular, makakitaharusmenghilangkan variabel x3dari persamaan P4. Karenanya, gunakan persamaan P3un-tuk menghilangkan x3 dari persamaan P4 dengan cara (P4 +2P3) (P4). Hasilnya akanseperti iniP1: x1x2 + 2x3x4= 8,P2: 2x2x3 + x4= 6,P3: x3x4= 4,P4: 2x4= 43.4. MATRIK DAN ELIMINASI GAUSS 43Sampai disini proses triangularisasi telah selesai.4. Selanjutnya adalah proses backward-substitution. Melalui proses ini, yang pertama kalididapat solusinya adalah x4, kemudian x3, lalu diikuti x2, dan akhirnya x1.P4: x4=42= 2,P3: x3= 4 + x41= 2,P2: x2=6 + x3x42= 3,P1: x1= 8 + x22x3 + x4= 7Jadi solusinya adalah x1= 7, x2= 3, x3= 2 dan x4= 2.Berdasarkan kedua contoh di atas, untuk mendapatkan solusi sistem persamaan linear, diper-lukan operasi triangularisasi dan proses backward-substitution. Kata backward-substitutionkalau diterjemahkan kedalam bahasa indonesia, menjadi substitusi-mundur. Gabungan pros-es triangularisasi dan substitusi-mundur untuk menyelesaikan sistem persamaan linear dike-nal sebagai metode Eliminasi Gauss.3.4 Matrik dan Eliminasi Gauss3.4.1 Matrik AugmentasiSejumlahmatrikbisadigunakanuntukmenyatakansuatusistempersamaanlinear. Sejenak,mari kita kembali lagi melihat sistem persamaan linear secara umum seperti berikut ini:a11x1 + a12x2 + . . . + a1nxn= b1a21x1 + a22x2 + . . . + a2nxn= b2. . . . . . . . . . . . . . . = . . .. . . . . . . . . . . . . . . = . . .an1x1 + an2x2 + . . . + annxn= bnSementara, kalau dinyatakan dalam bentuk operasi matrik, maka akan seperti ini:__a11a12. . . a1na21a22. . . a2n.........an1an2. . . ann____x1x2...xn__=__b1b2...bn__(3.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-44 BAB 3. METODE ELIMINASI GAUSSran n x (n + 1) seperti berikut ini:__a11a12. . . a1n| b1a21a22. . . a2n| b2......... |...an1an2. . . ann| bn__=__a11a12. . . a1n| a1,n+1a21a22. . . a2n| a2,n+1......... |...an1an2. . . ann| an,n+1__(3.3)Inilah source code Matlab untuk membentuk matrik augmentasi yang terdiri atas matrik Adanvektor b,1 clear all2 clc34 %---- inisialisasi matrik A ----5 A = [1 1 0 36 2 1 -1 17 3 -1 -1 28 -1 2 3 -1];910 %---- inisialisasi vektor b ----11 b = [4 ; 1 ; -3 ; 4];1213 %---- membentuk matrik augmentasi ----14 dim = size(A);15 n = dim(1);16 for i = 1:n17 A(i,n+1) = b(i);18 end3.4.2 Penerapan pada contoh pertamaPada contoh pertama di atas, diketahui sistem persamaan linear yang terdiri dari empat buahpersamaan yaitu P1, P2, P3, dan P4P1: x1+ x2+ 3x4= 4P2: 2x1+ x2 x3+ x4= 1P3: 3x1 x2 x3+ 2x4= -3P4: x1+ 2x2+ 3x3 x4= 4Sistem persamaan linear tersebut dapat dinyatakan dalam operasi matrik__1 1 0 32 1 1 13 1 1 21 2 3 1____x1x2x3x4__=__4134__Setelah itu matrik augment disusun seperti ini (perhatikan angka-angka indeks pada matriks3.4. MATRIK DAN ELIMINASI GAUSS 45disebelahnya)__1 1 0 3 | 42 1 1 1 | 13 1 1 2 | 31 2 3 1 | 4____a11a12a13a14| a15a21a22a23a24| a25a31a32a33a34| a35a41a42a43a44| a45__Kemudiankitalakukanoperasitriangularisaiterhadapmatrikaugment,dimulaidarikolompertama (yang tujuannya untuk menghilangkan variabel x1 dari P2, P3, dan P4), yaituP2:_a21a21a11a11_x1+_a22a21a11a12_x2+_a23a21a11a13_x3+_a24a21a11a14_x4=_a25a21a11a15_P3:_a31a31a11a11_x1+_a32a31a11a12_x2+_a33a31a11a13_x3+_a34a31a11a14_x4=_a35a31a11a15_P4:_a41a41a11a11_x1+_a42a41a11a12_x2+_a43a41a11a13_x3+_a44a41a11a14_x4=_a45a41a11a15_SekarangakansayatulissourcecodeMatlabuntukmenyelesaikanperhitungandiatas. Saransaya, anda jangan hanya duduk sambil membaca buku ini, kalau bisa nyalakan komputer/laptopdan ketik ulang source-code ini agar anda memperoleh feeling-nya! OK, mari kita mulai..1 clear all2 clc34 %---- inisialisasi matrik A ----5 A = [1 1 0 36 2 1 -1 17 3 -1 -1 28 -1 2 3 -1];910 %---- inisialisasi vektor b ----11 b = [4 ; 1 ; -3 ; 4];1213 %---- membentuk matrik augmentasi ----14 dim = size(A);15 n = dim(1);16 for i = 1:n17 A(i,n+1) = b(i);18 end1920 %---- menghilangkan variabel x1 ----21 m=A(2,1)/A(1,1); % huruf m mewakili simbol lambda22 A(2,1)=A(2,1)-m*A(1,1);23 A(2,2)=A(2,2)-m*A(1,2);24 A(2,3)=A(2,3)-m*A(1,3);25 A(2,4)=A(2,4)-m*A(1,4);26 A(2,5)=A(2,5)-m*A(1,5);2728 m=A(3,1)/A(1,1);29 A(3,1)=A(3,1)-m*A(1,1);30 A(3,2)=A(3,2)-m*A(1,2);31 A(3,3)=A(3,3)-m*A(1,3);46 BAB 3. METODE ELIMINASI GAUSS32 A(3,4)=A(3,4)-m*A(1,4);33 A(3,5)=A(3,5)-m*A(1,5);3435 m=A(4,1)/A(1,1);36 A(4,1)=A(4,1)-m*A(1,1);37 A(4,2)=A(4,2)-m*A(1,2);38 A(4,3)=A(4,3)-m*A(1,3);39 A(4,4)=A(4,4)-m*A(1,4);40 A(4,5)=A(4,5)-m*A(1,5);Hasilnya akan seperti ini__1 1 0 3 | 40 1 1 5 | 70 4 1 7 | 150 3 3 2 | 8____a11a12a13a14| a15a21a22a23a24| a25a31a32a33a34| a35a41a42a43a44| a45__Padakolompertama, seluruhelemenberubahmenjadinol(a21=0, a31=0, dana41=0)kecuali elemen yang paling atas a11.Itu berarti kita sudah menghilangkan variabel x1 dari P2,P3, dan P4. Sekarang dilanjutkan ke kolom kedua, dengan operasi yang hampir sama, untukmembuat elemen a32 dan a42 bernilai nolP3:_a31a32a22a21_x1+_a32a32a22a22_x2+_a33a32a22a23_x3+_a34a32a22a24_x4=_a35a32a22a25_P4:_a41a42a22a21_x1+_a42a42a22a22_x2+_a43a42a22a23_x3+_a44a42a22a24_x4=_a45a42a22a25_Source-code berikut ini adalah kelanjutan dari source-code diatas. Jadi jangan dipisah dalam lelain!!!1 m=A(3,2)/A(2,2);2 A(3,1)=A(3,1)-m*A(2,1);3 A(3,2)=A(3,2)-m*A(2,2);4 A(3,3)=A(3,3)-m*A(2,3);5 A(3,4)=A(3,4)-m*A(2,4);6 A(3,5)=A(3,5)-m*A(2,5);78 m=A(4,2)/A(2,2);9 A(4,1)=A(4,1)-m*A(2,1);10 A(4,2)=A(4,2)-m*A(2,2);11 A(4,3)=A(4,3)-m*A(2,3);12 A(4,4)=A(4,4)-m*A(2,4);13 A(4,5)=A(4,5)-m*A(2,5);14Hasilnyaakansepertidibawahini. Ituberartikitatelahmenghilangkanvariabelx2dariP3,3.4. MATRIK DAN ELIMINASI GAUSS 47dan P4; bahkan tanpa disengaja x3 juga hilang dari P4. Inilah bentuk triangular__1 1 0 3 | 40 1 1 5 | 70 0 3 13 | 130 0 0 13 | 13____a11a12a13a14| a15a21a22a23a24| a25a31a32a33a34| a35a41a42a43a44| a45__Walaupun x3 sudah hilang dari P4, sebaiknya source-code penghapusan x3 dari P4 tetap dita-mbahkan pada source-code sebelumnya agar source-code tersebut menjadi lengkap.1 m=A(4,3)/A(3,3);2 A(4,1)=A(4,1)-m*A(3,1);3 A(4,2)=A(4,2)-m*A(3,2);4 A(4,3)=A(4,3)-m*A(3,3);5 A(4,4)=A(4,4)-m*A(3,4);6 A(4,5)=A(4,5)-m*A(3,5);Dengan memperhatikan angka-angka indeks pada matrik augment di atas, kita akan men-coba membuat rumusan proses substitusi-mundur untuk mendapatkan seluruh nilai penggan-ti variabel x. Dimulai dari x4,x4=a45a44= 1313= 1lalu dilanjutkan dengan x3, x2, dan x1.x3=a35a34x4a33=13 [(13)(1)]3= 0x2=a25(a23x3 + a24x4)a22=(7) [(1)(0) + (5)(1)](1)= 2x1=a15(a12x2 + a13x3 + a14x4)a11=4 [(1)(2) + (0)(0) + (3)(1)]1= 1Inilah source code proses substitusi mundur sesuai rumusan di atas1 x(4,1)=A(4,5)/A(4,4);2 x(3,1)=(A(3,5)-A(3,4)*x(4,1))/A(3,3);3 x(2,1)=(A(2,5)-(A(2,3)*x(3,1)+A(2,4)*x(4,1)))/A(2,2);4 x(1,1)=(A(1,5)-(A(1,2)*x(2,1)+A(1,3)*x(3,1)+A(1,4)*x(4,1)))/A(1,1);3.4.3 Source-code dasarProses triangularisasi dan substitusi-mundur dibakukan menjadi algoritma metode eliminasigauss. Berikut ini saya tampilkan source-code dalam Matlab sebagaimana langkah-langkah di-atas1 clear all2 clc34 %---- inisialisasi matrik A ----5 A = [1 1 0 348 BAB 3. METODE ELIMINASI GAUSS6 2 1 -1 17 3 -1 -1 28 -1 2 3 -1];910 %---- inisialisasi vektor b ----11 b = [4 ; 1 ; -3 ; 4];1213 %---- membentuk matrik augmentasi ----14 dim = size(A);15 n = dim(1);16 for i = 1:n17 A(i,n+1) = b(i);18 end1920 %==== Proses Triangularisasi ====21 %---- menghilangkan variabel x1 dari P2, P3 dan P4 ----22 m=A(2,1)/A(1,1); % huruf m mewakili simbol lambda23 A(2,1)=A(2,1)-m*A(1,1);24 A(2,2)=A(2,2)-m*A(1,2);25 A(2,3)=A(2,3)-m*A(1,3);26 A(2,4)=A(2,4)-m*A(1,4);27 A(2,5)=A(2,5)-m*A(1,5);2829 m=A(3,1)/A(1,1);30 A(3,1)=A(3,1)-m*A(1,1);31 A(3,2)=A(3,2)-m*A(1,2);32 A(3,3)=A(3,3)-m*A(1,3);33 A(3,4)=A(3,4)-m*A(1,4);34 A(3,5)=A(3,5)-m*A(1,5);3536 m=A(4,1)/A(1,1);37 A(4,1)=A(4,1)-m*A(1,1);38 A(4,2)=A(4,2)-m*A(1,2);39 A(4,3)=A(4,3)-m*A(1,3);40 A(4,4)=A(4,4)-m*A(1,4);41 A(4,5)=A(4,5)-m*A(1,5);4243 %---- menghilangkan variabel x2 dari P3 dan P4 ----44 m=A(3,2)/A(2,2);45 A(3,1)=A(3,1)-m*A(2,1);46 A(3,2)=A(3,2)-m*A(2,2);47 A(3,3)=A(3,3)-m*A(2,3);48 A(3,4)=A(3,4)-m*A(2,4);49 A(3,5)=A(3,5)-m*A(2,5);5051 m=A(4,2)/A(2,2);52 A(4,1)=A(4,1)-m*A(2,1);53 A(4,2)=A(4,2)-m*A(2,2);54 A(4,3)=A(4,3)-m*A(2,3);55 A(4,4)=A(4,4)-m*A(2,4);56 A(4,5)=A(4,5)-m*A(2,5);5758 %---- menghilangkan variabel x3 dari P4 ----59 m=A(4,3)/A(3,3);60 A(4,1)=A(4,1)-m*A(3,1);61 A(4,2)=A(4,2)-m*A(3,2);62 A(4,3)=A(4,3)-m*A(3,3);63 A(4,4)=A(4,4)-m*A(3,4);64 A(4,5)=A(4,5)-m*A(3,5);3.4. MATRIK DAN ELIMINASI GAUSS 496566 %==== Proses Substitusi Mundur ====67 x(4,1)=A(4,5)/A(4,4);68 x(3,1)=(A(3,5)-A(3,4)*x(4,1))/A(3,3);69 x(2,1)=(A(2,5)-(A(2,3)*x(3,1)+A(2,4)*x(4,1)))/A(2,2);70 x(1,1)=(A(1,5)-(A(1,2)*x(2,1)+A(1,3)*x(3,1)+A(1,4)*x(4,1)))/A(1,1);3.4.4 Optimasi source codeSingkatnya, tujuan dari dilakukannya proses optimasi adalah untuk memperkecil jumlah barisstatemen pada source code dasar. Seperti kita ketahui bersama, source code dasar eliminasi gaussyangtertulis di atas terdiri atas 70 barisstatemen,sehingga perlu dilakukan prosesoptimasiuntuk memperkecil jumlah baris statemen (tanpa menyalahi hasil perhitungan).3.4.4.1 Optimasi source code bagian triangularLangkah optimasi source code bagian triangularisasi dimulai dari baris statemen ke 23 hinggake 27, yaitum=A(2,1)/A(1,1); % huruf m mewakili simbol lambdaA(2,1)=A(2,1)-m*A(1,1);A(2,2)=A(2,2)-m*A(1,2);A(2,3)=A(2,3)-m*A(1,3);A(2,4)=A(2,4)-m*A(1,4);A(2,5)=A(2,5)-m*A(1,5);Bagian ini dapat dioptimasi menjadifor k = 1:5A(2,k) = A(2,k)-m*A(1,k);endLangkah optimasi yang sama juga bisa diterapkan untuk rangkaian baris statemen dari bariske30hingga34danbariske37hingga41(yangterdapatpadasource-codedasar), sehinggamasing-masing akan menjadifor k = 1:5A(3,k) = A(3,k)-m*A(1,k);enddanfor k = 1:5A(4,k) = A(4,k)-m*A(1,k);endTernyata, polaoptimasi yangsamajugamasihbisaditemui mulai bariske45hinggabarisstatemenke64. Dengandemikian, setidaknya, tahapanpertamainiakanmenghasilsource-code baru hasil optimasi awal yaitu50 BAB 3. METODE ELIMINASI GAUSS1 clear all2 clc34 %---- inisialisasi matrik A ----5 A = [1 1 0 36 2 1 -1 17 3 -1 -1 28 -1 2 3 -1];910 %---- inisialisasi vektor b ----11 b = [4 ; 1 ; -3 ; 4];1213 %---- membentuk matrik augmentasi ----14 dim = size(A);15 n = dim(1);16 for i = 1:n17 A(i,n+1) = b(i);18 end1920 %==== Proses Triangularisasi ====21 %---- menghilangkan variabel x1 dari P2, P3 dan P4 ----22 m=A(2,1)/A(1,1); % huruf m mewakili simbol lambda23 for k = 1:524 A(2,k) = A(2,k)-m*A(1,k);25 end2627 m=A(3,1)/A(1,1);28 for k = 1:529 A(3,k) = A(3,k)-m*A(1,k);30 end3132 m=A(4,1)/A(1,1);33 for k = 1:534 A(4,k) = A(4,k)-m*A(1,k);35 end3637 %---- menghilangkan variabel x2 dari P3 dan P4 ----38 m=A(3,2)/A(2,2);39 for k = 1:540 A(3,k) = A(3,k)-m*A(2,k);41 end4243 m=A(4,2)/A(2,2);44 for k = 1:545 A(4,k) = A(4,k)-m*A(2,k);46 end4748 %---- menghilangkan variabel x3 dari P4 ----49 m=A(4,3)/A(3,3);50 for k = 1:551 A(4,k) = A(4,k)-m*A(3,k);52 end5354 %==== Proses Substitusi Mundur ====55 x(4,1)=A(4,5)/A(4,4);56 x(3,1)=(A(3,5)-A(3,4)*x(4,1))/A(3,3);57 x(2,1)=(A(2,5)-(A(2,3)*x(3,1)+A(2,4)*x(4,1)))/A(2,2);58 x(1,1)=(A(1,5)-(A(1,2)*x(2,1)+A(1,3)*x(3,1)+A(1,4)*x(4,1)))/A(1,1);3.4. MATRIK DAN ELIMINASI GAUSS 51Sekarang, source-code eliminasi gauss telah mengecil menjadi hanya 58 baris statemen saja (se-belumnya ada 70 baris statemen). Namun ini belum merupakan akhir proses optimasi. Source-code yang terakhir ini masih bisa dioptimasi kembali.Cobaandaperhatikanpolayangnampakmulaipadabarisstatemenke-22hinggake-35.Optimasi tahap dua dilakukan untuk menyederhanakan bagian tersebut, yaitufor j = 2:4m=A(j,1)/A(1,1);for k = 1:5A(j,k) = A(j,k)-m*A(1,k);endendDemikian halnya untuk baris ke-38 sampai baris ke-46for j = 3:4m=A(j,2)/A(2,2);for k = 1:5A(j,k) = A(j,k)-m*A(2,k);endendserta baris ke-49 hingga baris ke-52for j = 4:4m=A(j,3)/A(3,3);for k = 1:5A(j,k) = A(j,k)-m*A(3,k);endendDengan demikian hasil optimasi sampai dengan tahap ini adalah1 clear all2 clc34 %---- inisialisasi matrik A ----5 A = [1 1 0 36 2 1 -1 17 3 -1 -1 28 -1 2 3 -1];910 %---- inisialisasi vektor b ----11 b = [4 ; 1 ; -3 ; 4];1213 %---- membentuk matrik augmentasi ----14 dim = size(A);15 n = dim(1);16 for i = 1:n17 A(i,n+1) = b(i);18 end1920 %==== Proses Triangularisasi ====21 %---- menghilangkan variabel x1 dari P2, P3 dan P4 ----52 BAB 3. METODE ELIMINASI GAUSS22 for j = 2:423 m=A(j,1)/A(1,1);24 for k = 1:525 A(j,k) = A(j,k)-m*A(1,k);26 end27 end2829 %---- menghilangkan variabel x2 dari P3 dan P4 ----30 for j = 3:431 m=A(j,2)/A(2,2);32 for k = 1:533 A(j,k) = A(j,k)-m*A(2,k);34 end35 end3637 %---- menghilangkan variabel x3 dari P4 ----38 for j = 4:439 m=A(j,3)/A(3,3);40 for k = 1:541 A(j,k) = A(j,k)-m*A(3,k);42 end43 end4445 %==== Proses Substitusi Mundur ====46 x(4,1)=A(4,5)/A(4,4);47 x(3,1)=(A(3,5)-A(3,4)*x(4,1))/A(3,3);48 x(2,1)=(A(2,5)-(A(2,3)*x(3,1)+A(2,4)*x(4,1)))/A(2,2);49 x(1,1)=(A(1,5)-(A(1,2)*x(2,1)+A(1,3)*x(3,1)+A(1,4)*x(4,1)))/A(1,1);Jika saya munculkan indeks i pada bagian proses triangularisasi%==== Proses Triangularisasi ====%---- menghilangkan variabel x1 dari P2, P3 dan P4 ----i = 1;for j = i+1:4m=A(j,i)/A(i,i);for k = 1:5A(j,k) = A(j,k)-m*A(i,k);endend%---- menghilangkan variabel x2 dari P3 dan P4 ----i = 2;for j = i+1:4m=A(j,i)/A(i,i);for k = 1:5A(j,k) = A(j,k)-m*A(i,k);endend%---- menghilangkan variabel x3 dari P4 ----i = 3;for j = i+1:4m=A(j,i)/A(i,i);for k = 1:5A(j,k) = A(j,k)-m*A(i,k);endend3.4. MATRIK DAN ELIMINASI GAUSS 53maka saya bisa gabungkan semua i tersebut menjadi%==== Proses Triangularisasi ====for i = 1:3for j = i+1:4m=A(j,i)/A(i,i);for k = 1:5A(j,k) = A(j,k)-m*A(i,k);endendendSehingga hasil optimasi sampai tahapan ini telah mengecilkan jumlah baris statemen dari sem-ula 70 baris menjadi hanya 34 baris saja. Inilah hasilnya1 clear all2 clc34 %---- inisialisasi matrik A ----5 A = [1 1 0 36 2 1 -1 17 3 -1 -1 28 -1 2 3 -1];910 %---- inisialisasi vektor b ----11 b = [4 ; 1 ; -3 ; 4];1213 %---- membentuk matrik augmentasi ----14 dim = size(A);15 n = dim(1);16 for i = 1:n17 A(i,n+1) = b(i);18 end1920 %==== Proses Triangularisasi ====21 for i = 1:322 for j = i+1:423 m=A(j,i)/A(i,i);24 for k = 1:525 A(j,k) = A(j,k)-m*A(i,k);26 end27 end28 end2930 %==== Proses Substitusi Mundur ====31 x(4,1)=A(4,5)/A(4,4);32 x(3,1)=(A(3,5)-A(3,4)*x(4,1))/A(3,3);33 x(2,1)=(A(2,5)-(A(2,3)*x(3,1)+A(2,4)*x(4,1)))/A(2,2);34 x(1,1)=(A(1,5)-(A(1,2)*x(2,1)+A(1,3)*x(3,1)+A(1,4)*x(4,1)))/A(1,1);3.4.4.2 Optimasi source code bagian substitusi-mundurOK, sekarangkitaberalihkebagiansubstitusi-mundur. Sayamulai denganmemodikasibagian tersebut menjadi seperti ini54 BAB 3. METODE ELIMINASI GAUSS%==== Proses Substitusi Mundur ====x(4,1)=A(4,5)/A(4,4);S = 0;S = S + A(3,4)*x(4,1);x(3,1)=(A(3,5)-S)/A(3,3);S = 0;S = S + A(2,3)*x(3,1);S = S + A(2,4)*x(4,1);x(2,1)=(A(2,5)-S)/A(2,2);S = 0;S = S + A(1,2)*x(2,1);S = S + A(1,3)*x(3,1);S = S + A(1,4)*x(4,1);x(1,1)=(A(1,5)-S)/A(1,1);Dari situ, saya modikasi kembali menjadi seperti ini%==== Proses Substitusi Mundur ====x(4,1)=A(4,5)/A(4,4);S = 0;for k = 4:4S = S + A(3,k)*x(k,1);endx(3,1)=(A(3,5)-S)/A(3,3);S = 0;for k = 3:4S = S + A(2,k)*x(k,1);endx(2,1)=(A(2,5)-S)/A(2,2);S = 0;for k = 2:4S = S + A(1,k)*x(k,1);endx(1,1)=(A(1,5)-S)/A(1,1);Lalu saya munculkan indeks i, coba perhatikan dengan teliti%==== Proses Substitusi Mundur ====x(4,1)=A(4,5)/A(4,4);i = 3;S = 0;for k = i+1:4S = S + A(i,k)*x(k,1);endx(i,1)=(A(i,5)-S)/A(i,i);i = 2;S = 0;for k = i+1:4S = S + A(i,k)*x(k,1);3.4. MATRIK DAN ELIMINASI GAUSS 55endx(i,1)=(A(i,5)-S)/A(i,i);i = 1;S = 0;for k = i+1:4S = S + A(i,k)*x(k,1);endx(i,1)=(A(1,5)-S)/A(i,i);dengan demikian saya bisa ringkas menjadi seperti ini%==== Proses Substitusi Mundur ====x(4,1)=A(4,5)/A(4,4);for i = 3:-1:1S = 0;for k = i+1:4S = S + A(i,k)*x(k,1);endx(i,1)=(A(i,5)-S)/A(i,i);endDan inilah hasil optimasi sampai tahapan yang terakhir1 clear all2 clc34 %---- inisialisasi matrik A ----5 A = [1 1 0 36 2 1 -1 17 3 -1 -1 28 -1 2 3 -1];910 %---- inisialisasi vektor b ----11 b = [4 ; 1 ; -3 ; 4];1213 %---- membentuk matrik augmentasi ----14 dim = size(A);15 n = dim(1);16 for i = 1:n17 A(i,n+1) = b(i);18 end1920 %==== Proses Triangularisasi ====21 for i = 1:322 for j = i+1:423 m=A(j,i)/A(i,i);24 for k = 1:525 A(j,k) = A(j,k)-m*A(i,k);26 end27 end28 end2930 %==== Proses Substitusi Mundur ====31 x(4,1)=A(4,5)/A(4,4);3256 BAB 3. METODE ELIMINASI GAUSS33 for i = 3:-1:134 S = 0;35 for k = i+1:436 S = S + A(i,k)*x(k,1);37 end38 x(i,1)=(A(i,5)-S)/A(i,i);39 end3.4.5 Pentingnya nilai nPadabariske-15,nilainadalahnilaiukuranmatrikAyangberbentukbujursangkar. Dalamcontohini,nbernilai4. Denganmenggunakanangka4(ataun)sebagaiacuan,makasourcecode hasil optimasi terakhir dimodikasi kembali menjadi seperti ini1 clear all2 clc34 %---- inisialisasi matrik A ----5 A = [1 1 0 36 2 1 -1 17 3 -1 -1 28 -1 2 3 -1];910 %---- inisialisasi vektor b ----11 b = [4 ; 1 ; -3 ; 4];1213 %---- membentuk matrik augmentasi ----14 dim = size(A);15 n = dim(1);16 for i = 1:n17 A(i,n+1) = b(i);18 end1920 %==== Proses Triangularisasi ====21 for i = 1:n-122 for j = i+1:n23 m=A(j,i)/A(i,i);24 for k = 1:n+125 A(j,k) = A(j,k)-m*A(i,k);26 end27 end28 end2930 %==== Proses Substitusi Mundur ====31 x(n,1)=A(n,n+1)/A(n,n);3233 for i = n-1:-1:134 S = 0;35 for k = i+1:n36 S = S + A(i,k)*x(k,1);37 end38 x(i,1)=(A(i,n+1)-S)/A(i,i);39 endSekarang, source code di atas akan bisa memproses matrik bujursangkar yang ukurannya sem-barang; tidak hanya 4x4. Demikianlah akhir dari proses optimasi yang cukup melelahkan.3.4. MATRIK DAN ELIMINASI GAUSS 573.4.6 Jangan puas dulu..Walaupunmemilikijumlahbarisstatemenyanglebihsedikit, source-codeinimasihmengan-dungbugyangbisaberakibatfatal. Sekarangcobaandagantiangka-angkapadabagianin-isialisasi matrik menjadi angka-angka baru yang disesuaikan dengan sistem persamaan linearberikut iniP1: x1 x2+ 2x3 x4= -8P2: 2x1 2x2+ 3x3 3x4= -20P3: x1+ x2+ x3= -2P4: x1 x2+ 4x3+ 3x4= 4Saya jamin source code yang tadi akan berhenti sebelum tugasnya selesai. Artinya ia gagalmenjalankan tugas mencari solusi sistem persamaan linear. Mengapa bisa begitu?3.4.7 PivotingPada baris ke-23, yang merupakan bagian dari proses triangularisasi dalam source code di atas,terdapatm=A[j,i]/A[i,i]elemenA[i, i]tentunyatidakbolehbernilainol. Jikaituterjadi, makaprosestriangularisasiotomatis akan berhenti dan itu sekaligus menggagalkan metode eliminasi Gauss. Dilihat dariindeks-nya yang kembar yaitu [i, i], maka tidak diragukan lagi bahwa ia pasti menempati po-sisi di elemen diagonal dari matrik A. Nama lain elemen ini adalah elemen pivot. Jadi apa yangharus dilakukan jika secara tidak disengaja didalam aliran proses terdapat elemen pivot yangbernilai nol?Salahsatucarauntukmengatasinyaadalahdenganmenukar seluruhelemenyangse-baris dengan elemen diagonal bernilai nol. Ia harus ditukar posisinya dengan baris yang adadibawahnya, sampai elemen diagonal matrik menjadi tidak nol, aii = 0. Cara ini disebut pivot-ing. Penambahan proses pivoting kedalam source code eliminasi Gauss dimulai dari baris ke-23sampai baris ke-30 berikut ini1 clear all2 clc34 %---- inisialisasi matrik A ----5 A = [1 -1 2 -16 2 -2 3 -37 1 1 1 08 1 -1 4 3];910 %---- inisialisasi vektor b ----11 b = [-8 ; -20 ; -2 ; 4];1213 %---- membentuk matrik augmentasi ----14 dim = size(A);15 n = dim(1);58 BAB 3. METODE ELIMINASI GAUSS16 for i = 1:n17 A(i,n+1) = b(i);18 end1920 %==== Proses Triangularisasi ====21 for i = 1:n-122 %---- awal proses pivoting -----23 if A(i,i) == 024 for s = 1:n+125 v = A(i,s);26 u = A(i+1,s);27 A(i,s) = u;28 A(i+1,s) = v;29 end30 end31 %---- akhir proses pivoting -----3233 for j = i+1:n34 m=A(j,i)/A(i,i);35 for k = 1:n+136 A(j,k) = A(j,k)-m*A(i,k);37 end38 end39 end4041 %==== Proses Substitusi Mundur ====42 x(n,1)=A(n,n+1)/A(n,n)