Вы находитесь на странице: 1из 130

METODE NUMERIK &

FORTRAN

FAKULTAS ILMU KOMPUTER


UNIVERSITAS GUNADARMA
1
TIM PENYUSUN
Suryadi M.T
Teguh Yuniarko
Mike Susmikanti
Maukar
Mufid Nilmada
Miftah Andriansyah
Erni Rihyanti
Fitri Ningsih
Umi Sholikhah

2
POKOK BAHASAN (1)

Pendahuluan (Algoritma)
Solusi Persamaan Non Linier
Metode Bisection
Metode False Position
Metode Secant
Metode Fixed point iteration
Metode Newton Raphson

3
POKOK BAHASAN (2)

Solusi Sistem Persamaan Linier


Eliminasi Gauss
Eliminasi Gauss Yourdan
Iterasi Gauss-Seidel
Interpolasi
Interpolasi Linier
Interpolasi Kuadrat
Interpolasi Lagrange
Interpolasi Newton
4
POKOK BAHASAN (3)

Integrasi Numerik
Metode Empat persegi panjang
Metode Trapesium
Metode Simpson
Metode Kuadratur Gauss

5
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.
6
PEMROGRAMAN TERSTRUKTUR

FAKULTAS ILMU KOMPUTER


UNIVERSITAS GUNADARMA
7
Pemrograman Terstruktur

Coding

Struktur Data
Analisa +
Program
Persoalan Algoritma

Pengembangan
Algoritma

8
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 9
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)

10
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) 11
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
12
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

13
Garis Besar

Di dalam menyusun algoritma, hanya dikenal 3 jenis struktur proses :

1. Struktur sederhana : : Perintah-perintah dilakukan secara


(sequence) berurutan
2. Struktur berulang :: Satu/sekumpulan perintah dilakukan
(repetition/loop) berulang-ulang
3. Struktur bersyarat : Satu/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

14
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

15
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

16
Struktur Logika

N
1 ? y N
1 1
y

2
2 2 4

3
3 3

(1) (2) (3)

Bentuk umum dari 3 struktur kendali proses

17
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

2
1 Y
?
2 T
T
?
Y
DO WHILE DO UNTIL 18
Struktur Logika

b. Struktur Bersyarat dapat dibedakan :


o Struktur 2 pilihan : IF THEN ELSE
o Struktur lebih dari 2 pilihan : NESTED IF/ DO CASE

Y T
?
Y
?

If - Then - Else

19
Struktur Logika

Nested If Do Case

20
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 D
dimana 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

21
Contoh 2

Menjumlahkan n buah bilangan

Persoalan : hitung
S i 1 ai
n

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.

22
Pengembangan Algoritma

Dekomposisi :
1. Baca/masukkan jumlah bilangan yang akan dijumlahkan
2. Baca/masukkan bilangan-bilangan yang akan dijumlah
3. Jumlahkan satu per satu bilangan di atas ke suatu nilai total
4. 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
23
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 integer
Varibel penyimpanan masing-masing bilangan linier array (ai)
dan bertipe integer/real
Variabel penyimpanan nilai total (s) bertipe integer/real

24
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 = 0
4. Untuk nilai variabel i dari 1 s/d n lakukan :
s = s + ai
5. Cetak variabel s
25
Pengembangan Algoritma

Algoritma 2 :
1. Baca/masukkan suatu nilai dan simpan pada
variabel n
2. Set isi variabel s=0
3. Untuk nilai variabel i dari s/d n lakukan :
a. baca/masukkan nilai ai
b. s = s + ai
4. Cetak variabel s

26
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 !

27
SOLUSI
PERSAMAAN NON LINIER

METODE BISEKSI (BAGI DUA)

28
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)
29
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])
30
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.

31
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.

32
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
ENDIF
ENDWHILE
33
Algoritma Biseksi (2)
IF F(X0)=0 THEN
OUTPUT (X0)
ELSE IF F(X1) = 0 THEN
OUTPUT (X1)
ELSE
OUTPUT (X2)
ENDIF

34
KEUNTUNGAN BISEKSI

Selalu berhasil menemukan akar


(solusi) yang dicari, atau dengan
kata lain selalu konvergen.

35
KELEMAHAN BISEKSI

Bekerja sangat lambat. Tidak


