Metode numerik?
Algoritma: review Galat (error) Pengenalan MATLAB
PAM 252 Metode Numerik Bab 1 Pendahuluan
Mahdhivan Syafwan
Jurusan Matematika FMIPA Universitas Andalas
Semester Genap 2016/2017
Metode numerik?
Algoritma: review Galat (error) Pengenalan MATLAB
Apa dan mengapa metode numerik?
Karakteristik dan tahap-tahap metode numerik Sifat-sifat metode numerik yang ‘bagus’
Apa dan mengapa metode numerik?
Apa?
...metode yang diterapkan untuk memecahkan masalah-masalah matematika dengan memakai tatacara tertentu sehingga diperoleh (aproksimasi) solusi dengan perhitungan yang sederhana.
Mengapa?
1 Permasalahan sukar untuk diselesaikan secara analitik
2 Permasalahan menyangkut hitungan yang sangat besar
Metode numerik?
Algoritma: review Galat (error) Pengenalan MATLAB
Apa dan mengapa metode numerik?
Karakteristik dan tahap-tahap metode numerik Sifat-sifat metode numerik yang ‘bagus’
1. Permasalahan sukar untuk diselesaikan secara analitik
Contoh
Tentukan nilai dari exp(3).
Selesaikan x5+ bx + c = 0 HitungR1
0 sin(exp(x))dx.
Selesaikan
x′(t) = a(y − x), y′(t) = bx − y − xy, z′(t) = xy − cz.
Bentuk-bentuk di atas sukar untuk diselesaikan secara analitik.
Butuh suatu metode untuk menyelesaikannya (solusi numerik).
Metode numerik?
Algoritma: review Galat (error) Pengenalan MATLAB
Apa dan mengapa metode numerik?
Karakteristik dan tahap-tahap metode numerik Sifat-sifat metode numerik yang ‘bagus’
2. Permasalahan menyangkut hitungan yang sangat besar
Contoh
Selesaikan Ax = b, dimana A adalah matriks berukuran 2 × 2 dan b adalah vektor berukuran 2 × 1.
Sistem persamaan di atas dapat diselesaikan secara analitik.
Namun bagaimana jika matriks A berukuran 100 × 100 dan vektor b berukuran 100 × 1?
Bagaimana pula jika matriks A berukuran 106× 106 dan vektor b berukuran 106× 1?
Butuh suatu metode untuk menyelesaikan masalah di atas dengan cepat dan tepat.
Metode numerik?
Algoritma: review Galat (error) Pengenalan MATLAB
Apa dan mengapa metode numerik?
Karakteristik dan tahap-tahap metode numerik Sifat-sifat metode numerik yang ‘bagus’
Metode numerik dalam dunia kerja
Aerospace - desain pesawat komersial - Airbus Aerospace - desain mesin jet - Rolls Royce Otomotif - desain mobil baru
Hiburan - animasi, games
Olahraga - desain mobil F1, desain perahu layar - Alinghi Finance - desain produk keuangan, penilaian resiko Lingkungan - model perubahan cuaca
Metode numerik?
Algoritma: review Galat (error) Pengenalan MATLAB
Apa dan mengapa metode numerik?
Karakteristik dan tahap-tahap metode numerik Sifat-sifat metode numerik yang ‘bagus’
Karakteristik metode numerik
Mencakup sejumlah besar perhitungan yang bentuknya serupa Memerlukan alat bantu komputer
Penyelesaian yang diperoleh selalu berupa hampiran (sangat jarang sekali diperoleh nilai eksak, kecuali masalahnya istimewa)
Metode numerik?
Algoritma: review Galat (error) Pengenalan MATLAB
Apa dan mengapa metode numerik?
Karakteristik dan tahap-tahap metode numerik Sifat-sifat metode numerik yang ‘bagus’
Tahap-tahap penyelesaian masalah secara numerik
1 Pemodelan, yaitu memformulasikan masalah fisik menjadi masalah matematika.
Contoh: model pertumbuhan bakteri y′ = ky .
2 Pemilihan metode numerik untuk menyelesaikan masalah matematika.
3 Pemrograman: pembuatan algoritma dan proses koding.
4 Penafsiran hasil.
Catatan: tahap (1) tidak dipelajari pada kuliah ini.
Metode numerik?
Algoritma: review Galat (error) Pengenalan MATLAB
Apa dan mengapa metode numerik?
Karakteristik dan tahap-tahap metode numerik Sifat-sifat metode numerik yang ‘bagus’
Sifat-sifat metode numerik yang ‘bagus’
Robust
Selalu memberikan jawaban (konvergen) Akurat
Solusi numerik mendekati solusi eksak
Galat (error) dapat dibuat sekecil yang diinginkan (berkaitan dengan beban kerja komputasi)
Estimasi nilai galat dapat dihitung tanpa mengetahui solusi eksak
Batas nilai galat dapat ditentukan Efisien
Solusi numerik diperoleh dalam waktu singkat
Menggunakan beban kerja komputasi sekecil mungkin untuk mencapai akurasi yang diinginkan.
Metode numerik?
Algoritma: review Galat (error) Pengenalan MATLAB
Definisi dan karakteristik algoritma Penulisan algoritma
Komponen-komponen algoritma Contoh-contoh
Definisi dan karakteristik algoritma
Algoritma adalah prosedur/perintah yang terdiri dari serangkaian berhingga operasi yang mempunyai arti tunggal yang dipakai untuk menyelesaikan suatu masalah.
Karakteristik algoritma:
1 Tiap langkah harus didefinisikan dengan persis sehingga mempunyai arti yang jelas dan maksud yang tunggal.
2 Harus sampai pada solusi/penyelesaian dari masalah setelah berhingga langkah.
3 Bersifat umum, misalnya algoritma untuk penyelesaian sebuah sistem persamaan linier (SPL) harus dapat dipakai untuk SPL ukuran berapapun.
Metode numerik?
Algoritma: review Galat (error) Pengenalan MATLAB
Definisi dan karakteristik algoritma Penulisan algoritma
Komponen-komponen algoritma Contoh-contoh
Penulisan algoritma
(a) Diagram alir (flow chart)
Dituliskan dalam bentuk diagram yang menggunakan simbol-simbol tertentu dengan arti yang sudah baku.
Aliran perintah digambar dengan garis dan anak panah dari satu simbol ke simbol lainnya.
Karena menimbulkan kerumitan dan panjang, penulisan dengan cara ini sudah mulai ditinggalkan.
Biasanya hanya dipakai untuk menggambarkan garis besar dari algoritma.
(b) Kode semu (pseudo code)
Ditulis dengan memakai kalimat-kalimat biasa.
Kalimat-kalimat yang dipakai biasanya dibakukan dan sudah mirip dengan sintaks dari bahasa pemrograman komputer.
Metode numerik?
Algoritma: review Galat (error) Pengenalan MATLAB
Definisi dan karakteristik algoritma Penulisan algoritma
Komponen-komponen algoritma Contoh-contoh
Komponen-komponen algoritma
(a) Masukan/input
Berupa data yang diperlukan untuk melakukan perhitungan yang akan menyelesaikan masalah.
(b) Keluaran/output
Data yang ingin dihasilkan dari perhitungan algoritma.
(c) Langkah-langkah
Perintah-perintah dan perhitungan-perhitungan yang dijalankan algoritma untuk menyelesaikan masalah.
Metode numerik?
Algoritma: review Galat (error) Pengenalan MATLAB
Definisi dan karakteristik algoritma Penulisan algoritma
Komponen-komponen algoritma Contoh-contoh
Contoh 1
Diberikan suatu vektor a dengan n elemen yang berisikan bilangan-bilangan riil. Algoritma berikut menghitung jumlah keseluruhan elemen-elemen dari vektor a, yaitu D =Pn
i =1ai.
Metode numerik?
Algoritma: review Galat (error) Pengenalan MATLAB
Definisi dan karakteristik algoritma Penulisan algoritma
Komponen-komponen algoritma Contoh-contoh
Contoh 2
Buat algoritma untuk menentukan nilai bilangan terbesar dari bilangan positif {a1, a2, ..., an}.
Metode numerik?
Algoritma: review Galat (error) Pengenalan MATLAB
Definisi dan karakteristik algoritma Penulisan algoritma
Komponen-komponen algoritma Contoh-contoh
Contoh 3
Diberikan koefisien dari persamaan kuadrat ax2+ bx + c = 0.
Buatlah algoritma untuk menghitung akar-akar dari persamaan tersebut dengan mempertimbangkan kasus-kasus yang akan terjadi.
Metode numerik?
Algoritma: review Galat (error) Pengenalan MATLAB
Definisi dan karakteristik algoritma Penulisan algoritma
Komponen-komponen algoritma Contoh-contoh
Tugas
Buat algoritma untuk mengurutkan bilangan-bilangan {a1, a2, ..., an} dari yang nilainya terkecil sampai yang terbesar.
Buat algoritma untuk menentukan semua faktor positif dari sebuah bilangan bulat positif.
Buat algoritma untuk menentukan apakah sebuah bilangan bulat termasuk bilangan prima atau bukan.
Metode numerik?
Algoritma: review Galat (error) Pengenalan MATLAB
Definisi dan karakteristik algoritma Penulisan algoritma
Komponen-komponen algoritma Contoh-contoh
Tugas No. 1
Buat algoritma untuk mengurutkan bilangan-bilangan
{a1, a2, ..., an} dari yang nilainya terkecil sampai yang terbesar.
Masukan: n banyak bilangan
a[i], i=1,2,...,n bilangan-bilangan
Keluaran: a[i], i=1,2,...,n bilangan-bilangan terurut dari yang nilainya terkecil sampai yang terbesar
Langkah-Langkah :
1. untuk i=1,2,...,n-1 untuk j=i+1,i+2,...,n
jika a[i]>a[j]
maka b:=a[i]
a[i]:=a[j]
a[j]:=b 2. tuliskan a[i], i=1,2,...,n
Metode numerik?
Algoritma: review Galat (error) Pengenalan MATLAB
Definisi dan karakteristik algoritma Penulisan algoritma
Komponen-komponen algoritma Contoh-contoh
Tugas No. 2
Buat algoritma untuk menentukan semua faktor positif dari sebuah bilangan bulat positif.
Masukan: a bilangan positif
Keluaran: f[i] faktor-faktor positif
Langkah-Langkah : 1. i:=1
2. untuk b=1,2,...,a jika a mod b = 0
maka f[i]:=b i=i+1
Metode numerik?
Algoritma: review Galat (error) Pengenalan MATLAB
Definisi dan karakteristik algoritma Penulisan algoritma
Komponen-komponen algoritma Contoh-contoh
Tugas No. 3
Buat algoritma untuk menentukan apakah sebuah bilangan bulat termasuk bilangan prima atau bukan.
Masukan: a bilangan
Keluaran: a bilangan prima atau bukan Langkah-Langkah :
1. jika a=1 maka “a bukan bilangan prima”, stop.
2. untuk b=2,3,...,a
jika a mod b = 0 dan a=~b
maka “a bukan bilangan prima”, stop.
3. “a bilangan prima”
Metode numerik?
Algoritma: review Galat (error) Pengenalan MATLAB
Definisi dan karakteristik algoritma Penulisan algoritma
Komponen-komponen algoritma Contoh-contoh
Kuis
Buat algoritma untuk menentukan semua faktor prima dari sebuah bilangan bulat positif.
Metode numerik?
Algoritma: review Galat (error) Pengenalan MATLAB
Definisi galat Sumber galat
Definisi galat (1)
Galat (E ) adalah perbedaan nilai dari suatu besaran antara nilai eksak (x) dengan nilai hampirannya (x∗)
E = x − x∗.
Untuk |E | biasa disebut dengan galat mutlak/absolut dari x.
Selain itu didefinisikan juga galat relatif, yaitu e = x− x∗
x .
Q: Mana yang lebih baik untuk pengukuran galat, E atau e?
Metode numerik?
Algoritma: review Galat (error) Pengenalan MATLAB
Definisi galat Sumber galat
Definisi galat (2)
Pada prakteknya, nilai eksak x tidak diketahui.
Untuk komputasi yang berulang (iterasi ), galat seringkali diestimasi dengan
εn= xn∗− xn−1∗ atau εn= xn∗− xn−1∗ xn∗ ,
dimana indeks n menunjukkan langkah iterasi (iterasi ke-n).
Pada kasus ini, komputasi akan dihentikan pada iterasi ke-n jika memenuhi
|εn| < ε⋆,
dimana ε⋆ adalah toleransi galat yang ditentukan (ε⋆ > 0).
Hubungan di atas disebut kriteria penghentian iterasi.
Metode numerik?
Algoritma: review Galat (error) Pengenalan MATLAB
Definisi galat Sumber galat
Sumber galat
Galat diskritisasi Timbul akibat:
model matematika (kasus kontinu) −→ model numerik Dalam hal ini, fungsi kontinu dipartisi atas sejumlah titik partisi yang berhingga.
Semakin banyak titik partisi, semakin kecil nilai galat.
Galat pemotongan
Timbul akibat pemotongan rumus matematika tertentu untuk menghampiri suatu besaran.
Galat pembulatan
Timbul akibat pembulatan bilangan.
Biasanya terjadi karena keterbatasan memori atau ketelitian pada alat komputasi yang dipakai.
Metode numerik?
Algoritma: review Galat (error) Pengenalan MATLAB
Definisi galat Sumber galat
Ilustrasi galat pemotongan
Misalkan kita ingin menghitung sin(0, 1) dengan menggunakan hampiran deret Maclaurin.
Deret Maclaurin untuk sin(x) adalah [buktikan!]
sin(x) = x −x3 3! +x5
5! −x7 7! +x9
9! − · · · .
Ruas kanan dari deret di atas diaproksimasi sampai sejumlah suku tertentu saja, misalnya hanya sampai suku x5!5.
Dalam hal ini diperoleh hasil
sin(0, 1) ≈ 0, 1 −(0, 1)3
3! + (0, 1)5 5!
dengan galat pemotongan sebesar E = −(0, 1)7
7! +(0, 1)9
9! − · · · .
Metode numerik?
Algoritma: review Galat (error) Pengenalan MATLAB
Definisi galat Sumber galat
Ilustrasi galat pembulatan (1)
Misalkan kita menggunakan komputer/kalkulator dengan kemampuan menyimpan sampai 5 angka desimal.
Jika kita ingin menyimpan bilangan 23 = 0, 666666666..., maka bilangan tersebut disimpan menjadi 0, 66667 (terjadi galat pembulatan).
Galat pembulatan biasanya akan merambat terus selama kita melakukan operasi perhitungan dalam komputer.
Misalkan x dan y adalah dua besaran eksak dan nilai hampirannya x∗dan y∗. Dari definisi galat Ex = x − x∗dan Ey = y − y∗, maka [buktikan!]
Ex+y = Ex+ Ey, Ex−y = Ex− Ey, exy ≈ ex+ ey, ex/y ≈ ex− ey.
Dalam hal ini, (x ± y)∗= x∗± y∗, (xy )∗= x∗y∗, (x/y )∗= x∗/y∗.
Metode numerik?
Algoritma: review Galat (error) Pengenalan MATLAB
Definisi galat Sumber galat
Ilustrasi galat pembulatan (2)
Galat pembulatan dalam suatu perhitungan rumus kadang-kadang dapat ‘diperkecil’ dengan memodifikasi rumus tersebut.
Sebagai contoh, perhatikan rumus: f (x) = x(√
x+ 1 −√ x).
Dengan menggunakan komputer dengan ketelitian 4 angka desimal, diperoleh f (500) = 500(√
501 −√
500) = ... = 11, 1500.
Sekarang modifikasi f (x) menjadi ˆf(x) =√ x
x+1+√x [justifikasi!], sehingga diperoleh hasil ˆf(500) = ... = 11, 1748.
Sebagai perbandingan, nilai eksaknya f(500) = g (500) = 11, 1747553007...
Dari ilustrasi di atas dapat disimpulkan bahwa operasi pengurangan dua bilangan yang nilainya hampir sama akan menyebabkan galat yang besar.
Metode numerik?
Algoritma: review Galat (error) Pengenalan MATLAB
Tentang MATLAB Fitur pada MATLAB Mempelajari MATLAB
Tentang MATLAB
MATLAB (Matrix Laboratory) - interactive system for numerical computation.
Originally written by Cleve Moler as a teaching aid.
Now widely used for teaching and research in universities.
Also widely used by business and industry.
Knowing MATLAB is a valuable skill - good addition to your CV
Learning MATLAB can be fun!
Metode numerik?
Algoritma: review Galat (error) Pengenalan MATLAB
Tentang MATLAB Fitur pada MATLAB Mempelajari MATLAB
Fitur pada MATLAB
Allows quick and easy coding in a high-level language.
Simple data structures - variables need not be declared in advance.
Interactive interface makes it easy to experiment and easy to debug code.
High-quality graphics can be produced easily.
Programs and functions can be stored in M-files, which are completely portable.
Lots of people have written M-files that are freely available on the internet.
Metode numerik?
Algoritma: review Galat (error) Pengenalan MATLAB
Tentang MATLAB Fitur pada MATLAB Mempelajari MATLAB
Bagaimana mempelajari MATLAB?
The best way to learn any computer language is to use it!
MATLAB is no exception.
Do attend the Computer Workshops and try the exercises.
Work through the MATLAB Guide at a computer. Ask for help.
Read other people’s code, look at the solutions to the exercises.
Don’t be afraid to experiment - you can’t break anything!
Practise - ”to do repeatedly in order to gain a skill”.
Programming is a very valuable skill but it will take time to acquire. Be patient.
Metode numerik?
Algoritma: review Galat (error) Pengenalan MATLAB
Tentang MATLAB Fitur pada MATLAB Mempelajari MATLAB
Hal-hal spesifik
Upper and lower case characters are not equivalent.
Typing a variable name will cause MATLAB to display its current value.
Putting a semicolon at the end of a command suppresses its output to the screen.
Parentheses (), square brackets [] and curly braces { } are all used and mean different things.
You can use the up and down arrows to scroll through your previous commands.
You can get help by typing help topic where topic is a command or function.
You can leave MATLAB by typing exit or quit.