Wiryanto
Pokok bahasan
1. Akar persamaan
2. Sistem Persamaan
3. Turunan dan Integral
4. Persamaan Diferensial
Buku:
1. John Mathews, Numerical methods for mathematics, sciences and engineering
2. Steven Chapra and R. Canale, Numerical methods for engineers
Evaluasi
1. Ujian tengah semester (35%)
2. Kuis dan tugas (10%)
3. Praktikum (20%)
4. Ujian Akhir Semester (35%)
1
L.H. Wiryanto
Beberapa contoh:
Hukum gas ideal:
PV nRT
P: tekanan
V: volume
n: jumlah/banyaknya mole
R: konstanta gas
T: temperatur
Hubungan tersebut digunakan secara luas karena bentuknya yang sederhana dan mudah
digunakan. Tentunya dengan kondisi P dan T dalam selang tertentu, dan keberlakuannya
terbatas pada gas tertentu saja.
2
L.H. Wiryanto
Dengan menggunakan model van der Waals, masalah yang kita hadapai merupakan
persamaan (polinon) derajat 5, disederhanakan menjadi derajat 3, dengan koefisien yang
tidak sederhana
Pv5 bPv 4 av3 (ab RT )v 2 0
1000
1
F1 F3
H2 2 30 60 3
F2
V2
V3
Titik 2:
Gaya horizontal
F2 F1 cos30o H 2 0 0.866F1 F2 H 2 0
3
L.H. Wiryanto
Gaya vertical
F1 sin 30o V2 0 0.5F1 V2 0
Titik 3:
Gaya horizontal
F2 F3 cos 60o 0 F2 0.5F3 0
Gaya vertical
F3 sin 60o V3 0 0.866F3 V3 0
0.866 0 0.5 0 0 0 F1 0
0.5 0 0.866 0 0 0 F2 1000
0.866 1 0 1 0 0 F3 0
0.5 0 0 0 1 0 H 2 0
0 1 0.5 0 0 0 V2 0
0 0 0.866 0 0 1 V3 0
Selanjutnya, bagaimana kita menyelesaikan SPL ini, mengingat matrik yang ada cukup
besar dibanding soal-soal yang selam ini diberikan pada aljabar linear dan angka yang
terlibat dalam matrik berupa bilangan real, tidak semua bulat. Untuk titik yang lebih
banyak, kita akan mendapatkan ukuran matrik yang lebih besar lagi. Contoh
permasalahan ini diharapkan memberi motivasi untuk mengetahui alternative
penyelesaian melalui numerik.
Algoritma
Prosedure yang terdiri dari serangkaian operasi, yang mempunyai arti tunggal, yang
dipakai untuk menyelesaikan sebuah masalah.
Karakteristik algoritma:
Tiap langkah harus didefiniskan dengan persis sehingga mempunyai arti yang
jelas dan maksud yang tunggal
Harus sampai pada solusi setelah berhingga langkah
Bersifat umum, algoritma untuk sebuah SPL harus dapat digunakan untuk ukuran
berapapun (berhingga).
Penulisan:
Flow chart: dalam bentuk diagram
Pseudocode: dalam bentuk kalimat
Komponen Algoritma
Input
Output
Langkah, berupa perintah atau perhitungan
Contoh:
4
L.H. Wiryanto
Terkait algoritma mengurutkan bilangan (nomer 3), berikut program dalam Fortran
program increasing
implicit double precision (a-h,o-z)
dimension a(50)
print *, 'Banyaknya bilangan n'
read *, n
c data diberikan
print *,'Masukkan bilangan yang diurutkan'
do 1 i=1,n
read *,a(i)
1 continue
do 2 i=1,n-1
do 3 j=i+1,n
5
L.H. Wiryanto
Buat program dalam bahasa pemrograman yang Anda kuasai seperti diatas, kemudian
terapkan pada bilangan {0, 0.5, 0.7, 0.56, 4.3, 0.1, -30.2, 10.6, 3.4, -33.2}
Galat/error/kesalahan:
Perbedaan nilai dari besaran yang dihitung secara eksak dan hampiran.
E x x * , kesalahan mutlak dari nilai eksak x, x* sebagai hampiran
x x*
e , kesalahan relative.
x
Dalam hal |E|<<x, sering digunakan kesalahan relative e.
3. z=0.000012, z*=0.000015
E=-0.000003
e=0.25
Contoh no 1 dan 2 lebih baik menggunakan e, sedangkan no 3 menggunakan E.
Contoh:
Untuk menghitung sin(0.1), kita gunakan deret Mc Laurin
x3 x5 x 7
sin x x
3! 5! 7!
6
L.H. Wiryanto
Dalam perhitungan, hanya mampu dijumlahkan sampai suku tertentu, misalnya sampai 3
suku pertama
0.13 0.15
sin 0.1 0.1
3! 5!
7
x
Kesalahan pemotongan: R5 ( x) untuk 0<x<0.1.
7!
Pembulatan:
Kesalahan akibat pembulatan bilangan, terkait dengan kemampuan alat dalam
menyimpan data.
Contoh:
Bila kita menyimpan angka 2/3=0.666666… pada alat yang mempunyai kemampuan
menyimpan sampai 5 angka decimal, maka angka yang disimpan 0.66667. Terjadi
pembulatan.
Kesalahan ini akan merambat dalam proses perhitungan. Misalkan x dan y dihampiri
dengan x* dan y*, kesalahan masing-masing Ex=x-x*, Ey=y-y*, maka perhitungan (x+y)
mempunyai kesalahan
Ex y Ex E y
Begitu juga dengan operasi (x-y). Untuk perkalian berlaku
xy Ex x * E y y * x * y * x * E y y * Ex Ex E y
Kesalahan perambatan sebesar x*Ey+y*Ex
Untuk kesalahan perambatan berdasar kesalahan relative dapat diperoleh sebagai berikut
x x* x*
1. ex x
x 1 ex
xy 1 (ex ey ) ex ey x * y *
x* y* x* y*
2. xy
1 ex 1 ey 1 (ex ey ) ex ey
xy x * y *
3. Kesalahan perambatan relative sebesar exy ex ey ex ey , tetapi
xy
ex ey ex ey , jadi exy ex ey
Galat pembulatan dalam suatu perhitungan kadang dapat diperkecil dengan mengubah
urutan perhitungan, seperti pada contoh berikut. Kita gunakan perhitungan sampai 4
desimal.
Diberikan f ( x) x x 1 x , hitung f(500).
7
L.H. Wiryanto
500 500
g (500) 11.1748
501 500 44.7437
Sedangkan nilai eksaknya g (500) 11.1747553...
Hal ini sesuai dengan analisa sebelumnya bahwa galat pengurangan dua bilangan, yang
hampir sama, akan semakin mengecil karena Ex y Ex E y .
Akar Persamaan
Permasalah dalam bab ini secara umum adalah menentukan x agar memenuhi f(x)=0,
untuk suatu fungsi y=f(x). Oleh karena itu bila diminta menyelesaikan g(x)=h(x), kita
dapat menyatakan f(x)=g(x)-h(x).
Ide metoda:
Tetapkan a dan b agar berlaku f(a)f(b)<0. Hal ini dapat dilakukan dengan melihat
dari kurva fungsi atau menghitung nilai fungsi pada beberapa nilai x.
Teorema nilai antara menjamin adanya akar r berada di dalam (a,b) sehingga
f(r)=0, dan dimungkinkan lebih dari satu, lihat ilustrasi pada Gambar 1.1a dan
1.1b, akan tetapi kita hanya meninjau untuk selang yang mempunyai satu akar.
a r b a r1 r2 r3 b
(a) (b)
Gambar 1.1: Plot fungsi kontinu pada (a,b), (a) mempunyai satu akar dan (b) mempunyai tiga akar.
8
L.H. Wiryanto
Dari selang (a,b) kita tetapkan c=(a+b)/2, sebagai titik tengah selang (a,b) dan
dimungkinkan akar berada pada (a,c) atau (c,b).
Periksa selang apakah f(a)f(c)<0 atau f(c)f(b)<0 atau f(c)=0.
Untuk kasus pertama atau kedua kita peroleh lebar selang yang lebih kecil, dan
proses di atas dapat diulang kembali. Sedangkan kasus ketiga iterasi selesai, kita
peroleh akar secara eksak.
Proses iterasi bisection diakhiri bila a atau b cukup dekat dengan c, dengan
memberikan kondisi |a-c|<tol atau |b-c|<tol, dengan tol bilangan kecil sebagai
toleransi kesalahan dalam perhitungan di sini.
Algoritma
9
L.H. Wiryanto
Contoh:
Untuk menentukan akar dari x x 2 0 , gunakan metoda bagi-dua dengan memberikan
contoh perhitungan 2 kali.
Jawab:
Tuliskan f ( x) x x 2 dan kurva dari fungsi seperti pada gambar, sehingga kita dapat
menebak bahwa akar berada pada selang [1,2]. Metoda bisection (bagi dua) dapat
digunakan dengan
Perhitungan ke 1:
a=1, b=2, dan f(1)=-1, f(2)= 0.828427124
c=(a+b)/2=1.5 dan f(1.5)= −0.162882695, aka r berada diantara 1.5 dan 2
Perhitungan ke 2
Selang yang baru a=1.5, b=2, dan c=(1.5+2)/2=1.75. Nilai fungsi f(1.75)=
0.315032400. Jadi akar berada diantara 1.5 dan 1.75
Proses diulangi kembali dengan a=1.5, b=1.75 dan seterusnya.
10
L.H. Wiryanto
y=f(x)
a c b
Penghentian iterasi dilakukan dengan cara yang berbeda dengan metoda bisection,
yaitu
|c c |
| ck 1 ck | tol atau k 1 k tol
| ck 1 |
Mengapa tidak dapat dilakukan seperti pada metoda sebelumnya?
Algoritma
Masukan : f(x)
a, b tebakan awal
tol batas toleransi kesalahan
Keluaran : r akar dari f(x)=0
Langkah:
1. fa:=f(a), fb:=f(b)
2. Jika fa*fb>0 maka proses gagal, selesai
3. cl:=2b-a, sebagai nilai awal untuk proses penghentian
4. c:=b-fb(b-a)/(fb-fa)
5. fc:=f(c)
6. Jika fa*fc<=0 maka b:=c, fb:=fc
else a:=c, fa:=fc endif
7. del:=|c-cl|, cl:=c
8. Jika del<tol maka akar r:=c, selesai
Jika-tidak kembali ke 4
11
L.H. Wiryanto
Contoh:
Untuk menentukan akar dari x x 2 0 , gunakan metoda regula false dengan
memberikan contoh perhitungan 2 kali.
Jawab:
Tuliskan f ( x) x x 2 dan kita tentukan akar yang berada pada selang [1,2]. Metoda
regula false dapat digunakan dengan
Perhitungan ke 1:
a=1, b=2, dan f(1)=-1, f(2)= 0.828427124
c=2-f(2)(2-1)/(f(2)-f(1))= 1.546918161 dan f(c)= −0.076017987, akar berada
diantara c dan b
Perhitungan ke 2
Selang yang baru a=1.546918161, b=2, dan c=b-f(b)(b-a)/(fb-fa)= 1.584999377.
Nilai fungsi f(c)= −0.004537163 0. Jadi akar berada diantara c dan b.
Proses diulangi kembali dengan a=1.584999377, b=2 dan seterusnya (Kapan
perhitungan dihentikan?).
Latihan:
Perhatikan kurva f ( x) sin x cos( x 2 1) 1 pada Gambar 1.3 di bawah.
Tentukan selang (a,b) untuk menghitung akar terkecil dari f(x)=0.
Kemudian terapkan pada metoda bisection (bagi dua) dan juga metoda regula
false untuk menentukan akar f(x)=0. Dalam menghitung sinus dan cosinus
gunakan x dalam satuan radian.
Amati apa yang terjadi bila proses penghentian pada metoda regula false dibuat
sama dengan netoda bagi dua.
12
L.H. Wiryanto
Algoritma
Masukan : f(x)
a, b tebakan awal
tol batas toleransi kesalahan
Keluaran : r akar dari f(x)=0
Langkah:
1. fa:=f(a), fb:=f(b)
2. Jika fa*fb>0 maka proses gagal, selesai
3. cl:=2b-a, sebagai nilai awal untuk proses penghentian
4. Kiri:=0, Kanan:=0
5. c:=b-fb(b-a)/(fb-fa)
6. fc:=f(c)
7. Jika fa*fc<=0 maka b:=c, fb:=fc, Kanan:=0, Kiri:=Kiri+1, Jika Kiri>=2
maka fa:=fa/2
8. else a:=c, fa:=fc, Kiri:=0, Kanan:=Kanan+1, Jika Kanan>=2 maka
fb:=fb/2 endif
9. endif
10. del:=|c-cl|, cl:=c
11. Jika del<tol maka akar r:=c, selesai
12. Jika-tidak kembali ke 5
Catatan:
i. garis singgung dari y=f(x) melalui (x0,f(x0)) adalah
y f ( x0 ) f '( x0 ) x x0
Perpotongan dengan sumbu x terjadi dengan memasukkan y=0, sehingga diperoleh
13
L.H. Wiryanto
f ( x0 )
x x0
f '( x0 )
Metoda ini jauh lebih cepat dibandingkan dengan metoda-metoda sebelumnya.
ii. Bila xk barisan dari hasil iterasi Newton yang konvergen ke p, maka limit pada
rumus iterasi memberikan bahwa p akar dari f, seperti yang ditunjukkan di bawah.
f ( xk )
lim xk 1 lim xk
k k
f '( xk )
p p
f ( p) 0
f lim xk
k
f ' lim x
k
k
y=f(x)
x0
x1
14
L.H. Wiryanto
x1 x0
x0 x1
(a) (b)
Gambar 1.5 Ilustrasi metoda Newton yang memberikan iterasi divergen, (a) karena siklik, (b) divergen
p0 p1
p2
15
L.H. Wiryanto
Ulangi proses perhitungan di atas dengan (p1,f(p1)) dan (p2,f(p2)), dan seterusnya
maka diperoleh rumus iterasi
f ( pk ) pk pk 1
pk 1 pk , k 1, 2,
f ( pk ) f ( pk 1 )
Hal ini dapat ditunjukkan melalui teorema nilai rata-rata yang menjamin adanya
c (a, b) sehingga
g (b) g (a)
g '(c)
ba
g '( x) ada untuk g C[ a ,b ] .
Kemudian r sebagai akar berlaku
| r p1 || g (r ) g ( p0 ) || g '(c) || r p0 || r p0 |
Jarak p1 ke r menjadi lebih dekat dibanding p0 ke r. Secara umum, setelah k iterasi
berlaku
| r pk | K | r pk 1 | K 2 | r pk 2 | K k | r p0 |
dan pk berada pada (a,b). Dengan mengambil k diperoleh lim | r pk | 0 .
k
y=x
y=g(x)
y=g(x)
x0 x1 x0 x1
y=x
Gambar 1.7. Dua macam iterasi titik tetap yang menghasilkan perhitungan konvergen.
16
L.H. Wiryanto
Analisa kekonvergenan dari metoda titik tetap tersebut selanjutnya diterapkan pada
metoda Newton untuk mendapat syarat berlakunya iterasi pada metoda Newton, yaitu
iterasi pada metoda Newton dijamin konvergen untuk f C[2a ,b ] dengan r (a, b) , dan
disyaratkan p0 dekat ke r.
f ( x)
Untuk kekonvergenan, kita tuliskan g ( x) x sebagai ganti barisan pk .
f '( x)
Kemudian turunan
f '( x)2 f ( x) f ''( x) f ( x) f ''( x)
g '( x) 1
f '( x)2 f '( x) 2
dihitung pada x=r, yang memberikan nilai nol karena r sebagai akar dari f. Selain itu, g '
juga kontinu karena disyaratkan f C[2a ,b ] , maka ada selang kecil yang memuat r
sehingga berlaku | g '( x) | 1 . Menurut iterasi titik tetap barisan pk dijamin konvergen
dan tunggal.
Berikut ini diberikan contoh perhitungan terkait menentukan akar f ( x) 1 x sin x pada
selang [0,2]. Lebih dahulu kita buat plot f untuk mengetahui posisi akar secara
keseluruhan, Gambar 1.8, dan kemudian kita persempit pada selang [0,2], Gambar 1.9,
menggunakan MAPLE.
Untuk menggunakan metoda iterasi titik tetap, kita bentuk fungsi g ( x) 1 x sin( x) x
yang dipotongkan dengan y x . Plot fungsi diberikan pada Gambar 1.10 untuk selang
yang lebar dan Gambar 1.11 untuk selang [0,2].
17
L.H. Wiryanto
18
L.H. Wiryanto
19
L.H. Wiryanto
1 pl=po
pn=1.0-pl*sin(pl)+pl
er=abs(pl-pn)
po=pn
print 2,n,pn,er
write(11,2) n,pn,er
n=n+1
if(n .gt. 50) er=0.0
if(er .gt. xtol) goto 1
2 format(i5,3x,f13.8,3x,f13.9)
close(unit=11)
stop
end
p0 0.0 p0 3.0
n pn | pn pn 1 | 1 3.57664000 .576640000
2 6.08402600 2.507386000
1 1.00000000 1.000000000 3 8.28772100 2.203694000
2 1.15852900 .158529000 4 1.76743700 6.520284000
3 1.09706800 .061461350 5 1.03406100 .733375800
4 1.12081600 .023748560 6 1.14540700 .111345500
5 1.11157100 .009245431 7 1.10208100 .043325980
6 1.11516300 .003592272 8 1.11886000 .016779390
7 1.11376600 .001397008 9 1.11233000 .006530353
8 1.11430900 .000543126 10 1.11486800 .002537966
9 1.11409800 .000211168 11 1.11388100 .000986949
10 1.11418000 .000082036 12 1.11426500 .000383688
11 1.11414800 .000031869 13 1.11411500 .000149250
12 1.11416100 .000012335 14 1.11417300 .000058029
13 1.11415600 .000004718 15 1.11415100 .000022598
14 1.11415800 .000001905 16 1.11416000 .000008858
15 1.11415700 .000000744 17 1.11415600 .000003393
16 1.11415700 .000000249 18 1.11415700 .000001243
17 1.11415700 .000000082 19 1.11415700 .000000413
20 1.11415700 .000000084
Bandingkan hasil perhitungan menggunakan metoda titik tetap dengan metoda lain,
diberikan pada table berikut.
Program bisection untuk f(x)=1-xsin(x)
program bisection
xtol=0.0000001
20
L.H. Wiryanto
open(11, file='bsection.dat')
n=1
a=2.0
b=4.0
1 c=(a+b)/2.0
fa=1.0-a*sin(a)
fb=1.0-b*sin(b)
fc=1.0-c*sin(c)
if(fa*fb .gt. 0.0) n=55
if(fa*fc .lt. 0.0) then
b=c
else
if(fb*fc .lt. 0.0) then
a=c
endif
endif
print 2,n,c,fc
write(11,2) n,c,fc
n=n+1
er=abs(fc)
if(n .gt. 50) er=0.0
if(er .gt. xtol) goto 1
2 format(i3,1x,f10.8,1x,f10.8)
close(unit=11)
stop
end
21
L.H. Wiryanto
endif
endif
print 2,n,a,c,b,fc
write(11,2) n,a,c,b,fc
n=n+1
if(n .gt. 50) fc=0.0
if(abs(fc) .gt. xtol) goto 1
2 format(i3,4(1x,f10.8))
close(unit=11)
stop
end
22
L.H. Wiryanto
Soal Latihan:
1. Sebuah tangki berbentuk silinder, diletakkan mendatar, dengan jari-jari r 2 dan
panjang L 5 . Jika tangki tersebut diisi air sebesar V 8 , tentukan tinggi
permukaan air di dalam tangki. Hubungan volume dan tinggi permukaan berbentuk
r h 2
V r 2 cos 1 r h 2rh h L
r
Petunjuk: Tentukan lebih dahulu selang yang memuat akar, kemudian gunakan
metoda pengurung pada selang tersebut.
2. Tangki berbentuk bola dengan jari-jari r 1 diisi air sebanyak V 0.5 . Hitung
tinggi permukaan air h di dalam bola yang memenuhi persamaan
h2 3r h
V
3
23
L.H. Wiryanto
h3 3V /
menggunakan iterasi titik tetap h , kemudian ulangi menggunakan
3r
h 3 3 rh2 V / . Gunakan tebakan awal h0 2.0 dan 3.14159 . Jelaskan
apa yang Saudara peroleh.
24