memandang bahwa sebenarnya
akar atau solusi yang dicari telah
berada dekat sekali dengan X0
ataupun X1.

36
SOLUSI
PERSAMAAN NON LINIER

METODE REGULA FALSI


(FALSE POSITION)
37
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.
38
METODE REGULA FALSI
Persamaan garis lurus melalui
titik [X0,f(X0)] dan [X1,f(X1)],
yaitu :

x x0 y f ( x0 )

x1 x0 f ( x1 ) f ( x0 )
39
METODE REGULA FALSI
Garis tersebut berpotongan dengan
sumbu X Y = 0 dengan titik absisnya
yaitu X2, sehingga diperoleh :

( x1 x0 )
x2 x0 f ( x1 )
f ( x1 ) f ( x0 )
40
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]
41
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

42
ALGORITMA REGULA FALSI
INPUT X0,X1,T,F(X), MAX
I=0; FOUND = false
REPEAT
I=I+1
X2 = X1 -(X1 - X0)*F(X1)/(F(X1)-F(X0))
IF F(X0)*F(X2)<0 THEN
X1 = X2

43
ALGORITMA REGULA FALSI
ELSE
X0 = X2
ENDIF
IF (|(X2 - X1)/ X1|T OR I=MAX) THEN
FOUND=true
ENDIF
UNTIL (FOUND=true)
OUTPUT (X2)
44
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
45
KELEMAHAN Regula falsi

hal tersebut dikenal dengan pendekatan error


mutlak.

diperbaiki dengan pendekatan Error relatif :

x1 x2 x0 x2
T atau T
x1 x0
46
SOLUSI
PERSAMAAN NON LINIER

METODE SEKAN

47
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

48
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
49
Metode Sekan (lanjutan)

Proses Pencapaian Akar (Mtd. SEKAN)


Tambah gambar ! (halaman akhir)

50
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

51
Algoritma Sekan (lanjutan)

IF | (X0- X1)/ X0| T OR


i = Max THEN
Found = true
ENDIF
UNTIL (Found = true)
OUTPUT (X2)

52
53
SOLUSI
PERSAMAAN NON LINIER

METODE ITERASI TITIK TETAP

54
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

55
METODE ITERASI TITIK TETAP (contd)

Dari bentuk x = g(x), berarti akar dari f(x)


tak lain adalah perpotongan antara garis
lurus y = x dan kurva y = g(x).

56
57
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 x
c. x = e1/x 2x = x + e1/x x = 1/2(x +
e1/x)
58
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 = . ?

59
SOLUSI
PERSAMAAN NON LINIER

METODE NEWTON-RAPHSON

60
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)

61
Gambar Grafik

62
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)

63
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.

64
SOLUSI
SISTEM PERSAMAAN LINIER

65
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 = b
a11 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

66
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 di
peroleh Xn, xn-1, xn-2,,x2, x1

67
Contoh:
a11x1 + a12x2 + a13x3 = a14
a21x1 + a22x2 + a23x3 = a24
a31x1 + 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 4
a2j = a2j a21/a11 x a1j
NEXT j

Eliminir x1 pada baris ke tiga

FOR j = 1 to 4
a3j = a3j a31/a11 x a1j
NEXT j

68
Secara umum untuk mengeliminir x1:
FOR i = 2 to 3
FOR j = 1 to 4
aij = aij ai1/a11 x a1j
NEXT j
NEXT I
Secara umum untuk mengeliminir: xk
FOR i = k + 1, n
FOR j = k, n + 1
aij = aij aik/akk x akj
NEXT j
NEXT i

69
Setelah dieliminir x1 dan x2 maka diperoleh
a11 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

70
CONTOH KASUS
1. Tentukanlah solusi dari SPL:
x1 - 2x2 + x3 = 4
2x1 - 5x2 + 5x3 = 10
x1 + x2 + x3 = 7
(dpl x1, x2 dan x3 ?)

71
ALGORITMA GAUSS
FOR i = 1 to n
FOR j = 1 to n + 1
INPUT (aij)
NEXT j
NEXT I
FOR k = 1 to n 1
FOR i = k + 1 to n
u = aik/akk
FOR j = k to n + 1
aij = aij u * akj
NEXT j
NEXT I
NEXT k

