metnum 2006
DESCRIPTION
TRANSCRIPT
1
METODE NUMERIK & FORTRAN
FAKULTAS ILMU KOMPUTERUNIVERSITAS GUNADARMA
2
TIM PENYUSUN
Suryadi M.T Teguh Yuniarko Mike Susmikanti Maukar Mufid Nilmada Miftah Andriansyah Erni Rihyanti Fitri Ningsih Umi Sholikhah
3
POKOK BAHASAN (1)
Pendahuluan (Algoritma) Solusi Persamaan Non Linier
Metode Bisection Metode False Position Metode Secant Metode Fixed point iteration Metode Newton Raphson
4
POKOK BAHASAN (2)
Solusi Sistem Persamaan Linier Eliminasi Gauss Eliminasi Gauss Yourdan Iterasi Gauss-Seidel
Interpolasi Interpolasi Linier Interpolasi Kuadrat Interpolasi Lagrange Interpolasi Newton
5
POKOK BAHASAN (3)
Integrasi Numerik Metode Empat persegi panjang Metode Trapesium Metode Simpson Metode Kuadratur Gauss
6
Referensi
1. Steven C. Chapra & Raymond P. Canale, Metode Numerik untuk Teknik dengan Penerapan pada Komputer Pribadi, UI-Press, Jakarta, 1991.
2. Suryadi H.S., Pengantar Metode Numerik, Seri Diktat Kuliah, Gunadarma, 1990
3. Suryadi M.T., Bahasa FORTRAN dan Analisis Numerik, Seri Diktat Kuliah, Gunadarma, 1995
4. William H. Press, et. al., Numerical Recipes in FORTRAN, 2n ed, Cambridge University Press, 1992.
7
PEMROGRAMAN TERSTRUKTUR
FAKULTAS ILMU KOMPUTERUNIVERSITAS GUNADARMA
8
Pemrograman Terstruktur
Analisa
Persoalan
Struktur Data
+
Algoritma
Program
Pengembangan
Algoritma
Coding
9
Analisa Persoalan
Persoalan apa yang perlu diselesaikan =>tujuan/program Bagaimana program harus berbuat untuk menyelesaikan
persoalan
Struktur Data Bagaimana menyusun data yang ada (struktur data) sehingga program menjadi efisien :
mudah dalam pengambilan data
mudah dalam memperbarui data (insert, delete, update)
mudah algoritmanya
10
Algoritma
Suatu rancangan rinci yang menggambarkan langkah demi langkah instruksi-instruksi bagi komputer agar dapat memcahkan suatu persoalan
Algoritma dapat ditulis (yang mudah dimengerti manusia) berupa :
diagram alur (flowchart)
pengkodean semu (pseudocode)
11
Program
Kumpulan instruksi, ditulis dalam suatu bahasa komputer (mis. TURBO PASCAL) yang memerintahkan komputer bagaimana memecahkan suatu persoalan
Garis besar Tahap analisa persoalan : menentukan data yang diperlukan
untuk proses (data input)
memahami dengan baik persoalan yang akan dipecahkan
menentukan data apa yang diharapkan muncul dari hasil proses (data output)
12
Garis Besar
Tahap struktur data & algoritma : Rancang struktur data yang digunakan, sedemikian rupa sehingga mudah merancang algoritmanya
dan memberikan proses yang efisien Dengan memahami masalah yang dimiliki, rancang setiap langkah yang diperlukan untuk
menyelesaikan (bisa dalam bentuk flowchart ataupun pseudocode) dan pilih teknik-teknik yang efisien => design algorithm
Mencoba algoritma yang dibuat dengan data sederhana
13
Garis Besar :
Tahap Program : Memahami syntax dari bahasa yang akan digunakan Inti : INPUT => PROSES => OUTPUT Coding : susun pengkodean-nya sesuai dengan algoritma
dan struktur data yang telah dibuat beserta Keterangannya
Debugging : memperbaiki kesalahan syntax (tahap compiling), kesalahan logika dan kesalahan run-time (tahap execution)
Testing : menguji dengan data yang telah diketahui hasil outputnya
dokumentasi
14
Garis Besar
Di dalam menyusun algoritma, hanya dikenal 3 jenis struktur proses :
1. Struktur sederhana (sequence)
2. Struktur berulang (repetition/loop)
3. Struktur bersyarat
:
:
Perintah-perintah dilakukan secara berurutanSatu/sekumpulan perintah dilakukan berulang-ulangSatu/sekumpulan perintah dilakukan jika suatu kondisi dipenuhi
:
:
:
Algoritma yang disusun berdasarkan struktur di atas disebut : algoritma terstruktur, sedangkan program yang dibuat berdasarkan algoritma terstruktur dikatakan sebagai program terstruktur
15
Garis Besar
Alasan menggunakan program terstruktur : Jika kita telah terbiasa menganalisa dan menyusun
program untuk suatu masalah dengan menggunakan teknik yang sama, maka pemecahan masalah (analisa, design, penyusunan program) akan menjadi lebih cepat dan mengurangi error
Jika persoalan dilakukan oleh suatu team work, dan semua programer menggunakan teknik yang sama, maka akan lebih mudah bagi seorang programmer untuk dapat membaca pekerjaan programmer yang laindan mudah dalam pengembangan /perbaikan program nantinya
16
Struktur Logika (3 struktur kendali dasar)
Untuk menghindari terjadinya “spaghetti code” yang menyebabkan suatu program sulit untuk ditelusuri baik dalam penulisan maupun debugging maka digunakanlah 3 struktur kendali dasar yang dapat mengatur jalannya program :
1. Struktur Sederhana (berurutan) : jika perintah-perintah dilakukan secara berurutan
2. Struktur Berulang (loop) : jika sekumpulan perintah diulang beberapa kali
3. Struktur Bersyarat (selection) : jika sekumpulan perintah dilakukan pada kondisi tertentu
17
Struktur Logika
Bentuk umum dari 3 struktur kendali proses
1
2
3
(1) (3)
1
2
3
4
Ny
(2)
1 ?
2
3
N
y
18
Struktur Logika
a. Terdapat tiga macam struktur berulang :
FOR LOOP : badan loop dilakukan untuk sejumlah tertentu pengulangan
DO WHILE : lakukan pengujian, selama kondisi masih dipenuhi, lakukan badan loop
DO UNTIL : lakukan badan loop satu kali, uji kondisi dan lakukan badan loop sampai kondisi tidak dipenuhi
T
Y
2
?T
Y
1
?2
1
DO WHILE DO UNTIL
19
Struktur Logika
b. Struktur Bersyarat dapat dibedakan :o Struktur 2 pilihan : IF – THEN – ELSEo Struktur lebih dari 2 pilihan : NESTED IF/ DO CASE
Y
T
?
Y T?
If - Then - Else
20
Struktur Logika
Nested If Do Case
21
Contoh 1
Persoalan :
tentukan apakah seorang mahasiswa dapat memiliki bobot nilai A, B, C, atau D jika diberikan syarat sbb. :
Nilai rata-rata Bobot
>85 A
70-85 B
55-70 C
<55 Ddimana Nilai rata-rata ditentukan dari 20% ujian 1, 35% ujian 2dan 45% ujian 3.
Latihan :
buatlah algoritmanya dengan mengikuti langkah-langkah dan struktur-struktur yang ada
22
Contoh 2
Menjumlahkan n buah bilanganPersoalan : hitung
n
i iaS1
Analisa persoalan :
Dari n buah bilangan yang diketahui, harus dicari jumlah dari seluruh bilangan tersebut. Untuk itu diperlukan satu buah variabel penyimpanan jumlah, yang pada awalnya berisi 0 dan setiap kali dijumlahkan dengan masing-masing n bilangan a1, a2,…..an.
23
Pengembangan Algoritma
Dekomposisi :
1. Baca/masukkan jumlah bilangan yang akan dijumlahkan2. Baca/masukkan bilangan-bilangan yang akan dijumlah3. Jumlahkan satu per satu bilangan di atas ke suatu nilai total4. Cetak nilai total tersebut
Perincian Sub Persoalan :
1. Masukkan jumlah bilangan yang akan dijumlah dan simpan pada variabel n
2. Lakukan sebanyak n kali :
masukkan nilai bilangan pada variabel ai (I= 1, 2, …,n)
3. Isi variabel S=0
24
Pengembangan Algoritma
4. Lakukan sebanyak n kali :jumlahkan ai ke s (i = 1, 2, …, n)
5. Cetakisi variabel s
Data :Variabel penyimpanan banyaknya data (n) bertipe integerVaribel penyimpanan masing-masing bilangan linier array (ai) dan bertipe integer/real
Variabel penyimpanan nilai total (s) bertipe integer/real
25
Pengembangan Algoritma
Algoritma 1 : Baca/masukkan suatu nilai dan simpan
pada variabel n Untuk nilai varibel i dari 1 s/d n lakukan :
baca/masukkan nilai ai
3. Set isi variabel s = 04. Untuk nilai variabel i dari 1 s/d n lakukan :
s = s + ai 5. Cetak variabel s
26
Pengembangan Algoritma
Algoritma 2 :1. Baca/masukkan suatu nilai dan simpan
pada variabel n2. Set isi variabel s=03. Untuk nilai variabel i dari s/d n lakukan :
a. baca/masukkan nilai ai
b. s = s + ai
4. Cetak variabel s
27
Latihan
Bila dibaca 2 buah bilangan bulat positip x dan y, maka buatlah algoritma untuk menghitung FPB dari x dan y !
Bila dibaca sebuah bilangan bulat positip x maka buatlah algoritma untuk menyatakan bahwa bilangan tersebut adalah bilangan Amstrong !
28
SOLUSI PERSAMAAN NON LINIER
METODE BISEKSI (BAGI DUA)
29
Metode Biseksi
Fungsi kontinu pada [a,b] Akarnya x = p & p [a,b] Untuk setiap iterasi akan membagi 2
interval yang memuat x = p dan berhenti bila mencapai suatu bilangan yang berada dalam toleransi (ditetapkan)
Hanya ada 1 akar dalam [X0,X1] maka f(X0)*f(X1) 0
Titik tengah interval X2=½(X0 + X1)
30
Metode Biseksi (lanjutan)
Bila f(X0)*f(X2) 0 maka akar p [X0,X2]
Ulangi iterasi pada interval [X0,X1] yang baru (dalam hal ini [X0,X2])
Pada kasus lainnya, yakni bila f(X0)*f(X2) > 0, maka akar p [X2,X1]
Ulangi iterasi pada interval [X0,X1] yang baru (dalam hal ini [X2,X1])
31
Metode Biseksi (lanjutan)
Setelah dilakukan n kali iterasi biseksi, akan diperoleh interval yang lebarnya (½)n(X1 – X0)
Bila (½)n(X1 – X0)<t maka akarnya berselisih kurang dari t terhadap kedua titik ujung interval kecil (terakhir) tsb.
32
Metode Biseksi (lanjutan)
Bila diinginkan toleransi kesalahan lebih kecil dari t, maka diperlukan paling sedikit 2log(X1 – X0) iterasi biseksi, kecuali bila akarnya tepat pada ujung interval.
33
Algoritma Biseksi (1)
INPUT X0 ,X1 ,F(X),T
WHILE [(X1 – X0) T OR F(X0)*F(X1) 0] DO
X2 = (X0 + X1)/2
IF F(X0)*F(X2) >0 THEN
X0 = X2
ELSE X1 = X2
ENDIFENDWHILE
34
IF F(X0)=0 THEN
OUTPUT (X0)
ELSE IF F(X1) = 0 THEN
OUTPUT (X1)
ELSE OUTPUT (X2)
ENDIF
Algoritma Biseksi (2)
35
KEUNTUNGAN BISEKSI
Selalu berhasil menemukan akar (solusi) yang dicari, atau dengan kata lain selalu konvergen.
36
KELEMAHAN BISEKSI
Bekerja sangat lambat. Tidak memandang bahwa sebenarnya akar atau solusi yang dicari telah berada dekat sekali dengan X0 ataupun X1.
37
SOLUSI PERSAMAAN NON LINIER
METODE REGULA FALSI (FALSE POSITION)
38
METODE REGULA FALSI
Salah satu alternatif untuk mempercepat perhitungan akar (solusi).
Tetapkan interval awal [X0 ,X1] yang memuat akar (solusi).
Hitung X2 (yang merupakan titik ujung interval baru) : titik potong garis lurus dari titik [X0,f(X0)] ke titik [X1,f(X1)] dengan sumbu X.
39
METODE REGULA FALSI
Persamaan garis lurus melalui titik [X0,f(X0)] dan [X1,f(X1)], yaitu :
)()(
)(
01
0
01
0
xfxf
xfy
xx
xx
40
METODE REGULA FALSI
Garis tersebut berpotongan dengan sumbu X Y = 0 dengan titik absisnya yaitu X2, sehingga diperoleh :
)()()(
)(1
01
0102 xf
xfxf
xxxx
41
METODE REGULA FALSI
Penetapan interval baru:
bila F(X0)*F(X2) <0 maka intervalnya menjadi [X0 , X2]
bila F(X0)*F(X2) >0 maka intervalnya menjadi [X2 , X1]
42
Metode Regula Falsi
Pengulangan/iterasi mencari X2 dan interval baru dilakukan berdasarkan nilai toleransi atau bila akarnya belum ditemukan
Sebaiknya nilai toleransi secara relatif mengacu pada : error aproksimasi
43
ALGORITMA REGULA FALSI
INPUT X0,X1,T,F(X), MAX
I=0; FOUND = falseREPEAT
I=I+1 X2 = X1 -(X1 - X0)*F(X1)/(F(X1)-F(X0))
IF F(X0)*F(X2)<0 THEN
X1 = X2
44
ALGORITMA REGULA FALSI
ELSE X0 = X2
ENDIFIF (|(X2 - X1)/ X1|T OR I=MAX) THEN
FOUND=trueENDIF
UNTIL (FOUND=true)OUTPUT (X2)
45
KELEMAHAN REGULA FALSI
Hanya salah satu titik ujung interval (X0 atau X1) yang bergerak menuju akar dan yang lainnya selalu tetap untuk setiap iterasi.
Sehingga mungkin [X0, X1] masih cukup besar jaraknya bila menggunakan batas | X1 - X0| T padahal X0 X2 atau X1 X2
46
KELEMAHAN Regula falsi
hal tersebut dikenal dengan pendekatan error mutlak.
diperbaiki dengan pendekatan Error relatif :
Tx
xxT
x
xx
0
20
1
21 atau
47
METODE SEKAN
SOLUSI PERSAMAAN NON LINIER
48
Metode Sekan
Disebut juga Metode Interpolasi Linear Dalam prosesnya tidak dilakukan
penjepitan akar atau dpl. [X0, X1] tidak harus mengandung akar yang akan dicari.
Sehingga f(x0) dan f(x1) bisa bertanda sama
Untuk mencari X2 , sama dengan metode REGULA FALSI
49
Metode Sekan (lanjutan)
Untuk iterasi berikutnya akan diperoleh interval baru [X0, X1] dengan cara pergeseran: X0 X1 , X1 X2
Iterasi berlangsung sampai batas maksimum (Max.) atau sampai dipenuhinya batas Toleransi (T):
| (X1 - X2 )/ X1 |≤ T
--------------------------|\/
Nilai kesalahan relatif
50
Metode Sekan (lanjutan)
Proses Pencapaian Akar (Mtd. SEKAN) Tambah gambar ! (halaman akhir)
51
Algoritma Sekan
INPUT X0, X1, T, Max, F(x) i = 0 Found = false REPEAT
i = i + 1 X2 = X1 – (X1 – X0)*F(X1)/(F(X1) – F(X0))
X0 = X1
X1 = X2
52
Algoritma Sekan (lanjutan)
IF | (X0- X1)/ X0|≤ T OR
i = Max THEN Found = true
ENDIF UNTIL (Found = true) OUTPUT (X2)
53
54
METODE ITERASI TITIK TETAP
SOLUSI PERSAMAAN NON LINIER
55
METODE ITERASI TITIK TETAP
Syaratnya: f(x) = 0 dapat diubah menjadi bentuk: x = g(x) (yang tidak unik) Cari akar dgn pertidaksamaan rekurens:
Xk+1 = g(Xk); untuk k = 0, 1, 2, 3, …
dgn X0 asumsi awalnya, sehingga diperoleh
barisan X0, X1, X2, X3, … yang diharapkan konvergen ke akarnya.
Jika g’(x) ε [a, b] dan g’(x) ≤ k dgn k< 1 Utk setiap
x ε [a, b] , maka titik tetap tersebut tunggal dan iterasinya akan konvergen menuju akar
56
METODE ITERASI TITIK TETAP (cont’d)
Dari bentuk x = g(x), berarti akar dari f(x) tak lain adalah perpotongan antara garis lurus y = x dan kurva y = g(x).
57
58
CONTOH KASUS
CONTOH:f(x) = x – e1/x ; bentuk x = g(x), yaitu: f(x) = x – e1/x dapat ditulis: f(x) = 0 x – e1/x = 0 shg didapat x = g(x), antara lain:
a. x = e1/x
b. x = e1/x ln x = 1/x (ln e) x = 1/ln xc. x = e1/x 2x = x + e1/x x = 1/2(x +
e1/x)
59
CONTOH KASUS (lanjutan)
ambil x0 = 1.5
periksa kekonvergenan iterasi:a. g’(x) = - (1/x2 ) e1/x
g’(x) = - (1/(1.5)2 ) e1/1.5 = …. ?
60
METODE NEWTON-RAPHSON
SOLUSI PERSAMAAN NON LINIER
61
METODE NEWTON-RAPHSON
Waktu pencarian akarnya relatif lebih cepat dibandingkan metode lainnya.
Memanfaatkan turunan fungsi f(x) pada suatu titik P [x1, f(x1)]
Membuat garis singgung pada titik P tsb yg memotong sumbu x didapat xi+1
Sampai ditemukan akarnya (sesuai batas toleransi/error yg diberikan)
62
Gambar Grafik
63
METODE NEWTON-RAPHSON (lanjutan)
Persamaan garis singgung melalui P [X1,
f(X1)] adalah: y – f(X1) = f ’(X1) . (X – X1)
dgn f ’(X1) : gradien garis singgung Persamaan tsb memotong sumbun x di
titik (X2, 0) maka akan diperoleh:
0 - f(X1) = f’(X1). (X2– X1)
X2 .f’(X1) - X1.f’(X1) = - f’(X1)
X2 = X1 - f(X1)/ f’(X1)
64
METODE NEWTON-RAPHSON (lanjutan)
Secara Rekurens, persamaan tsb dinyatakan menjadi:
Xi+1= Xi - f(X1)/ f’(X1)
Utk i = 1, 2, 3, …f’(Xi): turunan pertama f(X) pada x = xi.
65
SOLUSI SISTEM PERSAMAAN
LINIER
66
SOLUSI SISTEM PERSAMAAN LINEAR (SPL) SPL dengan m persamaan dan n variabel:
a11x1 + a12x2 + … + a1nxn = b1
a21x1 + a22x2 + … + a2nxn = b2
: : :am1x1 + am2x2 + … + amnxn = bm
atau dalam bentuk matriks: Ax = ba11 a12 … a1n x1 b1
a21 a22 … a2n x2 b2
: : :am1 am2 … amn xn bm
A x b
Solusi dari SPL Ax = b adalah nilai-nilai dari x1, x2, …, xn Э memenuhi persamaan ke -1 s/d ke –m
Solusi dari SPL:3x1 + 2x2 = 16-x1 + 3x2 = 13
67
METODE ELIMINASI GAUSS
Misalkan: A(n x n), sehingga SPL: Ax = b dengan A(n x n), x(n x 1) dan B(n x 1)
Untuk menentukan solusi SPL tersebut dilakukan dalam 2 langkah utama :
Langkah 1:Mengeliminir x1 s/d x2 atau dpl membuat Ax = b menjadi bentuk A*x = b* dengan A* adalah matriks segitiga atas
Langkah 2:Melakukan substitusi mundur (“back substitutions”) sehingga diperoleh Xn, xn-1, xn-2,…,x2, x1
68
Contoh:a11x1 + a12x2 + a13x3 = a14a21x1 + a22x2 + a23x3 = a24a31x1 + a32x2 + a33x3 = a34
Eliminasi x1 pada baris ke dua dpl. Membuat koefisien x1 pada baris ke dua menjadi nol (manfaatkan operasi elementer baris/kolom)
FOR j = 1 to 4a2j = a2j – a21/a11 x a1j
NEXT j
Eliminir x1 pada baris ke tiga
FOR j = 1 to 4a3j = a3j – a31/a11 x a1j
NEXT j
69
Secara umum untuk mengeliminir x1:
FOR i = 2 to 3 FOR j = 1 to 4
aij = aij – ai1/a11 x a1j
NEXT jNEXT I
Secara umum untuk mengeliminir: xk FOR i = k + 1, n
FOR j = k, n + 1aij = aij – aik/akk x akj
NEXT jNEXT i
70
Setelah dieliminir x1 dan x2 maka diperoleha11 x1 + a12 x2 + a13 x3 = a14
a22 x2 + a23 x3 = a24
a33 x3 = a34 Langkah utama ke dua: substitusi mundur dari
persamaan ke 3 diperoleh:x3 = a34/a33
Substitusi x3 ke persamaan ke 2, sehingga diperoleh:x2 = (a24 – a23 x3) / a22
Substitusi x3 dan x2 ke persamaan ke 1, sehingga diperoleh: x1
Dengan demikian diperoleh x1, x2, x3 Э Ax = b
71
CONTOH KASUS1. Tentukanlah solusi dari SPL:
x1 - 2x2 + x3 = 4
2x1 - 5x2 + 5x3 = 10
x1 + x2 + x3 = 7
(dpl x1, x2 dan x3 ?)
72
ALGORITMA GAUSS
FOR i = 1 to nFOR j = 1 to n + 1
INPUT (aij)NEXT j
NEXT IFOR k = 1 to n – 1
FOR i = k + 1 to nu = aik/akkFOR j = k to n + 1
aij = aij – u * akjNEXT j
NEXT INEXT k
73
xn = an n+1/ann
FOR i = n – 1 DOWNTO 1sum = 0FOR j = i + 1 to n
sum = sum + aij * xj
NEXT jxi = (ai n+1 – sum)/aii
NEXT iFOR i = 1 to n
OUTPUT (xi)NEXT i
74
Perhatian ! Dalam mengeliminir xk, selalu dihitung
aik/akk, selanjutnya dinyatakan dengan variabel u. Bila |akk| 0 maka “berbahaya” karena u bisa mengandung error yang besar
Untuk menghindarinya, susun kembali SPL nya Э |akk| selalu yang terbesar dalam kolom ke k, akk disebut elemen PIVOT
75
ALGORITMA PIVOTING PADA ELIMINASI GAUSS
FOR k = 1 to n-1max = abs(akk)p = kFOR m = k + 1 to n
IF abs(amk) > max THENmax = abs(amk)p = m
ENDIFNEXT mIF max ≤ THEN
OUTPUT (“ILL-CONDITION”)
STOPENDIF
IF p ≠ k THENFOR i = k TO n+1
temp = akl
akl = apl
apl = temp
NEXT iENDIF
FOR i = k+1 TO nu = aik/akk
FOR j = k TO n+1aij = aij – u * akj
NEXT jNEXT i
NEXT k
76
METODE ELIMINASI GAUSS-YOURDAN
Untuk mencari solusi SPL, dilakukan dalam 3 langkah utama :1. Transformasikan A dari Ax = b Э menjadi A*
(segitiga atas) dari A*x = b*2. Transformasikan A* (hasil dari langkah 1) Э
menjadi A** (matriks diagonal) dari A**x = b**
3. Tentukan xi i = 1,2, …,n berdasarkan hasil langkah 2. xi = b**i/a**i i = 1,2,..,n
Metode ini jarang digunakan karena sangat mahal (n3)
77
SOLUSI SISTEM PERSAMAAN
LINIER
METODE ITERASI GAUSS SEIDEL - IGS
78
SISTEM PERSAMAAN LINIER (SPL)
Bila diketahui SPL dengan n persamaan dan n variabel, sebagai berikut :a11x1 + a12x2 + … + a1nxn = a1(n+1) .. (1)
a21x1 + a22x2 + … + a2nxn = a2(n+1) .. (2):an1x1 + an2x2 + … + annxn = an(n+1) .. (n)
Maka solusinya dapat diperoleh dengan cara :
79
Algoritma (pseudo code) IGS - 1
Langkah ke-1 : Tebak sebarang nilai awal untuk variabel x2 , x3 , ... , xn . Namakan nilai awal tersebut x2
0 , x30 , … , xn
0 .
Langkah ke-2 : Substitusikan x2
0 , x30 , … , xn
0 ke SPL (1) untuk memperoleh nilai x1 lalu namakan dengan x1
1 .
80
Langkah ke-3 : Substitusikan x1
1 , x30 , x4
0 , … , xn0 ke
SPL (2) untuk memperoleh nilai x2 lalu namakan dengan x2
1 .
Langkah ke-4 : Substitusikan x1
1 , x21 , x4
0 , x50 , … , xn
0 ke SPL (3) untuk memperoleh nilai x3
lalu namakan dengan x31 .
Algoritma (pseudo code) IGS - 2
81
Langkah ke-5 : dan seterusnya, sampai diperoleh x1
1 , x2
1 , x31 , … , xn-1
1 , selanjutnya substitusika ke SPL (n) untuk memperoleh nilai xn lalu namakan dengan xn
1 .
( Iterasi ke-1 selesai dengan diperolehnya nilai : x1
1 , x21 , x3
1 , … , xn-11 , xn
1 . )
Algoritma (pseudo code) IGS - 3
82
Langkah ke-6 :
Ulangi langkah ke-2 s/d ke-5
(substitusikan x21 , x3
1 , … , xn1 ke
SPL (1) untuk memperoleh nilai x1
lalu namakan dengan x12 ). Sampai
nanti diperoleh nilai x12 , x2
2 , x32 , … ,
xn-12 , xn
2 .
Algoritma (pseudo code) IGS - 4
83
Langkah ke-7 : Iterasi berakhir pada iterasi ke-k, bila :| xj
k – xjk+1 | < T
dengan T nilai toleransi kesalahan yang sudah ditetapkan sebelumnya.
Algoritma (pseudo code) IGS - 5
84
Tingkat Konvergensinya
Algoritma tersebut BELUM TENTU KONVERGEN !!!
Syarat Konvergensi :Matriks koefisiennya (A) harus bersifat DIAGONALLY DOMINANT
85
Matriks Diagonally Dominant
dengan ;1
n
ijjijii aai
i a an
ijjijii
;1
dan
86
Contoh Soal 1:
Diketahui SPL sebagai berikut :3x1 – 10x2 = 3
x1 + x2 = 2
Carilah nilai x1 dan x2 dengan menggunakan metode iterasi Gauss-Seidel dengan Toleransinya 0,005 !
87
Jawab Contoh Soal 1 : (1)
Periksa tingkat konvergensinya.Diperoleh bahwa :|a11|=3 ; |a12|=10 ; |a21|=1 ; |a22|= 1
3 10
1 1
1i 2
1;1111
untukaajj
j
2i 2
2;1222
untukaajj
j
88
Jawab Contoh Soal 1 : (2)
Jadi SPL tersebut TIDAK DIAGONALLY DOMINANT. Sehingga tidak akan konvergen bila dipecahkan dengan metode Iterasi Gauss-Seidel.
Untuk itu, ubah penyajian SPL nya menjadi :
x1 + x2 = 2
3x1 – 10x2 = 3Periksa tingkat konvergensinya !!
89
Jawab Contoh Soal 1 : (3)
Periksa tingkat konvergensinya.Diperoleh bahwa :|a11|= 1 ; |a12|= 1 ; |a21|= 3 ; |a22|= 10
1 1
10 3
1i 2
1;1111
untukaajj
j
2i 2
2;1222
untukaajj
j
90
Jawab Contoh Soal 1 : (4)
Jadi SPL hasil perubahannya bersifat DIAGONALLY DOMINANT konvergen
Selanjutnya jalankan algoritmanya terhadap SPL : !
x1 + x2 = 2 … (1)
3x1 – 10x2 = 3 … (2)
91
Jawab Contoh Soal 1 : (5)
Iterasi ke-1 :1. Tebak nilai awal x2
0 = 0
2. Substitusikan x20 = 0 ke SPL (1) :
x1 + x2 = 2 x1 + 0 = 2 x1 = 2
didapat x11 = 2
3. Substitusikan x11 = 2 ke SPL (2) :
3x1 – 10x2 = 3 3.(2) – 10x2 = 3
6 – 10x2 = 3 x2 = 0,3
didapat x21 = 0,3
92
Jawab Contoh Soal 1 : (6)
Iterasi ke-2 :2. Substitusikan x2
1 = 0,3 ke SPL (1) :
x1 + x2 = 2 x1 + 0,3 = 2 x1 = 1,7
didapat x12 = 1,7
3. Substitusikan x12 = 1,7 ke SPL (2) :
3x1 – 10x2 = 3 3.(1,7) – 10x2 = 3
5,1 – 10x2 = 3 x2 = 0,21
didapat x22 = 0,21
93
Jawab Contoh Soal 1 : (7)
Iterasi ke-3 :2. Substitusikan x2
2 = 0,21 ke SPL (1) :
x1 + x2 = 2 x1 + 0,21 = 2 x1 = 1,79
didapat x13 = 1,79
3. Substitusikan x12 = 1,79 ke SPL (2) :
3x1 – 10x2 = 3 3.(1,79) – 10x2 = 3
5,37 – 10x2 = 3 x2 = 0,237
didapat x23 = 0,237Dan seterusnya…..
94
Jawab Contoh Soal 1 : (8)
Iterasi ke-4, ke-5 dst Lanjutkan sendiri, sebagai latihan !! Ingat, proses iterasi akan berhenti bila
kondisi
| xjk – xj
k+1 | < 0,005
Terpenuhi !!
95
Jawab Contoh Soal 1 : (9)
Rangkuman Proses Iterasinya :
Iterasi ke-
x1 x2
123456
2,0001,7001,7901,7631,7711,769
0,3000,2100,2370,2290,2310,231
96
ALGORITMA IGSINPUT A(n,n+1), e, maxitINPUT xi (nilai awal)k 1 ; big 1WHILE (k ≤ maxit and big e) DO
big 0FOR i = 1 TO n
sum 0FOR j = 1 TO n
IF j ≠ i THENsum sum + aij
NEXT jtemp (ai n+1 – sum) / aii
relerror abs((xi – temp) / temp)IF relerror big THEN
big relerrorxi temp
NEXT Ik k + 1
ENDWHILEIF k > maxit THEN
OUTPUT(“TDK KONVERGEN”)ELSE OUTPUT (“KONVERGEN”)ENDIFOUTPUT(xi)
97
INTERPOLASI
98
INTERPOLASI
Interpolasi adalah teknik mencari harga suatu fungsi pada suatu titik diantara 2 titik yang nilai fungsi pada ke-2 titik tersebut sudah diketahui
dpl. : cara menentukan harga fungsi f dititik x* ε [x0,xn] dengan menggunakan informasi dari seluruh atau sebagian titik-titik yang diketahui ( x0, x1, …., xn)
x x0 x1 x2 ……. xn
f(x) f(x0) f(x1) f(x2) ……. f(xn)
99
Teknik Umum yang digunakan :
(i) Membentuk polinomial berderajat ≤ n yg mempunyai harga fungsi di titik-titik yang diketahui Polinomial Interpolasi
(ii) Masukkan titik yang ingin dicari harga fungsinya ke dalam polinomial interpolasi
100
Interpolasi Linier Interpolasi Kuadrat Interpolasi Lagrange Interpolasi Newton
Jenis Interpolasi
101
INTERPOLASI LINIER (1)
Misalkan ada m bilangan : x1, x2, …., xm
dan bilangan lain yang berkaitan : y1, y2 , …., ym
maka masalahnya : berapa harga y* pada
x* ε [xk,xk+1] ?
y
x
yk+1
xk+1
yk
xk
y*
x*
?
102
Ambil ruas garis yang menghubungkan titik (xk,yk) dan (xk+1,yk+1)
Diperoleh persamaan garisnya :
)(*
* 1
1kk
kk
k
k yyxx
xxyy
)(*
* 1
1kk
kk
k
k yyxx
xxyy
kk
kk
k
k
xx
yy
xx
yy
1
1
*
*
INTERPOLASI LINIER (2)
103
Jadi persamaan garisnya adalah :
)(*
* 1
1kk
kk
k
k yyxx
xxyy
y
x
yk+1
xk+1
yk
xk
y*
x*
?
INTERPOLASI LINIER (3)
104
Diketahui data sebagai berikut :
Tentukan harga y pada x = 6,5 !Jawab : x = 6,5 terletak antara x=6 & x=7
)( 1
1kk
kk
k
k yyxx
xxyy
5,42)3649()67(
)65,6(36
y
Contoh – 1 : (1)
x -3 -2 -1 0 1 2 3 4 5 6 7
y 9 4 1 0 1 4 9 16 25 36 49
Hasilnya
105
Alternatif 2 :x = 6,5 terletak antara x=1 & x=7
)( 1
1kk
kk
k
k yyxx
xxyy
45)48()6(
)5,5(1)149(
)17(
)15,6(1
y
Hasilnya
Contoh – 1 : (2)
106
Bandingkan hasil kedua jawaban tersebut !!Mana yang mendekati jawaban yang sesungguhnya ..??Karena hub. x & y adalah y = x2 maka untuk harga x = 6,5 didapat y = (6,5)2 = 42,25=> Kesalahan mutlak (E) : |42,5 – 42,25| = 0,25
x -3 -2 -1 0 1 2 3 4 5 6 7
y 9 4 1 0 1 4 9 16 25 36 49
Contoh – 1 : (3)
107
Kesalahan mutlak (E), untuk : y = 42,5 |42,5 – 42,25| = 0,25 = 25 %
Sedangkan untuk y = 45 |45 – 42,25| = 3,25 = 325 %
Contoh – 1 : (4)
108
Contoh-2 :Diketahui tabel akar bilangan sbb :
Tentukan akar dari 2,155 (2,155)1/2 = 1,46629 + (0,005/0,010) (1,46969 –
1,46629) = 1,46629 + 0,00170
(2,155)1/2 = 1,46799Kesalahan mutlaknya |1,4679918 -1,46799| =
0,0000018
Tentukan akar dari 2,153 dan Kesalahan mutlaknya !
N …. 2,14 2,15 2,16 ….
N1/2 …. 1,46287 1,46629 1,46969 ….
109
INTERPOLASI KUADRAT
Banyak kasus, penggunaan interpolasi linier tidak memuaskan karena fungsi yang diinterpolasi berbeda cukup besar dari fungsi linier
Untuk itu digunakan polinomial lain yg berderajat dua (interpolasi kuadrat) atau lebih mendekati fungsinya
Caranya :- Pilih 3 titik & buat polinomial berderajat dua
melalui ke - 3 titik tsb., shg dpt dicari harga fgs. pada x = x*
- Pemilihan ke-3 ttk tsb., dapat :- xk-1 < xk < xk+1 atau- xk-1 < x* < xk < xk+1
110
Persamaan umum Polinomial kuadrat :
P(x) = a0 + a1 x + a2 x2 …..(*)
3 titik (xk-1,yk-1), (xk,yk) & (xk+1,yk+1) dilalui fgs. P(x) berarti:
yk-1 = a0 + a1 xk-1 + a2 xk-12
yk = a0 + a1 xk + a2 xk2 …………………………. (**)
yk+1 = a0 + a1 xk+1+ a2 xk+12
=> Akan diperoleh dari 3 pers. yaitu a0, a1 dan a2 kemudian subst. ke (*) & diperoleh pers. kuadrat, shg dapat dicari nilai fgs. untuk x = x* yaitu P(x*) = a0 + a1 x* + a2 x*2
=> Sistim pers. non homogen (**) memp. solusi dan solusinya unik (tunggal)
111
INTERPOLASI LAGRANGE
Interpolasi Lagrange adalah salah satu formula untuk interpolasi berselang tidak sama selain formula interpolasi Newton umum & metoda Aitken. Walaupun demikian dapat digunakan pula
untuk interpolasi berselang sama. Misalkan fgs. y(x) kontinu & diferensiabel sampai
turunan (n+1) dalam interval buka (a,b). Diberikan (n+1) titik (x0,y0), (x1,y1), …, (xn,yn) dengan nilai x tidak perlu berjarak sama dengan yang lainnya, dan akan dicari suatu polinom berderajat n. Untuk pemakaian praktis, formula interpolasi Lagrange dapat dinyatakan sbb. :
112
Formula Interpolasi Lagrange
Jika y(x) : nilai yang diinterpolasi; x : nilai yg berkorespondensi dg y(x)
x0, x1, …., xn : nilai x dan y0, y1, …., yn : nilai y
0
02010
21
))...()((
))...()(()( y
xxxxxx
xxxxxxxy
n
n
1
12101
20
))...()((
))...()((y
xxxxxx
xxxxxx
n
n
n
nnnn
n
yxxxxxx
xxxxxx
))...()((
))...()((
.
.
110
110
113
Contoh 1:
Nilai yg. berkorespondensi dengan y = 10log x adalah :
Carilah 10log 301 ?Untuk menghitung y(x) = 10log 301 dimana x = 301, maka nilai diatas menjadi
X 300 304 305 307
10log x 2,4771 2,4829 2,4843 2,4871
x0 = 300 x1 = 304 x2 = 305 x3 = 307
y0 = 2,4771
y1 = 2,4829 y2 = 2,4843
y3 = 2,4871
114
Dengan menggunakan interpolasi lagrange
4771,2)307300)(305300)(304300(
)307301)(305301)(304301()(xy
4829,2)307304)(305304)(300304(
)307301)(305301)(300301(
4843,2)307305)(304305)(300305(
)307301)(304301)(300301(
4871,2)305307)(304307)(301307(
)305301)(304301)(300301(
7106,04717,49658,42739,1 4786,2)( xy
115
Contoh 2 :
Bila y1 = 4, y3 = 12, y4 = 19 dan yx = 7, carilah x ?
Karena yg ditanyakan nilai x dengan nilai y diketahui, maka digunakan interpolasi invers atau kebalikan yg analog dg interpolasi Lagrange.
Nilai sebenarnya dari x adalah 2, karena nilai-nilai atau data diatas adalah hasil dari polinom y(x) = x2 + 3. Adapun untuk membentuk polinom derajat 2 dengan diketahui 3 titik, dapat menggunakan cara yang sebelumnya pernah dibahas dalam hal mencari persamaan umum polinomial kuadrat.
)1()194)(124(
)197)(127(x
)3()1912)(412(
)197)(47()4(
)1219)(419(
)127)(47(
86,17
4
14
27
2
1x
116
INTEGRASI NUMERIK
117
INTEGRASI NUMERIKINTEGRASI NUMERIK
Masalah
Menghitung luas daerah di atas sumbu x yang dibatasi oleh kurva y = f(x), antara x = a dan x = b
Dari ilustrasi di samping secara kalkulus hasilnya adalah :
dx f(x) = Lb
a
Contoh :
Hitung luas daerah di atas sumbu x yang dibatasi oleh kurva y = x2, antara x = 0 dan x = 4
Solusi : luassatuan 1.332 364 )0( - )4( x dx )( = L 333
31
31
4
0312
4
0
x
118
Metode secara numerik
A. Metode Pendekatan Persegi Panjang
B. Metode Trapesium
A. Metode Pendekatan Persegi Panjang
Bagi interval a sampai b atas n sub-interval Hitung nilai fungsi pada ujung-ujung sub-interval tersebut f (xk ) Hitung luas tiap-tiap persegi panjang tersebut Pk = h * f (xk ) Jumlahkan semua luas persegi panjang tersebut
( ) = na - bh
)f(x . h = L k
h
1k
METODE PERSEGI PANJANGMETODE PERSEGI PANJANG
119
METODE PERSEGI PANJANGMETODE PERSEGI PANJANG
Selain mengambil tinggi persegi panjang ke-k, sama dengan f (xk ) yaitu nilai fungsi pada ujung kanan sub-interval ke-k tersebut, juga dapat mengambil tinggi sama dengan f (xk-1 ) yaitu nilai fungsi pada ujung kiri sub-interval, ataupun juga pada :
2) / )x+ f((x k1-k yaitu nilai fungsi pada titik tengah sub-interval
Contoh:
Cari luas daerah di bawah kurva f(x) = x2, antara x = 0 sampai x = 4
Solusi: Interval (0, 4) dibagi menjadi 4 bagian sama panjang, n = 4 h = (4 - 0)/4 = 1 Luas persegi panjang P1 = 1 * f(1) = 1 * 1 = 1
P2 = 1 * f(2) = 1 * 4 = 4
P3 = 1 * f(3) = 1 * 9 = 9
P4 = 1 * f(4) = 1 * 16 = 16
Luas Total = 30
Penyimpangannya = 30 – 21.33 = 8.66
+
120
Jika interval (0, 4) dibagi menjadi 8 sub-interval, n = 8 h = (4 - 0)/8 = 0.5 Luas persegi panjang P1 = 1 * f(0.5) = 1 * 1 = 0.125
P2 = 1 * f(1.0) = 1 * 4 = 1
P3 = 1 * f(1.5) = 1 * 9 = 1.125
P4 = 1 * f(2.0) = 1 * 16 = 2
P5 = 1 * f(2.5) = 1 * 4 = 3.125
P6 = 1 * f(3.0) = 1 * 9 = 4.5
P7 = 1 * f(3.5) = 1 * 16 = 6.125
P8 = 1 * f(4.0) = 1 * 16 = 8
Luas Total = 26
Penyimpangannya = 26 – 21.33 = 4.67
Jika banyaknya sub-interval diperbanyak lagi, misal n = 40, diperoleh L = 22.14, dan untuk n = 100 diperoleh L = 21.6544
+
METODE PERSEGI PANJANGMETODE PERSEGI PANJANG
121
Jika diambil tinggi adalah nilai fungsi pada ujung kiri sub-interval
Luas P1 = 0.5 * f(0.0) = 0.5 * 0 = 0
P2 = 0.5 * f(0.5) = 0.5 * 0.25 = 0.125
P3 = 0.5 * f(1.0) = 0.5 * 1 = 1
P4 = 0.5 * f(1.5) = 0.5 * 2.25 = 1.125
P5 = 0.5 * f(2.0) = 0.5 * 4 = 2
P6 = 0.5 * f(2.5) = 0.5 * 6.25 = 3.125
P7 = 0.5 * f(3.0) = 0.5 * 9 = 4.5
P8 = 0.5 * f(3.5) = 0.5 * 12.25 = 6.125
Luas Total = 18
+
METODE PERSEGI PANJANGMETODE PERSEGI PANJANG
122
Jika tinggi sama dengan titik tengah interval, diperoleh:
Luas P1 = 0.5 * f(0.25) = 0.03125
P2 = 0.5 * f(0.75) = 0.28125
P3 = 0.5 * f(1.25) = 0.78125
P4 = 0.5 * f(1.75) = 1.53125
P5 = 0.5 * f(2.25) = 2.53125
P6 = 0.5 * f(2.75) = 3.78125
P7 = 0.5 * f(3.25) = 5.23125
P8 = 0.5 * f(3.75) = 7.03125
Luas Total = 21.2000
+
Perhatikan bahwa hasil terakhir ini adalah yang terbaik.
METODE PERSEGI PANJANGMETODE PERSEGI PANJANG
123
B. Metode Trapesium
Bagi interval (a, b) menjadi n sub-interval yang sama Hitung nilai fungsi pada ujung-ujung sub-interval tersebut f (xk ) Hitung luas trapesium Pk = h * f (xk )
Luas trapesium ke-1 = t1 = ½ ( f(x0) + f(x1) ) * h = h/2 ( f(x0) + f(x1) )
ke-2 = t2 = ½ ( f(x1) + f(x2) ) * h = h/2 ( f(x1) + f(x2) )
……………. ke-n = tn = ½ ( f(xn-1) + f(xn) ) * h = h/2 (f(xn-1) + f(xn) )
Luas Total = t1 + t2 + ……. + tn
= h/2 ( f(x0) + f(x1) ) + h/2 ( f(x1) + f(x2) ) + ……. + h/2 (f(xn-1) + f(xn) )
( ) = na - bh
)f(x )f(x 2 )f(x 2
1
1nk0
n
k
h
METODE TRAPESIUMMETODE TRAPESIUM
124
METODE TRAPESIUMMETODE TRAPESIUM
125
Contoh:
Hitung luas daerah di bawah kurva f(x) = x2, antara x = 0 sampai x = 4
Solusi: Interval (0, 4) dibagi menjadi 4 sub-interval, n = 4 h = (4 - 0)/4 = 1
Luas total
xk 0 1 2 3 4
f(xk) 0 1 4 9 16
)f(x )f(x 2 )f(x 2
3
14k0
k
h
22 16 9)4(1 2 0 2
1
METODE TRAPESIUMMETODE TRAPESIUM
126
Rumusan yang paling akurat untuk integrasi numerik Tinjauan Gauss dalam perhitungan integral F(x) dx berdasarkan nilai f(x) dalam sub interval yang
tidak berjarak sama, melainkan simetris terhadap titik tengah interval
I = f(x) dx
= (a-b) [R1 (U1 ) + R2 (u2) + … + Rn (Un)]
U1,U2,…,Un adalah titik dalam interval [-1/2,1/2] (U) = f(x) = f[(b-a)u + ]X = (b-a)u + (Tersedia tabel nilai numerik parameter U dan R)
METODE KUADRATUR GAUSS
ba
ba
2
ba
2
ba
127
ALGORITMA KUADRATUR GAUSS
Algoritma:a) Inisialisasi tabel koefisien gaussb) Definisikan fungsi integranc) Tentukan batas pengintegralan a dan bd) Inisialisasi : sum = 0e) Hitung : sum = sum + Ri x (Ui), i = 1 sampai nf) Hitung : I = (b-a) x sumg) Tulis hasil integral
128
METODE SIMPSON
Paling luas pemakaiannya Untuk pendekatannya memakai parabola yang melalui 3
ordinat dari 2 interval berdampingan Eksak untuk polinim derajat dua atau kurang Lebih teliti dan rumus tidak lebih rumit dari metode
trapesium n = banyak interval h =
I = (Y0 + 4Y1 + 2Y2 + 4Y3 + 2Y4 +…+ 2Yn-4 + 4Yn-3 + 2Yn-2 +
4Yn-1 + Yn) Kesalahan pemotongan : eT ~ (b-a) f (Q), a<Q<b
n
ab
3
h
IV
180
4h
129
ALGORITMA METODE SIMPSON
Algoritma:a) Definisikan fungsi integranb) Tentukan batas pengintegralan a dan b dan
jumlah segmen n (harus genap)c) Hitung : h = (b-a)/nd) Inisialisasi sum = F (a) + 4 x F (a+h)e) Hitung untuk i = 2 sampai i = n-1 dengan
indeks pertambahan sama dengan 2 sum = sum + 2 x F (a+ixh) + 4 x F (a+(i+1)h)
f) Hitung nilai integral I = h/3 x (sum + F(b))g) Tulis hasil perhitungan
130
PENUTUP
Semoga sukses dalam proses belajar !
Tim – MetNum 2005