laporan runge kutta orde 1 - 4
TRANSCRIPT
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Dalam pandangan formalis, ”matematika adalah penelaahan struktur
abstrak yang didefinisikan secara aksioma dengan menggunakan logika simbolik
dan notasi matematika”. Sedangkan secara umum, ”matematika ditegaskan
sebagai penelitian pola dari suatu struktur, perubahan dan ruang”. Struktur
spesifik yang diselidiki oleh matematika sering kali berasal dari ilmu pengetahuan
alam termasuk di dalamnya biologi, akan tetapi yang paling umum berasal dari
fisika.
Pada perkembangannya, matematika tingkat lanjut digunakan sebagai alat
untuk mempelajari berbagai fenomena fisik yang kompleks khususnya berbagai
fenomena alam yang teramati agar pola struktur, perubahan ruang dan sifat-sifat
fenomena tersebut bisa didekati atau dinyatakan dalam sebuah bentuk perumusan
yang sistematis dan penuh dengan berbagai konvensi, simbol dan notasi. Hasil
perumusan yang menggambarkan prilaku dan proses fenomena fisik tersebut biasa
disebut model matematika. Karena kebanyakan fenomena fisik secara alamiah
berujung pada hubungan antara kuantitas dan laju perubahannya, maka
dibangunlah kalkulus, yang secara khusus topik tersebut dibahas dalam persamaan
diferensial.
Persamaan diferensial yang pada mulanya disebut sebagai “persamaan
turunan” merupakan persamaan yang diperkenalkan oleh Leibniz pada tahun 1676
(Finizio dan Ladas, 1988: 1). Secara definisi, ”persamaan diferensial merupakan
persamaan yang menyangkut turunan dari satu atau lebih variabel tak bebas
terhadap satu atau lebih variabel bebas” (Ross, 1984: 3).
Dan berdasarkan pada kasus kali ini adalah untuk menyelesaikan
persamaan defleksi dengan berbagai metode pendekatan secara numerik, yaitu
dengan metode euler, metode heun, metode polygon, metode raltson. Untuk itu
dilakukanlah praktikum ini untuk mengetahui perbedaan di antara metode-metode
tersebut.
2
1.2 Tujuan
1. Menyelesaikan persamaan profil muka air dengan menggunakan metode
euler, heun, polygon, raltson, runge kutta orde 3, dan runge kutta orde 4
2. Mengetahui besarnya nilai atau hasil antara metode euler, heun, polygon,
raltson, runge kutta orde 3, dan runge kutta orde 4
3
BAB II
TINJAUAN PUTAKA
Metode artinya cara, sedangkan numerik artinya angka, sehingga metode
numerik secara harfiah berarti cara berhitung dengan menggunakan angka-angka.
Sedangkan secara istilah, metode numerik adalah teknik yang digunakan untuk
memformulasikan persoalan matematik sehingga dapat dipecahkan dengan
operasi perhitungan atau aritmetika biasa (tambah, kurang, kali dan bagi) (Munir,
2006: 5). Secara lebih sederhana metode numerik merupakan cabang atau bidang
matematika khususnya matematika rekayasa, yang menggunakan bilangan untuk
menirukan proses matematika (Djojodiharjo, 2000: 1).
Metode numerik disebut juga sebagai alternatif dari metode analitik, yang
merupakan metode penyelesaian persoalan matematika dengan rumus-rumus
aljabar yang sudah baku atau lazim. Disebut demikian, karena adakalanya
persoalan matematik sulit diselesaikan atau bahkan tidak dapat diselesaikan secara
analitik sehingga dapat dikatakan bahwa persoalan matematik tersebut tidak
mempunyai solusi analitik. Sehingga sebagai alternatifnya, persoalan matematik
tersebut diselesaikan dengan metode numerik. Perbedaan utama antara metode
numerik dengan metode analitik terletak pada dua hal, yaitu:
a) Solusi dengan metode numerik selalu berbentuk angka, sedangkan dengan
metode analitik biasanya menghasilkan solusi dalam bentuk fungsi
matematikyang selanjutnya fungsi matematik tersebut dapat dievaluasi untuk
menghasilkan nilai dalam bentuk angka.
b) Dengan metode numerik hanya diperoleh solusi yang menghampiri atau
mendekati solusi sejati sehingga solusi numerik dinamakan juga solusi
hampiran approximation) atau solusi pendekatan. Akan tetapi, solusi
hampiran tersebut apat dibuat seteliti yang diinginkan. Solusi hampiran tentu
tidak tepat sama dengan solusi sejati, sehingga ada selisih antara keduanya,
dan selisih tersebut dinamakan sebagai galat (error). Sedangkan dengan solusi
analitik sudah pasti dihasilkan solusi sejati yang sesuai dengan kenyataannya
(Munir, 2006:5).
4
Metode penyelesaian persamaan diferensial biasa secara numerik terbagi
menjadi 2, yaitu metode satu langkah dan metode banyak langkah. Metode yang
termasuk satu langkah adalah metode deret Taylor, metode Euler, metode Runge
Kutta dan metode Heun. Sedangkan metode yang termasuk banyak langkah
adalah metode Adam-Bashforth-Moulton, metode Milne-Simpson dan metode
Hamming.
1. Metode Euler
Metode Euler adalah salah satu dari metode satu langkah yang paling
sederhana. Di banding dengan beberapa metode lainnya, metode ini paling kurang
teliti. Namun demikian metode ini perlu dipelajari mengingat kesederhanaannya
dan mudah pemahamannya sehingga memudahkan dalam mempelajari metode
lain yang lebih teliti.
Akan diselesaikan persamaan diferensial biasa dengan bentuk sebagai
berikut:
Persamaan tersebut dapat didekati dengan bentuk berikut:
atau
atau
dengan adalah perkiraan kemiringan yang digunakan untuk ekstrapolasi dari
nilai yi ke yi + 1 yang berjarak x yaitu selisih antara x = xi + 1 xi. Persamaan
diatas dapat digunakan untuk menghitung langkah nilai y secara bertahap.
Metode Euler dapat diturunkan dari Deret Taylor:
),( yxfdx
dy
)y,x(fxx
yy
x
y
dx
dy
1
1
ii
ii
Δ
Δ
)xx)(y,x(fyy 11 iiii
...(1)xyy 1 ΔΦii
...!2
xy
!1
xyyy
2'''
1
ΔΔiiii
5
Apabila nilai x kecil, maka suku yang mengandung pangkat lebih tinggi
dari 2 adalah sangat kecil dan dapat diabaikan, sehingga persamaan diatas dapat
ditulis menjadi:
Dengan membandingkan persamaan (1) dan persamaan (2) dapat
disimpulkan bahwa pada metode Euler, kemiringan = = f (xi , yi), sehingga
persamaan (2) dapat ditulis menjadi:
dengan i = 1, 2, 3, … Persamaan (3) adalah metode Euler, nilai yi + 1 diprediksi
dengan menggunakan kemiringan fungsi (sama dengan turunan pertama) di titik xi
untuk diekstrapolasikan secara linier pada jarak sepanjang pias x. Gambar 1,
adalah penjelasan secara grafis dari metode Euler.
Gambar1. Metode Euler
Kesalahan Metode Euler
Penyelesaian numerik dari persamaan diferensial biasa menyebabkan
terjadinya dua tipe kesalahan, yaitu:
1. Kesalahan pemotongan, yang disebabkan oleh cara penyelesaian yang
digunakan untuk perkiraan nilai y.
....(2)xyyy '
1 Δiii
...(3)x)y,x(fyy 1 Δiiii
6
2. Kesalahan pembulatan, yang disebabkan oleh keterbatasan jumlah angka (digit)
yang digunakan dalam hitungan.
Kesalahan pemotongan terdiri dari dua bagian.
1. Pertama adalah kesalahan pemotongan lokal yang terjadi dari pemakaian suatu
metode pada satu langkah.
2. Kedua adalah kesalahan pemotongan menyebar yang ditimbulkan dari
perkiraan yang dihasilkan pada langkah-langkah berikutnya. Gabungan dari
kedua kesalahan tersebut dikenal dengan kesalahan pemotongan global.
Besar dan sifat kesalahan pemotongan pada metode Euler dapat dijelaskan
dari deret Taylor. Untuk itu dipandang persamaan diferensial berbentuk:
sedang x dan y adalah variabel bebas dan tak bebas.
Penyelesaian dari persamaan tersebut dapat diperkiraan dengan deret Taylor:
Apabila persamaan (4) disubstitusikan ke persamaan (5), akan menghasilkan:
Perbandingan antara persamaan (3) dan persamaan (6) menunjukkan
bahwa metode Euler hanya memperhitungkan dua suku pertama dari ruas kanan
persamaan (6). Kesalahan yang terjadi dari metode Euler adalah karena tidak
memperhitungkan suku-suku terakhir dari persamaan (6) yaitu sebesar:
dengan t adalah kesalahan pemotongan lokal eksak. Untuk x yang sangat kecil,
kesalahan seperti yang diberikan oleh persamaan (7)adalah berkurang
dengan bertambahnya order (order yang lebih tinggi). Dengan demikian suku
)4....()y,x(f'y
dx
dy'y
)5...(R!n
xy...
!2
xy
!1
xyyy
2'''
1 nΔΔΔ n
n
iiiii
)6...(R...!3
x)y,x(''f
!2
x)y,x('f
!1
x)y,x(fyy
32
1 niiiiiiii
ΔΔΔ
)7...(R...!3
x)y,x(''f
!2
x)y,x('f
32
niiiit
ΔΔ
7
yang mengandung pangkat lebih besar dari dua dapat diabaikan, sehingga
persamaan (7) menjadi:
dengan a adalah perkiraan kesalahan pemotongan lokal.
2. Metode Heun
Metode Heun merupakan Perbaikan Metode Euler, Metode Euler
mempunyai ketelitian yang rendah karena galatnya besar (sebanding dengan h).
Kekurangan galat ini diperbaiki dengan menggunakan metode Heun.
Pada metode Heun, solusi dari metode Euler dijadikan sebagai solusi
perkiraan awal (predictor) selanjutnya perkiraan awal diperbaiki dengan metode
Heun (corrector). Metode Heun diturunkan sbb :
Pandang PDB (Persamaan Differensial Biasa) orde satu
Persamaan (*), suku
Bersesuaian dengan aturan trapesium pada integrasi numerik. Dapat dibuktikan
bahwa galat perlangkah metode Heun sama dengan galat kaidah trapezium
Galat Metode Heun :
Bukti:
Misalkan ;
Yr+1 adalah nilai y sejati di xr+1
yr+1 adalah hampiran nilai y di xr+1
)8...(!2
x)y,x('f
2Δiia
)(,()(' xyxfxy
...(*))],(),([:
),(:Pr
1)0(
121
1)0(
rrrrh
rr
rrrr
yxfyxfyyCorrector
yxhfyyedictor
1)0(
1,,2
rrrr yxfyxfh
3
1
''3
),(12
hO
xtxtyh
E rrp
8
Uraikan Yr+1 di sekitar xr
Menghasilkan:
Dengan menyatakan
Persamaan menjadi
Dari persamaan (*)
Uraikan
Dengan menggunakan Deret Taylor di sekitar xr , menghasilkan:
Persamaan (*) menjadi
Galat perlangkah = nilai sejati-nilai hampiran
3. Metode Poligon
Metode Poligon dapat juga disebut sebagai modifikasi dari metode Euler. Metode
Euler digunakan untuk memprediksi kemiringan nilai y pada titik tengah interval.
Untuk itu pertama kali dihitung nilai yi + 1/2 berikut ini. Gambar 2 adalah
penjelasan dari metode tersebut.
)1...(...'''6
''2
')(32
11 rrrr yh
yh
hyyxY
makafyxfy rrrr ,),('
)2...(...''6
'2
)(32
1 rrrrr fh
fh
hfyxY
)],(),([ 1)0(
121 rrrrh
rr yxfyxfyy
),( 1)0(
1 rr yxf
)3...(...''4
'2
),(32
10(
1 rrrrrr fh
fh
hfyyxf
)4...(...''4
'2
32
1 rrrrr fh
fh
hfyy
11 rr yY
1
3
),(''12
rrr xtxtfh
9
2
Δ),( iii
2
1i
xyxfyy
Gambar 2. Metode Euler yang dimodifikasi (Poligon)
Kemudian nilai tersebut digunakan untuk mengestimasi kemiringan pada
titik tengah interval, yaitu :
),(2
1i
2
1i
'
2
1i
yxfy
Kemiringan tersebut merupakan perkiraan dari kemiringan rerata pada interval,
yang kemudian digunakan untuk ekstrapolasi linier dari xi ke xi + 1 dengan
menggunakan metode Euler:
xyxfyy Δ),(2
1i
2
1i
i1i
4. Metode Runge-Kutta
Pada metode Euler memberikan hasil yang kurang teliti maka untuk
mendapatkan hasil yang lebih teliti perlu diperhitungkan suku yang lebih banyak
dari deret Taylor atau dengan menggunakan interval x yang kecil. Kedua cara
tersebut tidak menguntungkan. Penghitungan suku yang lebih banyak
memerlukan turunan yang lebih tinggi dari fungsi nilai y (x), sedang penggunaan
x yang kecil menyebabkan waktu hitungan lebih panjang.
10
Metode Runge-Kutta memberikan hasil ketelitian yang lebih besar dan
tidak memerlukan turunan dari fungsi, bentuk umum dari metode Runge-Kutta
adalah:
xxyxyy Δ)Δ,,(Φ iii1i (12)
dengan (xi, yi, x) adalah fungsi pertambahan yang merupakan kemiringan
rerata pada interval.
Fungsi pertambahan dapat ditulis dalam bentuk umum:
nn2211 ...Φ kakaka (13)
dengan a adalah konstanta dan k adalah:
k1 = f (xi, yi)
k2 = f (xi + p1x, yi + q11 k1x)
k3 = f (xi + p2x, yi + q21 k1x + q22 k2x)
kn = f (xi + pn – 1x, yi + qn – 1, 1 k1x + qn – 1, 2 k2x + + qn – 1, n – 1 kn – 1x)
Persamaan tersebut menunjukkan bahwa nilai k mempunyai hubungan berurutan.
Nilai k1 muncul dalam persamaan untuk menghitung k2, yang juga muncul
dalam persamaan untuk menghitung k3, dan seterusnya. Hubungan yang berurutan
ini membuat metode Runge-Kutta adalah efisien dalam hitungan.
Ada beberapa tipe metode Runge-Kutta yang tergantung pada nilai n yang
digunakan.
Untuk n = 1, yang disebut Runge-Kutta order satu, persamaan (13) menjadi:
),(Φ ii111 yxfaka
Untuk a1 = 1 maka persamaan (12) menjadi:
xyxfyy Δ),( iii1i
yang sama dengan metode Euler.
Di dalam metode Runge-Kutta, setelah nilai n ditetapkan, kemudian nilai
a, p dan q dicari dengan menyamakan persamaan (8.19) dengan suku-suku dari
deret Taylor.
1) Metode Runge-Kutta order 2
Metode Runge-Kutta order 2 mempunyai bentuk:
11
xkakayy Δ)( 2211i1i (8.22a)
dengan:
),( ii1 yxfk (8.22b)
)Δ,Δ( 111i1i2 xkqyxpxfk (8.22c)
Nilai a1, a2, p1 dan q11 dievaluasi dengan menyamakan persamaan (8.22a) dengan
deret Taylor order 2, yang mempunyai bentuk:
2
Δ),('
1
Δ),( iiiii1i
xyxf
xyxfyy
(15)
dengan ),(' ii yxf dapat ditentukan dari hukum berantai (chain rule) berikut:
dx
dy
y
f
x
fyxf
),(' ii (16)
Substitusi persamaan (16) ke dalam persamaan (15) menghasilkan:
2
Δ)(
1
Δ),( iii1i
x
dx
dy
y
f
x
fxyxfyy
(17)
Dalam metode Runge-Kutta ini dicari nilai a1, a2, p1 dan q11 sedemikian
sehingga persamaan (8.22a) ekivalen dengan persamaan (17). Untuk itu
digunakan deret Taylor untuk mengembangkan persamaan (8.22c). Deret Taylor
untuk fungsi dengan dua variabel mempunyai bentuk:
...),(),(
y
gs
x
gryxgsyrxg
Dengan cara tersebut, persamaan (8.22c) dapat ditulis dalam bentuk:
)Δ(ΔΔ),()Δ,Δ( 2
1111ii111i1i x0y
fxkq
x
fxpyxfxkqyxpxf
Bentuk diatas dan persamaan (8.22b) disubstitusikan ke dalam persamaan (8.22a)
sehingga menjadi:
)x(0x
f)y,x(fxqa
x
fxpa)y,x(fxa)y,x(fxayy
32
112
2
12211
ΔΔ
ΔΔΔ
ii
iiiiii
atau
12
)Δ(Δ),(
Δ),(),(
32
ii11212
ii2ii1i11
x0xx
fyxfqa
x
fpa
xyxfayxfayy
(8.26)
Dengan membandingkan persamaan (17) dan persamaan (8.26), dapat
disimpulkan bahwa kedua persamaan akan ekivalen apabila:
a1 + a2 = 1. (8.27a)
a2 p1 = 2
1. (8.27b)
a2 q11 = 2
1. (8.27c)
Sistem persamaan diatas yang terdiri dari tiga persamaan mengandung
empat bilangan tak diketahui, sehingga tidak bisa diselesaikan. Untuk itu salah
satu bilangan tak diketahui ditetapkan, dan kemudian dicari ketiga bilangan yang
lain. Dianggap bahwa a2 ditetapkan, sehingga persamaan (8.27a) sampai
persamaan (8.27c) dapat diselesaikan dan menghasilkan:
21 1 aa (8.28a)
2
1112
1
aqp (8.28b)
Karena nilai a2 dapat dipilih sembarang, maka akan terdapat banyak metode
Runge-Kutta order 2.
Dibawah ini merupakan 3 metode Runge-Kutta order 2 yang sering
digunakan.
a) Metode Heun
Apabila a2 dianggap 2
1, maka persamaan (8.28a) dan persamaan (8.28b)
dapat diselesaikan dan diperoleh:
.1
.2
1
111
1
qp
a
Parameter tersebut apabila disubstitusikan ke dalam persamaan (8.22a) akan
menghasilkan:
13
xkkyy Δ)2
1
2
1( 21i1i
(8.29a)
dengan:
),( ii1 yxfk (8.29b)
)Δ,Δ( 1ii2 xkyxxfk (8.29c)
dimana k1 adalah kemiringan fungsi pada awal interval dan k2 adalah kemiringan
fungsi pada akhir interval. Dengan demikian metode Runge-Kutta order 2 adalah
sama dengan metode Heun.
b) Metode Poligon (a2 = 1)
Apabila a2 dianggap 1, maka persamaan (8.28a) dan persamaan (8.28b) dapat
diselesaikan dan diperoleh:
.2
1
.0
111
1
qp
a
Parameter tersebut apabila disubstitusikan ke dalam persamaan (8.22a) akan
menghasilkan:
xkyy Δ2i1i (8.30a)
dengan:
),( ii1 yxfk (8.30b)
)Δ2
1,Δ
2
1( 1ii2 xkyxxfk (8.30c)
c) Metode Ralston
Dengan memilih a2 =3
2, akan menghasilkan kesalahan pemotongan minimum
untuk metode Runge-Kutta order 2. Dengan a2 =3
2, didapat:
.4
3
.3
1
111
1
qp
a
sehingga :
14
xkkyy Δ)3
2
3
1( 21i1i
(8.31a)
dengan:
),( ii1 yxfk (8.31b)
)Δ4
3,Δ
4
3( 1ii2 xkyxxfk (8.31c)
Pada saat membahas metode Euler untuk penyelesaian persamaan
diferensial, kita telah sampai pada kesimpulan bahwa truncation error metode
Euler terus membesar seiring dengan bertambahnya iterasi. Dikaitkan dengan hal
tersebut, metode Runge-Kutta Orde Empat menawarkan penyelesaian persamaan
diferensial dengan pertumbuhan truncation error yang jauh lebih kecil.
Persamaan-persamaan yang menyusun metode Runge-Kutta Orde Empat
adalah
15
BAB III
METODE KERJA
3.1 Kasus
Saluran dengan tampang segi empat mempunyai lebar dasar B = 5m. Debit
Q = 10m3/s , kemiringan dasar saluran Io = 0.0005 dan koefisien manning n =
0.025. Kedalaman air diujung.
Hitung profil muka air disebelah hulu sepanjang 1500m dengan ∆x =
100m , dengan metode:
1. Euler 4. Raltson
2. Heun 5. Runge kutta orde 3
3. Poligon 6. Runge kutta orde 4
Persamaan Profil muka air:
f(x,y) = Io – (n2 Q
2 / A
2 R
4/3) / 1 – (Q
2 T / g A
3)
Dengan: A = By T = B
P = B + 2y R = A / P
g= 9.81 m/s2
3.2 Algoritma
3.2.1 Metode Euler
1. Tentukan panjang saluran (L = 1500)
2. Tentukan selang (∆x = 100)
3. Tentukan beberapa konstanta
B = 5 m (Lebar dasar)
Q = 10 m3/s (Debit)
Io = 0.0005 (Kemiringan dasar saluran)
n = 0.025 (Koefisien manning)
y = 2.0 m (Kedalaman ujung hilir)
4. Masukkan angka atau konstanta-konstanta kedalam persamaan
5. Hitung dengan menggunakan metode euler
16
3.2.2 Metode Heun
1. Tentukan panjang saluran (L = 1500)
2. Tentukan selang (∆x = 100)
3. Tentukan beberapa konstanta
B = 5 m (Lebar dasar)
Q = 10 m3/s (Debit)
Io = 0.0005 (Kemiringan dasar saluran)
n = 0.025 (Koefisien manning)
y = 2.0 m (Kedalaman ujung hilir)
4. Masukkan angka atau konstanta-konstanta kedalam persamaan
5. Hitung dengan menggunakan metode heun
3.2.3 Metode Poligon
1. Tentukan panjang saluran (L = 1500)
2. Tentukan selang (∆x = 100)
3. Tentukan beberapa konstanta
B = 5 m (Lebar dasar)
Q = 10 m3/s (Debit)
Io = 0.0005 (Kemiringan dasar saluran)
n = 0.025 (Koefisien manning)
y = 2.0 m (Kedalaman ujung hilir)
4. Masukkan angka atau konstanta-konstanta kedalam persamaan
5. Hitung dengan menggunakan metode poligon
3.2.4 Metode Raltson
1. Tentukan panjang saluran (L = 1500)
2. Tentukan selang (∆x = 100)
3. Tentukan beberapa konstanta
B = 5 m (Lebar dasar)
Q = 10 m3/s (Debit)
Io = 0.0005 (Kemiringan dasar saluran)
17
n = 0.025 (Koefisien manning)
y = 2.0 m (Kedalaman ujung hilir)
4. Masukkan angka atau konstanta-konstanta kedalam persamaan
5. Hitung dengan menggunakan metode raltson
3.2.5 Metode Runge kutta orde 3
1. Tentukan panjang saluran (L = 1500)
2. Tentukan selang (∆x = 100)
3. Tentukan beberapa konstanta
B = 5 m (Lebar dasar)
Q = 10 m3/s (Debit)
Io = 0.0005 (Kemiringan dasar saluran)
n = 0.025 (Koefisien manning)
y = 2.0 m (Kedalaman ujung hilir)
4. Masukkan angka atau konstanta-konstanta kedalam persamaan
5. Hitung dengan menggunakan metode rungr kutta orde 3
3.2.6 Metode Runge kutta orde 4
1. Tentukan panjang saluran (L = 1500)
2. Tentukan selang (∆x = 100)
3. Tentukan beberapa konstanta
B = 5 m (Lebar dasar)
Q = 10 m3/s (Debit)
Io = 0.0005 (Kemiringan dasar saluran)
n = 0.025 (Koefisien manning)
y = 2.0 m (Kedalaman ujung hilir)
4. Masukkan angka atau konstanta-konstanta kedalam persamaan
5. Hitung dengan menggunakan metode runge kutta orde 4
18
3.3 Flowchart
3.3.1 Metode Euler
NO
YES
Start
Input L, D
O=0.0005 Q=10 Io=0.0005 n=0.025 y=2.0
Do I = 1,10000
A(I)=B*Y(I) P(I)=B+(2*Y(I)) R(I)=A(I)/P(I) C(I)=O-(((N**2)*(Q**2))/((A(I)**2)*(R(I)**(4./3)))) E(I)=1.0-(((Q**2)*B)/(G*(A(I)**3))) J(I)=1*I F(I)=C(I)/E(I) Y(I+1)=Y(I)+(F(I)*D)
TULIS J(I),Y(I)
IF J(I)==L/D
END IF
END DO
STOP
END
19
3.3.2 Metode Heun
no
yes
Start
Input L, X
Do I = 1,10000
TULIS J(I),Y(I)
IF J(I)==L/D
END IF
END DO
STOP
END
O=0.0005 Q=10 Io=0.0005 n=0.025 y=2.0
A(I)=B*Y(I) P(I)=B+(2*Y(I)) R(I)=A(I)/P(I) C(I)=O-(((N**2)*(Q**2))/((A(I)**2)*(R(I)**(4./3)))) E(I)=1.0-(((Q**2)*B)/(G*(A(I)**3))) J(I)=1*I F(I)=C(I)/E(I) M(I)=F(I)*Y(I) Y(I+1)=Y(I)+((((0.5*F(I))+(0.5*M(I))))*D)
20
3.3.3 Metode Poligon
no
yes
Start
Input L, D
O=0.0005 Q=10 Io=0.0005 n=0.025 y=2.0
Do I = 1,10000
A(I)=B*Y(I) P(I)=B+(2*Y(I)) R(I)=A(I)/P(I) C(I)=O-(((N**2)*(Q**2))/((A(I)**2)*(R(I)**(4./3)))) E(I)=1.0-(((Q**2)*B)/(G*(A(I)**3))) J(I)=1*I F(I)=C(I)/E(I) M(I)=Y(I)*(0.5*F(I)) Y(I+1)=Y(I)+(M(I)*D)
TULIS J(I),Y(I)
IF J(I)==L/D
END IF
END DO
STOP
END
21
3.3.4 Metode Raltson
no
yes
Start
Input L, D
O=0.0005 Q=10 Io=0.0005 n=0.025 y=2.0
Do I = 1,10000
A(I)=B*Y(I) P(I)=B+(2*Y(I)) R(I)=A(I)/P(I) C(I)=O-(((N**2)*(Q**2))/((A(I)**2)*(R(I)**(4./3)))) E(I)=1.0-(((Q**2)*B)/(G*(A(I)**3))) J(I)=1*I F(I)=C(I)/E(I) M(I)=(1/Y(I))*((3./4)*F(I)) Y(I+1)=Y(I)+((((1./3)*F(I))+((2./3)*M(I)))*D)
TULIS J(I),Y(I)
IF J(I)==L/D
END IF
END DO
STOP
END
22
3.3.5 Metode runge kutta orde 3
no
yes
Start
Input L, D
O=0.0005 Q=10 Io=0.0005 n=0.025 y=2.0
Do I = 1,10000
A(I)=B*Y(I) P(I)=B+(2*Y(I)) R(I)=A(I)/P(I) C(I)=O-(((N**2)*(Q**2))/((A(I)**2)*(R(I)**(4./3)))) E(I)=1.0-(((Q**2)*B)/(G*(A(I)**3))) J(I)=1*I F(I)=C(I)/E(I) M(I)=Y(I)*(0.5*F(I)) X(I)=Y(I)*((F(I))*(2*M(I))) Y(I+1)=Y(I)+(((1/6.)*(F(I)+(4*M(I))+X(I)))*D)
TULIS J(I),Y(I)
IF J(I)==L/D
END IF
END DO
STOP
END
23
3.3.6 Metode runge kutta orde 4
no
yes
Start
Input L, D
O=0.0005 Q=10 Io=0.0005 n=0.025 y=2.0
Do I = 1,10000
A(I)=B*Y(I) P(I)=B+(2*Y(I)) R(I)=A(I)/P(I) C(I)=O-(((N**2)*(Q**2))/((A(I)**2)*(R(I)**(4./3)))) E(I)=1.0-(((Q**2)*B)/(G*(A(I)**3))) J(I)=1*I F(I)=C(I)/E(I) M(I)=Y(I)*(0.5*F(I)) X(I)=Y(I)*(0.5*M(I)) S(I)=Y(I)*X(I) Y(I+1)=Y(I)+(((1/6.)*(F(I)+(2*M(I))+(2*X(I))+S(I)))*D)
TULIS J(I),Y(I)
IF J(I)==L/D
END IF
END DO
STOP
END
24
BAB IV
HASIL DAN PEMBAHASAN
4.1 Hasil
4.1.1 Metode Euler 4.1.2 Metode Heun 4.1.3 Metode Poligon
NO HASIL 1 2.000 2 1.995 3 1.991 4 1.985 5 1.980 6 1.973 7 1.967 8 1.959 9 1.952 10 1.943 11 1.934 12 1.923 13 1.912 14 1.900 15 1.887
4.1.4 Metode Ratlson 4.1.5 Runge kutta orde 3 4.1.6 Runge kutta orde 4
NO HASIL 1 2.000 2 1.997 3 1.995 4 1.992 5 1.989 6 1.985 7 1.982 8 1.979 9 1.975 10 1.971 11 1.967 12 1.963 13 1.958 14 1.954 15 1.949
NO HASIL 1 2.000 2 1.993 3 1.986 4 1.977 5 1.968 6 1.957 7 1.945 8 1.931 9 1.916 10 1.899 11 1.880 12 1.858 13 1.832 14 1.803 15 1.770
NO HASIL 1 2.000 2 1.995 3 1.991 4 1.985 5 1.980 6 1.974 7 1.967 8 1.960 9 1.952 10 1.944 11 1.935 12 1.925 13 1.915 14 1.903 15 1.891
NO HASIL 1 2.000 2 1.995 3 1.989 4 1.983 5 1.976 6 1.968 7 1.960 8 1.952 9 1.942 10 1.932 11 1.920 12 1.908 13 1.894 14 1.879 15 1.863
NO HASIL 1 2.000 2 1.996 3 1.992 4 1.988 5 1.983 6 1.978 7 1.973 8 1.968 9 1.962 10 1.956 11 1.949 12 1.942 13 1.934 14 1.926 15 1.917
25
4.2 Grafik
26
4.3 Pembahasan
Metode Euler adalah salah satu dari metode satu langkah yang paling
sederhana. Di banding dengan beberapa metode lainnya, metode ini paling kurang
teliti. Namun demikian metode ini perlu dipelajari mengingat kesederhanaannya
dan mudah pemahamannya sehingga memudahkan dalam mempelajari metode
lain yang lebih teliti.
Metode euler atau disebut juga metode orde pertama karena
persamaannya kita hanya mengambil sampai suku orde pertama saja.
Misalnya diberikan PDB orde satu,
= dy/dx = f(x,y) dan nilai awal y(x0) = x0
Misalkan
yr = y(xr)
adalah hampiran nilai di xr yang dihitung dengan metode euler. Dalam hal ini
xr = x0 + rh, r = 1, 2, 3,…n
metode euler diturungkan dengan cara menguraikan y(xr+1) di sekitar xr ke dalam
deret taylor :
y(xr+1)=y(xr)+
1
1!
r rx x
y’(xr)+
2
1
2!
r rx x y”(xr)+… (1)
bila persamaan di atas dipotong samapai suku orde tiga, peroleh
y(xr+1) = y(xr) +
1
1!
r rx x
y’(xr) +
2
1
2!
r rx x y”(t), xr<t<xr+1
(2)
berdasarkan persamanan bentuk baku PDB orde orde satu maka
y’(xr ) = f(xr, yr)
dan
xr+1 – xr = h
maka persamaan 2 dapat ditulis menjadi
y(xr+1) y(xr)+hf(xr,yr)+2
2
hy”(t) (3)
dua suku pertama persamaan di atas yaitu :
27
y(xr+1) = y(xr) + hf(xr, yr) ; r = 0, 1, 2,…,n (4)
atau dapat ditulis
yr+1 = yr + hfr
yang merupakan metode Euler.
Metode Euler mempunyai ketelitian yang rendah karena galatnya besar
(sebanding dengan h). buruknya galat ini dapat dikurangi dengan menggunakan
metode Heun, yang merupakan perbaikan metode Euler (modifified Euler’s
method ). Pada metode Heun , solusi dari metode Euler dijadikan sebagai solusi
perkiraan awal (prediktor), selanjutnya solusi perkiraan awal diperbaiki dengan
metode Heun (Corrector).
Metode Heun diturunkan sebagai berikut:
Pandang PDB orde Satu
'( ) ( , ( ))y x f x y x
Integrasikan kedua ruas persamaan dari xr sampai xr+1 :
1 1 '( , ( )) ( )r r
r r
x x
x xf x y x dx y x dx
= y(xr+1)-y(xr)
= yr+1-yr
Nyatakan yr+1 di ruas kiri dan suku-suku lainnya di ruas kanan:
1
1 ( , ( ))r
r
x
r r
x
y y f x y x dx
(p.7)
Suku yang mengandung integral di ruas kanan ,
1
( , ( ))r
r
x
x
f x y x dx
,
dapat diselesaikan dengan kaidah trapezium menjadi
1
1 1( , ( )) [ ( , ) ( , )]2
r
r
x
r r r r
x
hf x y x dx f x y f x y
(p.8)
Sulihkan persamaan (p.7) ke dalam persamaan (p.8) , menghasilkan persamaan
1 1 1[ ( , ) ( , )]2
r r r r r r
hy y f x y f x y (p.9)
28
Yang nerupakan metode Heun , atau metode Euler-Cauchy yang
diperbaiki. Dalam persamaan (p.8) suku ruas kanan mengandung yr+1 ini adalah
solusi perkiraan awal (prediktor) yang dihitung dengan metode Euler. Persamaan
(p.9) dapat dituls sebagai :
predictor : (0)
1 ( , )r r r ry y hf x y
Corrector : (0)
1 1 1[ ( , ) ( , )]2
r r r r r r
hy y f x y f x y (p.10)
Atau ditulis dalam satu kesatuan,
1 1[ ( , ) ( , ) ( , )]2
r r r r r r r r
hy y f x y f x y hf x y (p. 11)
Dan berdasarkan hasil dari perhitungan yang telah kita buat menggunakan
program fortran, disitu bisa kita lihat bahwa masing-masing dari metode tersebut
mempunyai nilai yang berbeda-beda, hal itu bisa kita lihat berdasarkan hasil
output program dari masing-masing metode. Dimana Metode euler-lah yang
memang memiliki tingkat ketelitian yang rendah.
Dan jika kita lihat dari grafik yang telah ditampilkan perbedaannya sangat
signifikan antara metode euler dengan metode-metode yang lainnya (heun,
polygon, raltson metode runge kutta orde 3, dan metode runge kutta orde 4). Dan
dari grafik juga bisa kita lihat pperbedaan kedalaman dari masing-masing nilai
hasil perhitungan, dan tiap metode juga telah dibedakan dengan warna-warna.
Dan pada pengerjaan ini juga seharusnya digunakan nilai error atau galat
agar diketahui perbandingan dari masing-masing metode dan tingkat ketilitian dari
metode-metode tersebut.
5 m
1500 m
2 m
dan dapat dilihat pada grafik
disamping dan berdasarkan hasil
perhitungan maka dapat disimpulkan
bahwa kedalaman air semakin
menngalami pendangkalan.
29
BAB V
PENUTUP
5.1 Kesimpulan
1. Untuk menyelesaikan kasus profil muka air ini dengan menggunakan
metode euler, heun, polygon, raltson, runge kutta orde 3 dan runge kutta
orde 4. Anda terlebih dahulu mengerti perbedaan dari masig-masing
metode ini dan juga mengetahui persamaannya sehingga dapat
dimasukkan kedalam pemrograman untuk menghitung nilainya dengan
cepat dan singkat.
2. Dari praktikum yang telah dikerjakan maka dapat anda lihat hasil
perhitungannya dari masing-masing metode dan juga dari grafik bisa anda
lihat perbedaannya masing-masing.
5.2 Saran
Mungkin bisa juga untuk menggunakan metode deret taylor untuk
menyelesaikan kasus ini dan juga dicari nilai errornya sehingga bisa dibandingkan
metode mana yang benar-benar akurat dalam perhitungannya.
30
DAFTAR PUSTAKA
Agus Setiawan, ST, MT. 2006.Pengantar Metode Numerik. yogyakata : penerbit
Andy Yogyakarta.
Drs. Sahid, M.Sc. 2005. Pengantar Komputasi Numerik dengan Matlab.
yogyakata : penerbit Andy Yogyakarta.
Rinaldi Munir. 2008. Metode Numerik, Revisi kedua. Bandung : informatika
Bandung.
31
LAMPIRAN
Script Program
PROGRAM PROFIL_MUKA_AIR IMPLICIT REAL (Q,B,I,F,X,M,N,Y,A,P,R,G,C,E) PARAMETER (H=10000) DIMENSION F(H),X(H),J(H),Z(H),M(H),Y(H),A(H),P(H),R(H),C(H),E(H),S(H) WRITE(*,*)'INI ADALAH PROGRAM UNTUK MENGHITUNG PROFIL MUKA AIR' WRITE(*,*)'' WRITE(*,*)'MASUKKAN PANJANG SALURAN :' READ(*,*)L WRITE(*,*)'MASUKKAN SELANGNYA (DELTA X) :' READ(*,*)D WRITE(*,*)'' 7 WRITE(*,*)'ANDA INGIN MENGGUNAKAN METODE APA?' WRITE(*,*)'1. METODE EULER' WRITE(*,*)'2. METODE HEUN' WRITE(*,*)'3. METODE POLIGON' WRITE(*,*)'4. METODE RALTSON' WRITE(*,*)'5. METODE RUNGE KUTTA ORDE 3' WRITE(*,*)'6. METODE RUNGE KUTTA ORDE 4' WRITE(*,*)'' WRITE(*,*)'MASUKKAN PILIHAN ANDA :' READ(*,*)K Q=10.0 !DEBIT B=5.0 !LEBAR O=0.0005 !KEMIRINGAN N=0.025 !KOEFFISIEN MANNING Y(1)=2.0 !KEDALAMAN G=9.81 !GRAVITASI IF(K==1)THEN WRITE(*,*)'ANDA MEMILIH METODE EULER' WRITE(*,*)'' OPEN(3,FILE='EULER.TXT',STATUS='UNKNOWN') WRITE(3,*)' NO HASIL' WRITE(3,*)'' WRITE(*,*)' NO HASIL' WRITE(*,*)'' DO I=1,H A(I)=B*Y(I) !====\ P(I)=B+(2*Y(I)) !=====> TETAPAN RUMUS R(I)=A(I)/P(I) !====/ C(I)=O-(((N**2)*(Q**2))/((A(I)**2)*(R(I)**(4./3)))) E(I)=1.0-(((Q**2)*B)/(G*(A(I)**3))) J(I)=1*I !NOMER F(I)=C(I)/E(I) !F(X,Y) atau K1 Y(I+1)=Y(I)+(F(I)*D) !HASIL WRITE(3,2)J(I),Y(I) WRITE(*,2)J(I),Y(I) IF (J(I)==(L/D)) THEN WRITE(*,*)'' GO TO 1 END IF END DO ELSE IF(K==2)THEN WRITE(*,*)'ANDA MEMILIH METODE HEUN' WRITE(*,*)''
32
OPEN(4,FILE='HEUN.TXT',STATUS='UNKNOWN') WRITE(4,*)' NO HASIL' WRITE(4,*)'' WRITE(*,*)' NO HASIL' WRITE(*,*)'' DO I =1,H A(I)=B*Y(I) P(I)=B+(2*Y(I)) R(I)=A(I)/P(I) C(I)=O-(((N**2)*(Q**2))/((A(I)**2)*(R(I)**(4./3)))) E(I)=1.0-(((Q**2)*B)/(G*(A(I)**3))) J(I)=1*I F(I)=C(I)/E(I) M(I)=F(I)*Y(I) !K2 Y(I+1)=Y(I)+((((0.5*F(I))+(0.5*M(I))))*D) WRITE(4,2)J(I),Y(I) WRITE(*,2)J(I),Y(I) IF (J(I)==L/D) THEN WRITE(*,*)'' GO TO 1 END IF END DO ELSE IF(K==3)THEN WRITE(*,*)'ANDA MEMILIH METODE POLIGON' WRITE(*,*)'' OPEN(5,FILE='POLIGON.TXT',STATUS='UNKNOWN') WRITE(5,*)' NO HASIL' WRITE(5,*)'' WRITE(*,*)' NO HASIL' WRITE(*,*)'' DO I =1,H A(I)=B*Y(I) P(I)=B+(2*Y(I)) R(I)=A(I)/P(I) C(I)=O-(((N**2)*(Q**2))/((A(I)**2)*(R(I)**(4./3)))) E(I)=1.0-(((Q**2)*B)/(G*(A(I)**3))) J(I)=1*I F(I)=C(I)/E(I) M(I)=Y(I)*(0.5*F(I)) Y(I+1)=Y(I)+(M(I)*D) WRITE(5,2)J(I),Y(I) WRITE(*,2)J(I),Y(I) IF (J(I)==L/D) THEN WRITE(*,*)'' GO TO 1 END IF END DO ELSE IF(K==4)THEN WRITE(*,*)'ANDA MEMILIH METODE RALTSON' WRITE(*,*)'' OPEN(10,FILE='RALTSON.TXT',STATUS='UNKNOWN') WRITE(10,*)' NO HASIL' WRITE(10,*)'' WRITE(*,*)' NO HASIL' WRITE(*,*)'' DO I =1,H A(I)=B*Y(I) P(I)=B+(2*Y(I)) R(I)=A(I)/P(I) C(I)=O-(((N**2)*(Q**2))/((A(I)**2)*(R(I)**(4./3)))) E(I)=1.0-(((Q**2)*B)/(G*(A(I)**3)))
33
J(I)=1*I F(I)=C(I)/E(I) M(I)=(1/Y(I))*((3./4)*F(I)) Y(I+1)=Y(I)+((((1./3)*F(I))+((2./3)*M(I)))*D) WRITE(10,2)J(I),Y(I) WRITE(*,2)J(I),Y(I) IF (J(I)==L/D) THEN WRITE(*,*)'' GO TO 1 END IF END DO ELSE IF(K==5)THEN WRITE(*,*)'ANDA MEMILIH METODE RUNGE KUTTA ORDE 3' WRITE(*,*)'' OPEN(8,FILE='ORDE 3.TXT',STATUS='UNKNOWN') WRITE(8,*)' NO HASIL' WRITE(8,*)'' WRITE(*,*)' NO HASIL' WRITE(*,*)'' DO I =1,H A(I)=B*Y(I) P(I)=B+(2*Y(I)) R(I)=A(I)/P(I) C(I)=O-(((N**2)*(Q**2))/((A(I)**2)*(R(I)**(4./3)))) E(I)=1.0-(((Q**2)*B)/(G*(A(I)**3))) J(I)=1*I F(I)=C(I)/E(I) M(I)=Y(I)*(0.5*F(I)) X(I)=Y(I)*((F(I))*(2*M(I))) !K3 Y(I+1)=Y(I)+(((1/6.)*(F(I)+(4*M(I))+X(I)))*D) WRITE(8,2)J(I),Y(I) WRITE(*,2)J(I),Y(I) IF (J(I)==L/D) THEN WRITE(*,*)'' GO TO 1 END IF END DO ELSE IF(K==6)THEN WRITE(*,*)'ANDA MEMILIH METODE RUNGE KUTTA ORDE 4' WRITE(*,*)'' OPEN(9,FILE='ORDE 4.TXT',STATUS='UNKNOWN') WRITE(9,*)' NO HASIL' WRITE(9,*)'' WRITE(*,*)' NO HASIL' WRITE(*,*)'' DO I =1,H A(I)=B*Y(I) P(I)=B+(2*Y(I)) R(I)=A(I)/P(I) C(I)=O-(((N**2)*(Q**2))/((A(I)**2)*(R(I)**(4./3)))) E(I)=1.0-(((Q**2)*B)/(G*(A(I)**3))) J(I)=1*I F(I)=C(I)/E(I) M(I)=Y(I)*(0.5*F(I)) X(I)=Y(I)*(0.5*M(I)) S(I)=Y(I)*X(I) !K4 Y(I+1)=Y(I)+(((1/6.)*(F(I)+(2*M(I))+(2*X(I))+S(I)))*D) WRITE(9,2)J(I),Y(I) WRITE(*,2)J(I),Y(I) IF (J(I)==L/D) THEN WRITE(*,*)''
34
GO TO 1 END IF END DO ELSE WRITE(*,*)'' WRITE(*,*)'SORRY SOB! PILIHAN LOE SALAH!!!' WRITE(*,*)'' GO TO 7 END IF 2 FORMAT(I5,F10.3) 1 END
script grafik
a=[2,1.995,1.991,1.985,1.98,1.973,1.967,1.959,1.952,1.943,1.934,1.923,1.912,1.9,1.887]; b=[2,1.993,1.986,1.977,1.968,1.957,1.945,1.931,1.916,1.899,1.88,1.858,1.832,1.803,1.77]; c=[2,1.995,1.991,1.985,1.98,1.974,1.967,1.96,1.952,1.944,1.935,1.925,1.915,1.903,1.891]; d=[2,1.997,1.995,1.992,1.989,1.985,1.982,1.979,1.975,1.971,1.967,1.963,1.958,1.954,1.949]; e=[2,1.996,1.992,1.988,1.983,1.978,1.973,1.968,1.962,1.956,1.949,1.942,1.934,1.926,1.917]; f=[2,1.995,1.989,1.983,1.976,1.968,1.96,1.952,1.942,1.932,1.92,1.908,1.894,1.879,1.863]; g=[100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500]; plot(g,a,'-r*',g,b,'-b*',g,c,'-g*',g,d,'-y*',g,e,'-m*',g,f,'-k*','LineWidth',3) xlabel('Panjang Saluran (Meter)') ylabel('Kedalaman (Meter)') title('Merah(Euler), Biru(Heun), Hijau(Poligon), Kuning(Raltson), Ungu(Orde 3), Hitam(Orde 4)')