72
xn = an n+1/ann
FOR i = n 1 DOWNTO 1
sum = 0
FOR j = i + 1 to n
sum = sum + aij * xj
NEXT j
xi = (ai n+1 sum)/aii
NEXT i
FOR i = 1 to n
OUTPUT (xi)
NEXT i

73
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

74
ALGORITMA PIVOTING PADA ELIMINASI GAUSS
IF p k THEN
FOR k = 1 to n-1
max = abs(akk) FOR i = k TO n+1
p=k temp = akl
FOR m = k + 1 to n akl = apl
IF abs(amk) > max THEN apl = temp
max = abs(amk)
NEXT i
p=m
ENDIF ENDIF
NEXT m FOR i = k+1 TO n
IF max THEN u = aik/akk
OUTPUT (ILL-CONDITION) FOR j = k TO n+1
STOP aij = aij u * akj
ENDIF NEXT j
NEXT i
NEXT k 75
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)

76
SOLUSI
SISTEM PERSAMAAN LINIER

METODE ITERASI GAUSS SEIDEL - IGS

77
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 : 78
Algoritma (pseudo code) IGS - 1

Langkah ke-1 :
Tebak sebarang nilai awal untuk variabel
x2 , x3 , ... , xn . Namakan nilai awal
tersebut x20 , x30 , , xn0 .

Langkah ke-2 :
Substitusikan x20 , x30 , , xn0 ke SPL (1)
untuk memperoleh nilai x1 lalu namakan
dengan x11 .
79
Algoritma (pseudo code) IGS - 2

Langkah ke-3 :
Substitusikan x11 , x30 , x40 , , xn0 ke SPL
(2) untuk memperoleh nilai x2 lalu
namakan dengan x21 .

Langkah ke-4 :
Substitusikan x11 , x21 , x40 , x50 , , xn0 ke
SPL (3) untuk memperoleh nilai x3 lalu
namakan dengan x31 .
80
Algoritma (pseudo code) IGS - 3

Langkah ke-5 :
dan seterusnya, sampai diperoleh x11 , x21
, x31 , , xn-11 , selanjutnya substitusika
ke SPL (n) untuk memperoleh nilai xn lalu
namakan dengan xn1 .

( Iterasi ke-1 selesai dengan diperolehnya


nilai : x11 , x21 , x31 , , xn-11 , xn1 . )
81
Algoritma (pseudo code) IGS - 4

Langkah ke-6 :
Ulangi langkah ke-2 s/d ke-5
(substitusikan x21 , x31 , , xn1 ke SPL (1)
untuk memperoleh nilai x1 lalu namakan
dengan x12 ). Sampai nanti diperoleh nilai
x12 , x22 , x32 , , xn-12 , xn2 .

82
Algoritma (pseudo code) IGS - 5

Langkah ke-7 :
Iterasi berakhir pada iterasi ke-k, bila :
| xjk xjk+1 | < T

dengan T nilai toleransi kesalahan yang


sudah ditetapkan sebelumnya.

83
Tingkat Konvergensinya
Algoritma tersebut BELUM TENTU
KONVERGEN !!!

Syarat Konvergensi :
Matriks koefisiennya (A) harus bersifat
DIAGONALLY DOMINANT

84
Matriks Diagonally Dominant

n
aii
j 1; j i
aij i
dan
n
i dengan aii
j 1; j i
aij
85
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 !

86
Jawab Contoh Soal 1 : (1)

Periksa tingkat konvergensinya.


Diperoleh bahwa :
|a11|=3 ; |a12|=10 ; |a21|=1 ; |a22|= 1
2
a11
j 1; j 1
a1 j untuk i 1 3 10
2
a22
j 1; j 2
a2 j untuk i 2 11

87
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 Periksa tingkat
3x1 10x2 = 3 konvergensinya !!
88
Jawab Contoh Soal 1 : (3)

Periksa tingkat konvergensinya.


Diperoleh bahwa :
|a11|= 1 ; |a12|= 1 ; |a21|= 3 ; |a22|= 10
2
a11
j 1; j 1
a1 j untuk i 1 11
2
a22
j 1; j 2
a2 j untuk i 2 10 3

89
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)
90
Jawab Contoh Soal 1 : (5)

Iterasi ke-1 :
1. Tebak nilai awal x20 = 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
91
Jawab Contoh Soal 1 : (6)

Iterasi ke-2 :
2. Substitusikan x21 = 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
92
Jawab Contoh Soal 1 : (7)

Iterasi ke-3 :
2. Substitusikan x22 = 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,237
Dan seterusnya.. 93
Jawab Contoh Soal 1 : (8)

Iterasi ke-4, ke-5 dst


Lanjutkan sendiri, sebagai latihan !!
Ingat, proses iterasi akan berhenti bila kondisi

| xjk xjk+1 | < 0,005

Terpenuhi !!

94
Jawab Contoh Soal 1 : (9)
Rangkuman Proses Iterasinya :
Iterasi ke- x1 x2
1 2,000 0,300
2 1,700 0,210
3 1,790 0,237
4 1,763 0,229
5 1,771 0,231
6 1,769 0,231 95
ALGORITMA IGS
INPUT A(n,n+1), e, maxit
INPUT xi (nilai awal)
k 1 ; big 1
WHILE (k maxit and big e) DO
big 0
FOR i = 1 TO n
sum 0
FOR j = 1 TO n
IF j i THEN
sum sum + aij
NEXT j
temp (ai n+1 sum) / aii
relerror abs((xi temp) / temp)
IF relerror big THEN
big relerror
xi temp
NEXT I
kk+1
ENDWHILE
IF k > maxit THEN
OUTPUT(TDK KONVERGEN)
ELSE OUTPUT (KONVERGEN)
ENDIF
OUTPUT(xi)

96
INTERPOLASI

97
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)

98
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

99
Jenis Interpolasi

Interpolasi Linier
Interpolasi Kuadrat
Interpolasi Lagrange
Interpolasi Newton

100
INTERPOLASI LINIER (1)

Misalkan ada m bilangan : x1, x2, ., xm dan


bilangan lain yang berkaitan : y1, y2 , ., ym
maka masalahnya : berapa harga y* pada
y
x* [xk,xk+1] ?
yk+1

? y*
yk

xk x* xk+1 x
101
INTERPOLASI LINIER (2)
Ambil ruas garis yang menghubungkan
titik (xk,yk) dan (xk+1,yk+1)
Diperoleh persamaan garisnya :
y * yk yk 1 yk

x * xk xk 1 xk
x * xk
y * yk ( yk 1 yk )
xk 1 xk
x * xk
y* yk ( yk 1 yk )
xk 1 xk 102
INTERPOLASI LINIER (3)
Jadi persamaan garisnya adalah :
x * xk
y* yk ( yk 1 yk )
xk 1 xk
y

yk+1

? y*
yk

xk x* xk+1 x 103
Contoh 1 : (1)

Diketahui data sebagai berikut :


x -3 -2 -1 0 1 2 3 4 5 6 7
y 9 4 1 0 1 4 9 16 25 36 49

Tentukan harga y pada x = 6,5 !


Jawab : x = 6,5 terletak antara x=6 & x=7
x xk
y yk ( yk 1 yk )
xk 1 xk
Hasilnya
(6,5 6)
y 36 (49 36) 42,5
(7 6) 104
Contoh 1 : (2)

Alternatif 2 :
x = 6,5 terletak antara x=1 & x=7
x xk
y yk ( yk 1 yk )
xk 1 xk
(6,5 1) (5,5)
y 1 (49 1) 1 (48) 45
(7 1) (6)
Hasilnya 105
Contoh 1 : (3)

x -3 -2 -1 0 1 2 3 4 5 6 7

y 9 4 1 0 1 4 9 16 25 36 49

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
106
Contoh 1 : (4)

Kesalahan mutlak (E), untuk :


y = 42,5 |42,5 42,25| = 0,25 = 25 %

Sedangkan untuk
y = 45 |45 42,25| = 3,25 = 325 %

107
Contoh-2 :
Diketahui tabel akar bilangan sbb :

N . 2,14 2,15 2,16 .


N1/2 . 1,46287 1,46629 1,46969 .

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,46799
Kesalahan mutlaknya |1,4679918 -1,46799| = 0,0000018

Tentukan akar dari 2,153 dan Kesalahan mutlaknya !


108
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

109
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)
110
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. :

111
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
( x x1)( x x 2)...( x xn)
y ( x) y0
( x 0 x1)( x 0 x 2)...( x 0 xn)
( x x0)( x x 2)...( x xn)
y1
( x1 x0)( x1 x 2)...( x1 xn)
.
.
( x x 0)( x x1)...( x xn 1)
yn
( xn x 0)( xn x1)...( xn xn 1) 112
Contoh 1:

Nilai yg. berkorespondensi dengan y = 10log x adalah :


X 300 304 305 307
10log x 2,4771 2,4829 2,4843 2,4871

Carilah 10log 301 ?


Untuk menghitung y(x) = 10log 301 dimana x = 301, maka nilai diatas
menjadi

x0 = 300 x1 = 304 x2 = 305 x3 = 307


y0 = 2,4771 y1 = 2,4829 y2 = 2,4843 y3 = 2,4871

113
Dengan menggunakan interpolasi lagrange

(301 304)(301 305)(301 307)


y (x) 2,4771
(300 304)(300 305)(300 307)
(301 300)(301 305)(301 307)
2,4829
(304 300)(304 305)(304 307)
(301 300)(301 304)(301 307)
2,4843
(305 300)(305 304)(305 307)
(301 300)(301 304)(301 305)
2,4871
(307 301)(307 304)(307 305)
1,2739 4,9658 4,4717 0,7106
y ( x) 2,4786
114
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.
(7 4)(7 19)
(7 12)(7 19) (3) (7 4)(7 12)
x (1) (12 4)(12 19) (4)
(4 12)( 4 19) (19 4)(19 12)
1 27 4
x 1,86
2 14 7

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. 115
INTEGRASI NUMERIK

116
INTEGRASI 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 :
b
L = f(x) dx
a

Contoh :
Hitung luas daerah di atas sumbu x yang dibatasi oleh kurva y = x2, antara x = 0 dan
x=4
4 4

( x ) dx x 13 (4) 3 - 13 (0) 3 64 21.33 satuan luas


2 1
Solusi : L = 3
3 3
0 0 117
METODE PERSEGI PANJANG
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 h = n( b-a )
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
h
L = h . f(xk )
k 1

118
METODE 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 :
f((xk -1 + xk ) / 2) 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
119
METODE PERSEGI PANJANG

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
120
METODE PERSEGI PANJANG

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

121
METODE PERSEGI PANJANG

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.


122
METODE TRAPESIUM

B. Metode Trapesium
Bagi interval (a, b) menjadi n sub-interval yang sama h = b n- a( )
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) )

h n 1

f(x 0 ) 2 f(x k ) f(x n )
2
k 1
123
METODE TRAPESIUM

124
METODE TRAPESIUM

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

xk 0 1 2 3 4
f(xk) 0 1 4 9 16

0 2 (1 4 9) 16 22
1
Luas total
2
h 3

f(x 0 ) 2 f(x k ) f(x 4 )
2 k 1
125
METODE KUADRATUR GAUSS

b
Rumusan yang paling akurat untuk integrasi numerik a

Tinjauan Gauss dalam perhitungan integral


F(x) dx berdasarkan nilai f(x) dalam sub interval yang tidak
berjarak
a
b
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 + a b ]
2
ab
X = (b-a)u + 2
(Tersedia tabel nilai numerik parameter U dan R)
126
ALGORITMA KUADRATUR GAUSS

Algoritma:
a) Inisialisasi tabel koefisien gauss
b) Definisikan fungsi integran
c) Tentukan batas pengintegralan a dan b
d) Inisialisasi : sum = 0
Hitung : sum = sum + Ri x (Ui), i = 1 sampai n
e)

f) Hitung : I = (b-a) x sum
g) Tulis hasil integral

127
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
ba
h=
n
h
3 I= (Y0 + 4Y1 + 2Y2 + 4Y3 + 2Y4 ++ 2Yn-4 + 4Yn-3 + 2Yn-2
+
4YIVn-1 + Yn)
hKesalahan pemotongan :
4

180
eT ~ (b-a) f (Q), a<Q<b

128
ALGORITMA METODE SIMPSON

Algoritma:
a) Definisikan fungsi integran
b) Tentukan batas pengintegralan a dan b dan jumlah
segmen n (harus genap)
c) Hitung : h = (b-a)/n
d) 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

129
PENUTUP
Semoga sukses dalam proses belajar !
Tim MetNum 2005

130

Вам также может понравиться