SKRIPSI
Disusun oleh:
Ilga Purnama Sari
NIM: 123114023
SKRIPSI
Disusun oleh:
Ilga Purnama Sari
NIM: 123114023
i
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
A THESIS
Written by:
Ilga Purnama Sari
Student ID: 123114023
ii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
v
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ABSTRAK
vii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ABSTRACT
The shallow water wave equations model water flows in an open channel.
The shallow water wave equations are often called the Saint-Venant system derived
from the conservations of mass and momentum.
In this thesis, the shallow water wave equations are solved using several
methods, the Lax-Friedrichs finite volume method, collocation grid finite difference
method and staggered grid finite difference method. The finite volume method
works by dividing the spatial domain into a finite number of cells, then calculating
the average quantity for each cell. The collocation grid finite difference method
divides the spatial domain into a finite number of computational points for the
shallow water equation discretization and forms a linear system of equations.
Finally, the staggered grid finite difference method works by discretising the
computational domain into staggered spatial partitions. The staggered finite
diference means that we approximate the quantities of interest of the shallow water
equations on different cells. In the staggered formulation, water depth is calculated
at full grid points and water velocity is calculated at half grid points. The
appropriate method will produce an accurate solution for the shallow water wave
equations.
This study examines several numerical methods for solving the one
dimensional shallow water wave equations. We investigate the performance of
these numerical methods using numerical simulations. Analysis of simulation
results are done by observing the results of each method and comparing the
numerical results with the exact solution.
viii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR ISI
HALAMAN JUDUL.............................................................................................. i
ix
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
A. Integral ...................................................................................................... 8
DANGKAL ........................................................................................................ 28
x
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
A. Kesimpulan ............................................................................................ 71
B. Saran ........................................................................................................ 72
LAMPIRAN ....................................................................................................... 74
xi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB I
PENDAHULUAN
Dalam bab ini akan dijelaskan latar belakang, rumusan dan pembatasan
masalah, tujuan dan manfaat penulisan, juga akan disertakan sistematika penulisan.
A. Latar Belakang
berhubungan dengan hukum alam yang dibahas dalam ilmu fisika. Masalah fisis
parsial.
Fluida merupakan zat yang dapat mengalir. Zat itu dapat berupa gas atau
cairan. Aliran fluida merupakan salah satu masalah fisis yang sering dijumpai
dalam kehidupan sehari-hari. Masalah yang sudah pernah ada adalah terjadinya
bencana alam seperti bobolnya bendungan air atau tsunami. Bencana alam tersebut
disebabkan oleh aliran air dalam skala besar. Aliran tersebut dapat dimodelkan
Model gelombang air yang sudah ada salah satunya adalah model gelombang
air dangkal atau Shallow Water Wave Equations. Dangkal dalam arti matematis
1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
penting yang tidak diketahui yaitu kedalaman dan kecepatan air, dengan ℎ(𝑥, 𝑡)
adalah kedalaman air dan 𝑢(𝑥, 𝑡) adalah kecepatan air. Di sini, 𝑡 adalah variabel
yang menyatakan waktu dan 𝑥 adalah variabel yang menyatakan ruang satu
ℎ𝑡 + (𝑢ℎ)𝑥 = 0 (1.1)
dan
1
(𝑢ℎ)𝑡 + (𝑢2 ℎ + 𝑔ℎ2 )𝑥 = −𝑔ℎ𝑧𝑥 (1.2)
2
dengan 𝑧(𝑥) adalah ketinggian tanah, dan 𝑔 adalah konstanta percepatan gravitasi.
𝜆
y
𝑤(𝑥, 𝑡)
Pada skripsi ini akan diselesaikan persamaan gelombang air dangkal terkait
asumsi, syarat awal dan syarat batas yang akan dibahas lebih lanjut pada Bab III.
ℎ1 Permukaan air
ℎ0
𝑥
Secara umum, solusi persamaan gelombang air dangkal tersebut cukup sulit
untuk dicari secara analitis, sehingga diperlukan cara lain untuk memecahkannya.
Metode numeris adalah salah satu cara untuk memperoleh solusi persamaan
gelombang air dangkal tersebut. Banyak metode numeris yang telah dikembangkan
karakteristik, metode beda hingga, metode elemen hingga, metode volume hingga
beda hingga unggul dalam kemudahan komputasi. Dalam tugas akhir ini akan
hingga dan metode volume hingga, karena perumusan kedua metode tersebut
sederhana.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Metode beda hingga terbagi atas dua model yaitu model grid kolokasi dan
model grid selang-seling. Pada grid kolokasi ditentukan nilai pendekatan untuk
semua variabel ℎ dan 𝑢 yang tidak diketahui secara bersamaan. Pada grid selang-
referensi tentang grid kolokasi adalah LeVeque (1992). Salah satu referensi tentang
volume hingga, metode beda hingga grid kolokasi dan metode beda hingga grid
selang-seling. Dari ketiga metode tersebut diperoleh hasil perhitungan terbaik yang
dapat memperbaiki metode beda hingga dengan tidak ada getaran semu (artificial
oscillation) pada hasil simulasi aliran air. Fokus penelitian ini adalah
mengembangkan metode numeris dengan metode beda hingga dan volume hingga
B. Rumusan Masalah
C. Pembatasan Masalah
gelombang air dangkal dengan metode beda hingga dan volume hingga.
D. Tujuan Penulisan
beda hingga grid kolokasi dan metode beda hingga grid selang-seling.
hingga Lax-Friedrichs, metode beda hingga grid kolokasi dan metode beda
hingga grid selang-seling. Dari hasil simulasi tersebut kemudian dipilih hasil
grid kolokasi dan metode beda hingga grid selang-seling untuk masalah
bendungan bobol.
E. Metode Penulisan
Metode penulisan yang digunakan adalah studi pustaka dari buku-buku dan
F. Manfaat Penulisan
G. Sistematika Penulisan
Sistematika penulisan tugas akhir ini adalah sebagai berikut:
BAB I PENDAHULUAN
A. Latar Belakang Masalah
B. Rumusan Masalah
C. Batasan Masalah
D. Metode Penulisan
E. Tujuan Penulisan
F. Manfaat Penulisan
BAB II PERSAMAAN DIFERENSIAL
A. Integral
B. Klasifikasi Persamaan Diferensial
C. Nilai eigen dan vektor eigen
D. Persamaan Diferensial Hiperbolik
E. Penurunan Numeris
F. Karakteristik Persamaan Gelombang Air Dangkal
BAB III METODE NUMERIS UNTUK PERSAMAAN GELOMBANG
AIR DANGKAL
A. Solusi Eksak Persamaan Gelombang Air Dangkal
B. Penurunan Persamaan Gelombang Air Dangkal Satu Dimensi
C. Masalah Bendungan Bobol
D. Metode Volume Hingga Lax-Friedrichs
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR PUSTAKA
LAMPIRAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB II
PERSAMAAN DIFERENSIAL
Landasan teori skripsi ditulis dalam bab ini. Landasan teori tersebut meliputi:
integral, klasifikasi persamaan diferensial, nilai eigen dan vektor eigen, persamaan
air dangkal.
A. Integral
Pada bagian ini dibahas mengenai integral yang meliputi definisi dan contoh
Definisi 2.1
Jika diberikan suatu fungsi 𝑓(𝑥) pada suatu interval 𝐼 dan berlaku 𝐹 ′ (𝑥) =
𝑓(𝑥), untuk suatu 𝐹(𝑥), maka 𝐹(𝑥) adalah anti turunan dari 𝑓(𝑥). Dengan kata lain
𝐹 ′ (𝑥) = 𝑓(𝑥).
Contoh 2.1
Penyelesaian:
2 2
hal ini menyarankan 𝐹(𝑥) = 3 𝑥 3 , yang memenuhi 𝐹 ′ (𝑥) = 3 3𝑥 2 = 2𝑥 2 . Dengan
2
demikian, suatu anti turunan dari 𝑓 adalah 3 𝑥 3 .
8
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Integral Tentu
𝑦 𝑦 = 𝑓(𝑥)
𝑥
𝑎 𝑏
Untuk menghitung luasan dibawah kurva 𝑦 = 𝑓(𝑥) pada interval [𝑎, 𝑏], dapat
dihitung dengan cara aproksimasi yaitu dengan membagi interval [𝑎, 𝑏] menjadi 𝑛
𝑏−𝑎
subinterval. Subinterval tersebut memiliki panjang yang sama yaitu untuk 𝑛 >
𝑛
jumlah luasan dari masing-masing persegi panjang yang dibentuk oleh masing-
𝑎 = 𝑥0 , 𝑏 = 𝑥𝑛 , dan
𝑏−𝑎
𝑥𝑖 − 𝑥𝑖−1 =
𝑛
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
10
𝑏−𝑎
untuk 𝑖 = 1,2, … , 𝑛. Andaikan panjang masing-masing subinterval yaitu 𝑛
dinotasikan dengan
∆𝑥 = 𝑥𝑖 − 𝑥𝑖−1 .
Luas daerah dibawah kurva diaproksimasikan dengan total luas daerah yang
yang disebut jumlahan Riemann fungsi 𝑓 pada interval [𝑎, 𝑏], sebagai pendekatan
luas daerah di bawah kurva 𝑦 = 𝑓(𝑥) dan diatas sumbu 𝑥. Di sini, 𝑢𝑖 ∈ [𝑥𝑖−1 , 𝑥𝑖 ].
baik pula aproksimasi luasan tersebut dan semakin dekat dengan luasan yang
Definisi 2.2
Andaikan 𝑓 fungsi yang terdefinisi pada [𝑎, 𝑏]. Integral tentu 𝑓 dari 𝑎 sampai
𝑏
𝑏 dinotasikan ∫𝑎 𝑓 (𝑥)𝑑𝑥, adalah
𝑏
∫ 𝑓(𝑥)𝑑𝑥 = lim ∑ 𝑓(𝑢𝑖 )∆𝑥.
𝑎 ∆𝑥→0
𝑖
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
11
Aturan Leibniz
Teorema 2.1
Jika 𝑓 adalah fungsi kontinu pada interval [𝑎, 𝑏] dan jika 𝑢(𝑥) dan 𝑣(𝑥) adalah
fungsi yang dapat diturunkan terhadap 𝑥 yang nilainya terletak di interval [𝑎, 𝑏],
maka
𝑑 𝑣(𝑥) 𝑑𝑣 𝑑𝑢
∫ 𝑓(𝑡)𝑑𝑡 = 𝑓(𝑣(𝑥)) − 𝑓(𝑢(𝑥))
𝑑𝑥 𝑢(𝑥) 𝑑𝑥 𝑑𝑥
Teorema 2.2
Jika 𝑓(𝑥, 𝑡) adalah fungsi sedemikian sehingga turunan parsial dari 𝑓 terhadap 𝑡
𝑑 𝑣(𝑥) 𝑣(𝑥)
𝜕𝑓 𝑑 𝑑
∫ 𝑓(𝑥, 𝑡)𝑑𝑡 = ∫ 𝑑𝑡 + 𝑓(𝑣(𝑥), 𝑥) 𝑣(𝑥) − 𝑓(𝑢(𝑥), 𝑥) 𝑢(𝑥).
𝑑𝑥 𝑢(𝑥) 𝑢(𝑥) 𝜕𝑥 𝑑𝑥 𝑑𝑥
Bukti dapat dilihat pada buku karangan David. B dan George. C yang berjudul
12
Definisi 2.3
Contoh 2.2
𝑑2𝑦 𝑑𝑦 2 (2.1)
+ 𝑥𝑦 ( ) =0
𝑑𝑥 2 𝑑𝑥
𝑑4 𝑥 𝑑2𝑥 (2.2)
+ 5 + 3𝑥 = sin 𝑡
𝑑𝑡 4 𝑑𝑡 2
𝜕𝑣 𝜕𝑣 (2.3)
+ =𝑣
𝜕𝑠 𝜕𝑡
𝜕 2𝑢 𝜕 2𝑢 𝜕 2𝑢 (2.4)
+ + = 0.
𝜕𝑥 2 𝜕𝑦 2 𝜕𝑧 2
Definisi 2.4
turunan biasa beserta satu atau lebih variabel tak bebas terhadap satu variabel bebas.
Contoh 2.3
persamaan (2.1) variabel 𝑥 adalah suatu variabel bebas, dan variabel 𝑦 adalah
variabel tak bebas. Pada persamaan (2.2), variabel 𝑡 adalah variabel bebas, dengan
13
Definisi 2.5
turunan parsial dari satu atau lebih variabel tak bebas terhadap lebih dari satu
variabel bebas.
Contoh 2.4
persamaan (2.3), variabel 𝑠 dan 𝑡 adalah variabel bebas dan 𝑣 adalah variabel tak
bebasnya. Pada persaman (2.4) terdapat tiga variabel bebas yaitu 𝑥, 𝑦, dan 𝑧. Pada
Definisi 2.6
Orde dari persamaan diferensial adalah tingkat tertinggi dari turunan yang
Contoh 2.5
karena tingkat tertinggi dari turunan pada persamaan tersebut adalah dua.
Persamaan (2.2) adalah persamaan diferensial biasa orde keempat. Persamaan (2.3)
Definisi 2.7
𝐹(𝑥, 𝑦, 𝑦 ′ , 𝑦 ′′ , … , 𝑦 (𝑛) ) = 0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
14
parsial. Secara umum persamaan diferensial biasa linear orde 𝑛 dituliskan sebagai
Contoh 2.6
berikut, variabel 𝑦 adalah variabel tak bebas. Perhatikan bahwa 𝑦 dan turunan-
turunannya terjadi dengan pangkat satu saja dan tidak ada perkalian dari 𝑦 dan/ atau
turunan dari 𝑦.
𝑑2𝑦 𝑑𝑦 (2.6)
+ 5 + 6𝑦 = 0
𝑑𝑥 2 𝑑𝑥
𝑑4𝑦 2
𝑑3𝑦 𝑑𝑦 (2.7)
4
+ 𝑥 3
+ 𝑥3 = 𝑥𝑒 𝑥 .
𝑑𝑥 𝑑𝑥 𝑑𝑥
Definisi 2.8
Contoh 2.7
𝑑2𝑦 𝑑𝑦 (2.8)
2
+5 + 6𝑦 2 = 0
𝑑𝑥 𝑑𝑥
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
15
𝑑2 𝑦 𝑑𝑦 3 (2.9)
+ 5 ( ) + 6𝑦 = 0
𝑑𝑥 2 𝑑𝑥
𝑑2𝑦 𝑑𝑦 (2.10)
2
+ 5𝑦 + 6𝑦 = 0
𝑑𝑥 𝑑𝑥
Persamaan (2.8) tak linear karena variabel tak bebas 𝑦 terdapat pada pangkat
kedua dalam bentuk 6𝑦 2. Persamaan (2.9) juga tak linear karena terdapat bentuk
𝑑𝑦 3
5 (𝑑𝑥 ) yang melibatkan pangkat tiga pada turunan pertama. Persamaan (2.10) tak
𝑑𝑦
linear karena pada bentuk 5𝑦 𝑑𝑥 melibatkan perkalian terhadap variabel tak bebas
Berikut dibahas mengenai definisi dan contoh dari nilai eigen dan vektor
eigen.
Definisi 2.9
Jika 𝐴 adalah matriks 𝑛 × 𝑛, maka vektor tak nol 𝐱 di ℝ𝑛 disebut vektor eigen
𝐴𝐱 = 𝜆𝐱
untuk suatu skalar 𝜆. Skalar 𝜆 disebut nilai eigen dari 𝐴 dan 𝐱 disebut vektor eigen
Contoh 2.8
1
Vektor 𝐱 = [ ] adalah vektor eigen dari
2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
16
3 0
𝐴=[ ]
8 −1
3 0 1 3
𝐴𝐱 = [ ] [ ] = [ ] = 3𝐱.
8 −1 2 6
3𝑥
6
2 𝑥
𝑥
1 3
Gambar 2.2: Ilustrasi geometri vektor eigen.
diferensial berikut
𝜕𝑞 𝜕𝑞
Di sini 𝑞𝑡 = dan 𝑞𝑥 = 𝜕𝑥 .
𝜕𝑡
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
17
Dalam kasus yang paling sederhana yaitu koefisien konstan dan linear. Dalam
yang tidak diketahui (tekanan, kecepatan, dan sebagainya) yang ingin ditentukan,
suatu konstan yang menyatakan kecepatan perambatan (aliran pada pipa satu
matriks 𝐴 memiliki nilai eigen real dan berkorespondensi dengan 𝑛 vektor eigen
yang bebas linear. Artinya, semua vektor dalam ℝ𝑛 dapat secara tunggal diuraikan
sebagai kombinasi linear dari nilai-nilai eigen tersebut. Secara formal definisi
Definisi 2.10
𝑞𝑡 + 𝐴𝑞𝑥 = 0
merupakan suatu konstanta real. Jadi 𝐴 dapat didiagonalkan oleh nilai 𝐴 itu sendiri
dan nilai eigen dari 𝐴 adalah 𝐴 itu sendiri. Dengan demikian, persamaan adveksi
18
(2004).
E. Penurunan Numeris
Pada subbab ini dibahas mengenai penurunan numeris beserta contohnya dan
hampiran beda maju, hampiran beda mundur dan hampiran beda pusat.
Definisi 2.11
Seringkali fungsi 𝑓(𝑥) tidak diketahui secara eksplisit, tetapi hanya diketahui
beberapa titik data saja. Seringkali 𝑓(𝑥) diketahui secara eksplisit tetapi karena
bentuknya yang sangat rumit sehingga untuk menentukan fungsi turunannya juga
√cos(2𝑥 2 ) + 𝑥 tan(3𝑥)
(a). 𝑓(𝑥) = ,
𝑥 2𝑥
sin(𝑥) + 𝑒 −
cos(𝑥)
Perhitungan nilai turunan pada fungsi (a) dan (b) dapat dikerjakan secara numerik.
Nilai turunan yang diperoleh merupakan nilai hampiran dan diharapkan nilai
19
Turunan adalah limit dari hasil bagi pengurangan dua buah nilai yang besar
𝑓(𝑥 + ∆𝑥) − 𝑓(𝑥) dan membaginya dengan bilangan yang kecil (∆𝑥). Misal
diberikan nilai-nilai 𝑥 di 𝑥0 − ∆𝑥, 𝑥0 , dan 𝑥0 + ∆𝑥, serta nilai fungsi untuk nilai-
nilai 𝑥 tersebut. Titik-titik yang diperoleh adalah (𝑥−1 , 𝑓−1 ), (𝑥0 , 𝑓0 ), dan
(𝑥1 , 𝑓1 ), yang dalam hal ini 𝑥−1 = 𝑥0 − ∆𝑥 dan 𝑥1 = 𝑥0 + ∆𝑥. Terdapat tiga
𝑓1 − 𝑓0
= .
∆𝑥
mundur.
𝑓0 − 𝑓1
= .
∆𝑥
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
20
pusat.
𝑓1 − 𝑓−1
= .
2∆𝑥
Tafsiran geometri dari ketiga pendekatan di atas diperlihatkan pada Gambar 2.3.
𝑦 𝑦
𝑦1
𝑦0 𝑦0 𝑦 = 𝑓(𝑥)
𝑦 = 𝑓(𝑥)
∆𝑥 𝑦−1
𝑥 ∆𝑥
𝑥−1 𝑥0 𝑥1 𝑥
(𝐚) 𝑥−1 𝑥0 𝑥1
(𝐛)
𝑦1
𝑦 = 𝑓(𝑥)
𝑦−1
(𝐜)2∆𝑥
𝑥
𝑥−1 𝑥0 𝑥1
Gambar 2.3: Tiga pendekatan dalam perhitungan numeris; (a) Hampiran beda
maju, (b) Hampiran beda mundur, dan (c) Hampiran beda pusat.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
21
𝑥𝑖 = 𝑥0 + 𝑖∆𝑥
dan
𝑓𝑖 = 𝑓(𝑥𝑖 ).
Selanjutnya akan dihitung 𝑓 ′ (𝑥) yang dalam hal ini 𝑥 = 𝑥0 + 𝑠∆𝑥, 𝑠 ∈ 𝑅 dengan
(𝑥𝑖+1 − 𝑥𝑖 ) ′ (𝑥𝑖+1 − 𝑥𝑖 )2 ′′
𝑓(𝑥𝑖+1 ) = 𝑓(𝑥𝑖 ) + 𝑓 (𝑥𝑖 ) + 𝑓 (𝑥𝑖 ) + ⋯
1! 2!
diperoleh
∆𝑥 2 ′′ (2.13)
𝑓𝑖+1 = 𝑓𝑖 + ∆𝑥𝑓𝑖 ′ + 𝑓 +⋯
2 𝑖
∆𝑥 2 ′′
∆𝑥𝑓𝑖 ′ = 𝑓𝑖+1 − 𝑓𝑖 − 𝑓 −⋯
2 𝑖
𝑓𝑖+1 − 𝑓𝑖 ∆𝑥 ′′
𝑓𝑖 ′ = − 𝑓 −⋯
∆𝑥 2 𝑖
∆𝑥
karena 2
𝑓𝑖 ′′ − ⋯ merupakan bilangan yang sangat kecil dan tidak begitu
22
𝑓𝑖+1 − 𝑓𝑖
𝑓𝑖 ′ = + 𝑂(∆𝑥)
∆𝑥
∆𝑥
yang dalam hal ini, 𝑂(∆𝑥) = 𝑓 ′′ (𝑡), 𝑥𝑖 < 𝑡 < 𝑥𝑖+1 .
2
𝑓1 − 𝑓0
𝑓0 ′ = + 𝑂(∆𝑥).
∆𝑥
∆𝑥
Dalam hal ini 𝑂(∆𝑥) = 𝑓 ′′ (𝑡), 𝑥𝑖 < 𝑡 < 𝑥𝑖+1 menyatakan penurunan numeris
2
secara beda maju memiliki tingkat keakuratan tingkat satu atau ditulis 𝑂(∆𝑥).
(𝑥𝑖+1 − 𝑥𝑖 ) ′ (𝑥𝑖+1 − 𝑥𝑖 )2 ′′
𝑓(𝑥𝑖−1 ) = 𝑓(𝑥𝑖 ) + 𝑓 (𝑥𝑖 ) + 𝑓 (𝑥𝑖 ) + ⋯
1! 2!
diperoleh
′∆𝑥 2 ′′ (2.14)
𝑓𝑖−1 = 𝑓𝑖 − ∆𝑥𝑓𝑖 + 𝑓 −⋯
2 𝑖
′ ∆𝑥 2 ′′
∆𝑥𝑓𝑖 = 𝑓𝑖 − 𝑓𝑖−1 + 𝑓 −⋯
2 𝑖
𝑓𝑖 − 𝑓𝑖−1 ∆𝑥 ′′
𝑓𝑖 ′ = − 𝑓 +⋯
∆𝑥 2 𝑖
∆𝑥
karena 𝑓𝑖 ′′ − ⋯ merupakan bilangan yang sangat kecil dan tidak begitu
2
23
𝑓𝑖 − 𝑓𝑖−1
𝑓𝑖 ′ = + 𝑂(∆𝑥)
∆𝑥
∆𝑥
yang dalam hal ini, 𝑂(∆𝑥) = − 𝑓 ′′ (𝑡), 𝑥𝑖−1 < 𝑡 < 𝑥𝑖 .
2
𝑓0 − 𝑓−1
𝑓0 ′ = + 𝑂(∆𝑥)
∆𝑥
∆𝑥
Dalam hal ini 𝑂(∆𝑥) = − 𝑓 ′′ (𝑡), 𝑥𝑖+1 < 𝑡 < 𝑥𝑖 menyatakan penurunan numeris
2
secara beda mundur memiliki tingkat keakuratan tingkat satu atau ditulis 𝑂(∆𝑥).
′ ∆𝑥 2 ′′ ′ ∆𝑥 2 ′′
𝑓𝑖+1 − 𝑓𝑖−1 = 𝑓𝑖 + ∆𝑥𝑓𝑖 + 𝑓 + ⋯ − (𝑓𝑖 − ∆𝑥𝑓𝑖 + 𝑓 − ⋯)
2 𝑖 2 𝑖
∆𝑥 3 ′′′
𝑓𝑖+1 − 𝑓𝑖−1 = 2∆𝑥𝑓𝑖 ′ + 𝑓 +⋯
3 𝑖
∆𝑥 3 ′′′
2∆𝑥𝑓𝑖 ′ = 𝑓𝑖+1 − 𝑓𝑖−1 − 𝑓 −⋯
3 𝑖
𝑓𝑖+1 − 𝑓𝑖−1
𝑓𝑖 ′ = + 𝑂(∆𝑥 2 ),
2∆𝑥
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
24
∆𝑥 2
yang dalam hal ini, 𝑂(∆𝑥 2 ) = − 𝑓 ′′′ (𝑡), 𝑥𝑖−1 < 𝑡 < 𝑥𝑖+1 .
6
𝑓1 − 𝑓−1
𝑓0 ′ = + 𝑂(∆𝑥 2 )
2∆𝑥
∆𝑥 2
Dalam hal ini 𝑂(∆𝑥 2 ) = − 𝑓 ′′′ (𝑡), 𝑥𝑖−1 < 𝑡 < 𝑥𝑖+1 menyatakan penurunan
6
numeris secara beda pusat yang memiliki tingkat keakuratan tingkat dua atau ditulis
𝑂(∆𝑥 2 ). Perhatikan bahwa hampiran beda pusat lebih baik daripada dua hampiran
Pada penurunan rumus turunan numeris dengan deret Taylor, rumus galat
dalam penurunan rumus turunan numeris tersebut dapat langsung diperoleh. Tetapi
dengan polinom interpolasi harus dicari rumus galat tersebut dengan bantuan deret
Taylor.
Contoh 2.9
Tentukan rumus galat dan orde dari rumus turunan numeris hampiran beda pusat:
𝑓1 − 𝑓−1
𝑓 ′ (𝑥0 ) = +𝐸
2∆𝑥
Nyatakan 𝐸 (galat) sebagai ruas kiri persamaan, lalu ekspansi rusa kanan dengan
𝑓1 − 𝑓−1
𝐸 = 𝑓 ′ (𝑥0 ) −
2∆𝑥
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
25
1 ∆𝑥 2 ∆𝑥 3
=𝑓0 ′ − 2∆𝑥 [(𝑓0 + ∆𝑥𝑓0 ′ + 𝑓0 ′′ + 𝑓0 ′′′ + ⋯ ) − (𝑓0 − ∆𝑥𝑓0 ′ +
2 6
∆𝑥 2 ∆𝑥 3
𝑓0 ′′ − 𝑓0 ′′′ + ⋯ )]
2 6
1 ∆𝑥 3
=𝑓0 ′ − 2∆𝑥 (2∆𝑥𝑓0 ′ + 𝑓0 ′′′ + ⋯ )
3
∆𝑥 2
=𝑓0 ′ − 𝑓0 ′ − 𝑓0 ′′′ + ⋯
6
∆𝑥 2
=− 𝑓0 ′′′ + ⋯
6
∆𝑥 2
=− 𝑓0 ′′′ , 𝑥−1 < 𝑡 < 𝑥1
6
= 𝑂(∆𝑥 2 ).
∆𝑥 2
Jadi, hampiran beda pusat memiliki galat 𝐸 = − 𝑓0 ′′′ , 𝑥−1 < 𝑡 < 𝑥1 , dengan
6
orde 𝑂(∆𝑥 2 ).
ℎ𝑡 + (𝑢ℎ)𝑥 = 0 (2.15)
1 (2.16)
(ℎ𝑢)𝑡 + (𝑢2 ℎ + 𝑔ℎ2 )𝑥 = 0.
2
Gabungan persamaan (2.15) dan (2.16) dalam suatu sistem persamaan gelombang
ℎ𝑢 (2.17)
ℎ
[ ] + [ 2 1 2] = 0
ℎ𝑢 𝑡 ℎ𝑢 + 𝑔ℎ
2 𝑥
26
1 (2.18)
𝑢𝑡 + [ 𝑢2 + 𝑔ℎ]𝑥 = 0.
2
Pada persamaan (2.15) dan (2.18) memiliki bentuk yang bergantung dengan
𝑢 𝑢2 (2.19)
[𝜑 ] + [ 2 + 𝜑 ] = 0
𝑡 𝑢𝜑 𝑥
Sistem persamaan tersebut ekuivalen dengan sistem persamaan (2.17) untuk solusi
yang halus. Namun ada catatan penting bahwa manipulasi yang dilakukan di atas
bergantung pada kehalusan pada masalah. Kedua sistem dari hukum konservasi
tidak ekuivalen dalam menghitung shock waves. Sistem yang tepat untuk digunakan
adalah sistem persamaan (2.17) yang berasal dari persamaan integral asli. Untuk
ℎ𝑢 𝑞2
ℎ 𝑞1 2
𝑞(𝑥, 𝑡) = [ ] = [𝑞 ] , 𝑓(𝑞) = [ 2 1 2 ] = [(𝑞2 ) 1 ].
ℎ𝑢 2 ℎ𝑢 + 𝑔ℎ + 𝑔(𝑞1 )2
2 𝑞1 2
Untuk solusi halus (smooth), persamaan tersebut dapat ditulis secara ekuivalen
𝑞𝑡 + 𝑓 ′ (𝑞)𝑞𝑥 = 0
27
0 1 (2.20)
𝑓 ′ (𝑞) (𝑞
=[ 2 ) 2
1 𝑞2 ] = [ 2 0 1
].
+ 𝑔(𝑞1 )2 2 −𝑢 + 𝑔ℎ 2𝑢
𝑞1 2 𝑞1
1 1 (2.22)
𝑟1 = [ ] , 𝑟2 = [ ].
𝑢 − √𝑔ℎ 𝑢 + √𝑔ℎ
Nilai eigen dan vektor eigen adalah fungsi 𝑞 untuk sistem nonlinear. Jika diinginkan
gelombang dengan amplitudo yang sangat kecil, maka persamaan (2.17) dapat
lengkap tentang karakteristik persamaan air dangkal dapat ditemukan dalam buku
BAB III
DANGKAL
Dalam bab ini akan dijelaskan metode volume hingga, metode beda hingga
grid kolokasi dan metode beda hingga grid selang-seling. Metode tersebut
solusi numeris dengan solusi eksak. Berikut adalah solusi eksak yang akan
ℎ1 , jika 𝑥 ≤ −𝑡√𝑔ℎ1
4 𝑥 2
ℎ3 = (√𝑔ℎ1 − ) , jika − 𝑡√𝑔ℎ1 < 𝑥 ≤ 𝑡(𝑢2 − √𝑔ℎ2 )
9𝑔 2𝑡
ℎ(𝑥) =
ℎ0 8𝜉̇ 2
ℎ2 = (√1 + − 1) , jika 𝑡(𝑢2 − √𝑔ℎ2 ) < 𝑥 < 𝑡𝜉̇
2 𝑔ℎ0
{ ℎ0 , jika 𝑥 ≥ 𝑡𝜉̇
dan
28
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
29
0, jika 𝑥 ≤ −𝑡√𝑔ℎ1
2 𝑥 2
𝑢3 = (√𝑔ℎ1 + ) , jika − 𝑡√𝑔ℎ1 < 𝑥 ≤ 𝑡(𝑢2 − √𝑔ℎ2 )
3 𝑡
𝑢(𝑥) =
𝑔ℎ0 8𝜉̇ 2
𝑢2 = 𝜉̇ − (√1 + ), jika 𝑡(𝑢2 − √𝑔ℎ2 ) < 𝑥 < 𝑡𝜉̇
4𝜉̇ 𝑔ℎ0
{ 0, jika 𝑥 ≥ 𝑡𝜉̇
dengan ℎ(𝑥) adalah kedalaman air pada titik 𝑥 dan 𝑢(𝑥) adalah kecepatan air pada
1
2
𝑔ℎ0 8𝜉̇ 2 8𝜉̇ 2
𝜉̇ = 2√𝑔ℎ1 + (1 + √1 + ) − [2𝑔ℎ0 √1 + − 2𝑔ℎ0 ] .
4𝜉̇ 𝑔ℎ0 𝑔ℎ0
Solusi eksak ini diambil dari Thesis karangan Mungkasi dengan judul Finite
Volume Methods for the One Dimensional Shallow Water Equations (2008).
Persamaan gelombang air dangkal dideskripsikan dari gerak fluida. Ada dua
jenis gerak fluida yang dideskripsikan, yaitu Langrangian dan Eulerian. Deskripsi
fungsi dari waktu. Posisi, kecepatan dan percepatan setiap partikel dinotasikan
dengan 𝑠(𝑥0 , 𝑡), 𝑢(𝑥0 , 𝑡), dan 𝑎(𝑥0 , 𝑡), kemudian kuantitasnya misalnya massa,
momentum dan energi dapat dihitung. Pada kasus ini 𝑥0 merupakan titik awal atau
penamaan partikel.
partikel yang melewati setiap titik identifikasi pada domain ruang yang diamati.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
30
Laju perubahan kecepatan ketika partikel melewati setiap titik dapat diamati dengan
𝜕𝑢(𝑥,𝑡)
, dan perubahan kecepatan terhadap waktu pada setiap titik tertentu dapat
𝜕𝑥
𝜕𝑢(𝑥,𝑡)
diamati oleh . Dalam deskripsi Eulerian, sifat aliran (seperti kecepatan)
𝜕𝑡
Persamaan air dangkal ini terdiri dari dua persamaan. Persamaan pertama
diturunkan dari hukum konservasi massa dan persamaan kedua diturunkan dari
gelombang air dangkal atau biasa disebut Shallow Water Wave Equations.
Hukum kekekalan massa berarti massa tersebut tidak dapat diciptakan atau
dimusnahkan. Hal ini berarti massa total pada keseluruhan sistem sama setiap saat.
kekekalan massa. Pertama, aliran air diasumsikan tenang artinya tidak ada
gangguan dari luar dan kecepatannya diabaikan. Kedua, densitas 𝜌 air pada setiap
titik adalah konstan sehingga air mampat. Selain itu diasumsikan bahwa tempat air
kedap atau tertutup rapat karena massa adalah kekal. Oleh karena itu, massa pada
setiap volume kontrol (yaitu volume tertentu atau kolam air yang diamati) hanya
Secara umum, aliran air dapat diilustrasikan pada Gambar 1.1. Notasi yang
variabel waktu, 𝑧(𝑥) adalah topografi tanah, ℎ(𝑥, 𝑡) adalah kedalaman air di titik 𝑥
dan pada waktu 𝑡, 𝑤(𝑥, 𝑡) = 𝑧(𝑥) + ℎ(𝑥, 𝑡) adalah ketinggian air mutlak disebut
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
31
stage, dan 𝑢(𝑥, 𝑡) adalah kecepatan aliran air di titik 𝑥 dan pada waktu 𝑡. Massa
kedalaman 𝜌̅ di sebarang titik (𝑥, 𝑡) adalah 𝜌ℎ(𝑥, 𝑡) yang dapat dihitung dengan
𝑤(𝑥,𝑡)
𝜌̅ (𝑥, 𝑡) = ∫ 𝜌 𝑑𝑦
𝑧(𝑥)
= 𝜌ℎ(𝑥, 𝑡).
volume kontrol seperti yang dinyatakan dalam (3.1). Tingkatan aliran air yang
melewati setiap titik (𝑥, 𝑡) terhadap kedalaman air disebut flux massa 𝑓1 , yaitu
= 𝜌ℎ(𝑥, 𝑡)𝑢(𝑥, 𝑡)
Dengan menggunakan (3.2) dan asumsi bahwa massa dapat berubah hanya karena
𝑡+∆𝑡 𝑡+∆𝑡
+∫ 𝜌ℎ(𝑥1 , 𝑠)𝑢(𝑥1 , 𝑠)𝑑𝑠 − ∫ 𝜌ℎ(𝑥2 , 𝑠)𝑢(𝑥2 , 𝑠)𝑑𝑠
𝑡 𝑡
berlaku untuk setiap volume kontrol. Hal ini berarti bahwa massa pada setiap
langkah 𝑡 + ∆𝑡 adalah sama dengan massa pada waktu 𝑡 ditambah pergerakan flux
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
32
yang masuk dan dikurangi dengan flux yang keluar dari volume kontrol selama
periode ∆𝑡. Ilustrasi dari kontinuitas massa ditunjukkan pada Gambar 3.1.
𝑢
𝑢̅
𝑥1 𝑥2
Gambar 3.1: Aliran air yang masuk dan keluar dari volume kontrol.
𝜌ℎ(𝑥, 𝑡 + ∆𝑡)∆𝑥
∆𝑥 ∆𝑥
= 𝜌ℎ(𝑥, 𝑡)∆𝑥 + 𝜌ℎ (𝑥 − , 𝑡) 𝑢 (𝑥 − , 𝑡) ∆𝑡
2 2
∆𝑥 ∆𝑥
− 𝜌ℎ (𝑥 + , 𝑡) 𝑢 (𝑥 + , 𝑡) ∆𝑡 + 𝑂((∆𝑡)3 ) + 𝑂((∆𝑥)3 ).
2 2
ekuivalen dengan
ℎ𝑡 + (𝑢ℎ)𝑥 = 0. (3.5)
33
sistem sama dengan total gaya yang bekerja. Berdasarkan hukum Newton tersebut,
𝑑𝑝
𝐹= .
𝑑𝑡
Momentum total dari perpindahan air pada volume kontrol dari 𝑥1 ke 𝑥2 pada waktu
𝑥2 (𝑡) (3.6)
𝑝(𝑡) = ∫ 𝜌ℎ(𝑥, 𝑡)𝑢(𝑥, 𝑡)𝑑𝑥
𝑥1 (𝑡)
1
𝐹1 (𝑡) = 𝜌𝑔ℎ2 (𝑥1 (𝑡), 𝑡)
2
1
𝐹2 (𝑡) = − 𝜌𝑔ℎ2 (𝑥2 (𝑡), 𝑡)
2
lanjut, gaya pada ∆𝑧 seperti yang ditunjukkan pada Gambar 3.2, yaitu
∆𝑧
∆𝐹3 = −𝜌𝑔ℎ(𝑥, 𝑡) ∆𝑥
∆𝑥
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
34
𝑥2
𝐹3 = ∫ −𝜌𝑔ℎ(𝑥, 𝑡)𝑧𝑥 𝑑𝑥.
𝑥1
Oleh karena itu, gaya total di atas volume kontrol dinyatakan dengan 𝐹 yang
𝑥2
1 1 𝑑𝑧 (3.7)
𝐹= 𝜌𝑔ℎ2 (𝑥1 (𝑡), 𝑡) − 𝜌𝑔ℎ2 (𝑥2 (𝑡), 𝑡) − ∫ 𝜌𝑔ℎ(𝑥, 𝑡) 𝑑𝑥
2 2 𝑥1 𝑑𝑥
𝑑𝑝 𝑑 𝑥2
= ∫ 𝜌ℎ(𝑥, 𝑡)𝑢(𝑥, 𝑡)𝑑𝑥
𝑑𝑡 𝑑𝑡 𝑥1
𝑥2
𝑑𝑝 𝜕 (3.8)
=∫ 𝜌ℎ(𝑥, 𝑡)𝑢(𝑥, 𝑡)𝑑𝑥 + 𝜌ℎ(𝑥2 (𝑡), 𝑡)𝑢2 (𝑥2 (𝑡), 𝑡)
𝑑𝑡 𝑥1 𝜕𝑡
Menurut hukum kedua Newton tentang gerak, hasil dari persamaan (3.8) sama
dengan persamaan (3.7). Oleh karena itu, untuk periode-∆𝑡 dapat ditulis
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
35
𝑡+∆𝑡
−∫ 𝜌ℎ(𝑥1 (𝑡), 𝑡)𝑢2 (𝑥1 (𝑡), 𝑡)𝑑𝑡
𝑡
𝑡+∆𝑡 𝑡+∆𝑡
1 1
=∫ 𝜌𝑔ℎ2 (𝑥1 (𝑡), 𝑡) 𝑑𝑡 ∫ 𝜌𝑔ℎ2 (𝑥2 (𝑡), 𝑡) 𝑑𝑡
𝑡 2 𝑡 2
𝑡+∆𝑡 𝑥2 (𝑡)
−∫ ∫ 𝜌𝑔ℎ(𝑥, 𝑡)𝑧𝑥 𝑑𝑥 𝑑𝑡
𝑡 𝑥1 (𝑡)
Dengan cara yang sama seperti (3.3), persamaan (3.9) dapat ditulis
1
(ℎ𝑢)𝑡 + (ℎ𝑢2 + 𝑔ℎ2 ) = −𝑔ℎ𝑧𝑥
2 𝑥
simultan
ℎ𝑡 + (𝑢ℎ)𝑥 = 0 (3.10)
{ 1
(ℎ𝑢)𝑡 + (ℎ𝑢2 + 𝑔ℎ2 ) = −𝑔ℎ𝑧𝑥
2 𝑥
𝑞𝑡 + 𝑓(𝑞)𝑥 = 0 (3.11)
36
𝑢ℎ
ℎ 1
𝑞 = [ ] dan 𝑓(𝑞) = [ 2 ]
𝑢ℎ 𝑢 ℎ + 𝑔ℎ2
2
kedalaman air, 𝑢 = 𝑢(𝑥, 𝑡) adalah kecepatan air dan 𝑔 = 9,81 adalah percepatan
hingga Lax-Friedrics, metode beda hingga grid kolokasi dan metode beda hingga
grid selang-seling dengan menggunakan MATLAB (kondisi awal adalah "air yang
tenang" seperti yang ditunjukkan pada Gambar 3.2). Pada kasus ini dianggap
Bendungan air
Permukaan air
ℎ1 = 10 Permukaan air
ℎ0 = 4
Dinding bendungan air berada di titik 𝑥 = 0 dan kedalaman awal air adalah
ℎ1 , jika 𝑥 < 0
ℎ(𝑥, 0) = {
ℎ0 , jika 𝑥 > 0
37
Diambil domain ruang [−5,5]. Simulasi pada program dihentikan pada 𝑡 = 0.2.
Pada kasus ini diasumsikan massa jenis konstan, tidak ada turbulen dan fluida ideal.
Pada bagian ini dibahas mengenai skema metode volume hingga, perhitungan
flux secara numeris dalam metode volume hingga dan solusi numeris metode
adalah
𝑞𝑡 + 𝑓(𝑞)𝑥 = 0
atau ditulis
𝜕 𝜕
𝑞(𝑥, 𝑡) + 𝜕𝑥 𝑓(𝑞(𝑥, 𝑡)) = 0.
𝜕𝑡
𝑥𝑖−1 𝑥𝑖 𝑥𝑖+1
𝑡 𝑛 = 𝑛 ∙ ∆𝑡
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
38
dengan 𝑛 = 0,1,2,3, …
Selanjutnya misalkan 𝑄𝑖𝑛 adalah pendekatan dari rata-rata volume kuantitas 𝑞(𝑥, 𝑡)
1 𝑥𝑖+12
𝑄𝑖𝑛 ≈ ∫ 𝑞(𝑥, 𝑡 𝑛 ) 𝑑𝑥.
∆𝑥 𝑥 1
𝑖−
2
𝑛
Misalkan pula 𝐹𝑖+ 1 adalah pendekatan dari rata-rata debit material (flux) 𝑓(𝑞(𝑥, 𝑡))
2
𝑛+1
1 𝑡
𝐹𝑛 1 ≈ ∫ 𝑓 (𝑞 (𝑥𝑖+1 , 𝑡)) 𝑑𝑡.
𝑖+
2 ∆𝑡 𝑡 𝑛 2
𝑑 𝑥𝑖+12
∫ 𝑞(𝑥, 𝑡 𝑛 ) 𝑑𝑥 = − [𝑓 (𝑞 (𝑥𝑖+1 , 𝑡)) − 𝑓 (𝑞 (𝑥𝑖−1 , 𝑡))].
𝑑𝑡 𝑥 1 2 2
𝑖−
2
𝐹𝑛 1 − 𝐹𝑛 1
𝑄𝑖𝑛+1 − 𝑄𝑖𝑛 𝑖+
2
𝑖−
2
=−
∆𝑡 ∆𝑥
atau ditulis
∆𝑡 𝑛
𝑄𝑖𝑛+1 = 𝑄𝑖𝑛 − (𝐹 1 − 𝐹 𝑛 1 )
∆𝑥 𝑖+2 𝑖−
2
Skema metode volume hingga tersebut konsisten dengan skema metode beda
39
𝐹𝑛 1 − 𝐹𝑛 1
𝑄𝑖𝑛+1 − 𝑄𝑖𝑛 𝑖+
2
𝑖−
2
=−
∆𝑡 ∆𝑥
atau
𝐹𝑛 1 − 𝐹𝑛 1
𝑄𝑖𝑛+1 − 𝑄𝑖𝑛 𝑖+
2
𝑖−
2
+ =0
∆𝑡 ∆𝑥
𝑞𝑡 + 𝑓(𝑞)𝑥 = 0.
𝑛
Misalkan 𝑄𝑖𝑛 ≈ 𝑞(𝑥𝑖 , 𝑡 𝑛 ) dan 𝐹𝑖+ 𝑛
1 = 𝑓 (𝑞 (𝑥 1 , 𝑡 )).
𝑖+
2 2
Skema metode volume hingga untuk persamaan diferensial parsial di atas adalah
∆𝑡 𝑛
𝑄𝑖𝑛+1 = 𝑄𝑖𝑛 − (𝐹 1 − 𝐹 𝑛 1 ).
∆𝑥 𝑖+2 𝑖−
2
Diketahui nilai 𝑄𝑖𝑛 yaitu kuantitas numeris di semua titik 𝑥𝑖 dan pada waktu 𝑡 𝑛 .
Oleh karena itu, flux di titik 𝑥𝑖 pada waktu 𝑡 𝑛 juga diketahui, yaitu
𝐹𝑖𝑛 ≈ 𝑓(𝑞(𝑥𝑖 , 𝑡 𝑛 ))
≈ 𝑓(𝑄𝑖𝑛 ).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
40
Metode numeris dikatakan stabil artinya bahwa galat yang muncul pada setiap
iterasi tidak membesar terlalu cepat pada iterasi-iterasi berikutnya. Jika galat yang
muncul pada suatu iterasi membesar menuju tak terhingga pada iterasi-iterasi
berikutnya maka metodenya disebut tidak stabil. Teori kestabilan tidak dibahas
lebih lanjut dalam skripsi ini. Teori kestabilan dapat dilihat dalam buku-buku
1
𝐹𝑛 1 ≈ [𝑓(𝑄𝑖𝑛 ) + 𝑓(𝑄𝑖+1
𝑛
)]
𝑖+
2 2
∆𝑡 1 1 1 1
𝑄𝑖𝑛+1 = 𝑄𝑖𝑛 − ( 𝑓(𝑄𝑖𝑛 ) + 𝑓(𝑄𝑖+1
𝑛 𝑛
) − 𝑓(𝑄𝑖−1 ) − 𝑓(𝑄𝑖𝑛 ))
∆𝑥 2 2 2 2
∆𝑡
𝑄𝑖𝑛+1 = 𝑄𝑖𝑛 − 𝑛
(𝑓(𝑄𝑖+1 𝑛
) − 𝑓(𝑄𝑖−1 ))
2∆𝑥
2. Flux Lax-Friedrichs
atas, yaitu
1 𝑛
𝑄𝑖𝑛+1 ≈ 𝑛
(𝑄 + 𝑄𝑖−1 )
2 𝑖+1
Sehingga diperoleh
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
41
1 𝑛 ∆𝑡
𝑄𝑖𝑛+1 = (𝑄𝑖+1 𝑛
+ 𝑄𝑖−1 )− 𝑛
[𝑓(𝑄𝑖+1 𝑛
) − 𝑓(𝑄𝑖−1 )]
2 2∆𝑥
3. Flux Upwind
Metode upwind cocok untuk metode yang sudah diketahui arah rambatan
𝑞𝑡 + 𝑐𝑞𝑥 = 0
𝐹 𝑛 1 ≈ 𝑓(𝑞(𝑥𝑖 , 𝑡 𝑛 ))
𝑖+
2
= 𝑐𝑞(𝑥𝑖 , 𝑡 𝑛 )
≈ 𝑐𝑄𝑖𝑛
𝑛 𝑛
dan 𝐹𝑖− 1 ≈ 𝑐𝑄𝑖−1 .
2
∆𝑡 𝑛
𝑄𝑖𝑛+1 = 𝑄𝑖𝑛 − (𝐹 1 − 𝐹 𝑛 1 )
∆𝑥 𝑖+2 𝑖−
2
∆𝑡
= 𝑄𝑖𝑛 − (𝑐𝑄𝑖𝑛 − 𝑐𝑄𝑖−1
𝑛
)
∆𝑥
∆𝑡 𝑛
= 𝑄𝑖𝑛 − 𝑐 𝑛
(𝑄 − 𝑄𝑖−1 ).
∆𝑥 𝑖
(3.11) yaitu
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
42
ℎ𝑡 + [𝑢ℎ]𝑥 = 0 (3.12)
dan
1 (3.13)
[𝑢ℎ]𝑡 + [𝑢2 ℎ + 𝑔ℎ2 ]𝑥 = 0.
2
∆𝑡 𝑛
𝑄𝑖𝑛+1 = 𝑄𝑖𝑛 − (𝐹 1 − 𝐹 𝑛 1 )
∆𝑥 𝑖+2 𝑖−
2
𝐹 𝑛 1 = 𝑓(𝑄𝑖𝑛 )
𝑖+
2
dengan asumsi solusi dan kecepatannya positif. Jadi, jika diketahui persamaan
(3.12) maka dalam metode volume hingga diperoleh 𝑞 = ℎ dan 𝑓(𝑞) = 𝑢ℎ.
𝑛 𝑛
Sekarang dari persamaan (3.12) dicari flux 𝐹𝑖+ 1 dan 𝐹 1 .
𝑖−
2 2
𝐹𝑛 1 1 ∆𝑥
𝑖+
2 = [𝑓(𝑄𝑖𝑛 ) + 𝑓(𝑄𝑖+1
𝑛
)] − 𝑛
(𝑄𝑖+1 − 𝑄𝑖𝑛 )
2 2∆𝑡
1 ∆𝑥 𝑛
= [(𝑢ℎ)𝑛𝑖 + (𝑢ℎ)𝑛𝑖+1 ] − (ℎ − ℎ𝑖𝑛 )
2 2∆𝑡 𝑖+1
1 𝑛 𝑛 𝑛 𝑛 ∆𝑥 𝑛
= (𝑢𝑖 ℎ𝑖 + 𝑢𝑖+1 ℎ𝑖+1 )− (ℎ − ℎ𝑖𝑛 ).
2 2∆𝑡 𝑖+1
𝐹𝑛 1 1 𝑛 ∆𝑥
𝑖− = [𝑓(𝑄𝑖−1 ) + 𝑓(𝑄𝑖𝑛 )] − (𝑄 𝑛 − 𝑄𝑖−1
𝑛
)
2
2 2∆𝑡 𝑖
1 ∆𝑥 𝑛
= [(𝑢ℎ)𝑛𝑖−1 + (𝑢ℎ)𝑛𝑖 ] − 𝑛
(ℎ𝑖 − ℎ𝑖−1 )
2 2∆𝑡
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
43
1 𝑛 𝑛 ∆𝑥 𝑛
= (𝑢𝑖−1 ℎ𝑖−1 + 𝑢𝑖𝑛 ℎ𝑖𝑛 ) − 𝑛
(ℎ𝑖 − ℎ𝑖−1 ).
2 2∆𝑡
∆𝑡 𝑛
𝑄𝑖𝑛+1 = 𝑄𝑖𝑛 − (𝐹 1 − 𝐹 𝑛 1 )
∆𝑥 𝑖+2 𝑖−
2
𝐹 𝑛 1 = 𝑓(𝑄𝑖𝑛 )
𝑖+
2
dengan asumsi solusi dan kecepatannya positif. Jadi, jika diketahui persamaan
𝑛 𝑛
Sekarang dari persamaan (3.13) dicari flux 𝐹𝑖+ 1 dan 𝐹 1 .
𝑖−
2 2
𝐹𝑛 1 1 ∆𝑥
𝑖+ = [𝑓(𝑄𝑖𝑛 ) + 𝑓(𝑄𝑖+1
𝑛
)] − (𝑄 𝑛 − 𝑄𝑖𝑛 )
2
2 2∆𝑡 𝑖+1
1 1 2 𝑛 1 2 𝑛 ∆𝑥
2 2
= [(𝑢 ℎ + 𝑔ℎ ) + (𝑢 ℎ + 𝑔ℎ ) ] − ((𝑢ℎ)𝑛𝑖+1 − (𝑢ℎ)𝑛𝑖 )
2 2 𝑖 2 𝑖+1 2∆𝑡
1 1 1
= [((𝑢2 )𝑛𝑖 ℎ𝑖𝑛 + 𝑔(ℎ2 )𝑛𝑖 ) + ((𝑢2 )𝑛𝑖+1 ℎ𝑖+1
𝑛
+ 𝑔(ℎ2 )𝑛𝑖+1 )]
2 2 2
∆𝑥 𝑛 𝑛
− (𝑢 ℎ − 𝑢𝑖𝑛 ℎ𝑖𝑛 ).
2∆𝑡 𝑖+1 𝑖+1
𝐹𝑛 1 1 𝑛 ∆𝑥
𝑖−
2 = [𝑓(𝑄𝑖−1 ) + 𝑓(𝑄𝑖𝑛 )] − (𝑄𝑖𝑛 − 𝑄𝑖−1
𝑛
)
2 2∆𝑡
𝑛 𝑛
1 1 1 ∆𝑥
= [(𝑢2 ℎ + 𝑔ℎ2 ) + (𝑢2 ℎ + 𝑔ℎ2 ) ] − ((𝑢ℎ)𝑛𝑖 − (𝑢ℎ)𝑛𝑖−1 )
2 2 𝑖−1 2 𝑖 2∆𝑡
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
44
1 1 1
= [((𝑢2 )𝑛𝑖−1 ℎ𝑖−1
𝑛
+ 𝑔(ℎ2 )𝑛𝑖−1 ) + ((𝑢2 )𝑛𝑖 ℎ𝑖𝑛 + 𝑔(ℎ2 )𝑛𝑖 )]
2 2 2
∆𝑥 𝑛 𝑛 𝑛 𝑛
− (𝑢 ℎ − 𝑢𝑖−1 ℎ𝑖−1 ).
2∆𝑡 𝑖 𝑖
Gambar 3.3. Pada hasil simulasi persamaan air dangkal, program simulasi berhenti
pada saat 𝑡 = 0.2. Kedalaman awal air pada program ini adalah ℎ1 = 10, ℎ0 = 4.
45
beda hingga dibagi menjadi tiga bagian, yaitu beda maju, beda mundur, dan beda
pusat.
Begitu juga untuk waktu, jumlah langkah untuk waktu adalah 𝑀 dengan 𝑀 ∈
beda yaitu beda mundur untuk waktu dan beda pusat untuk ruang.
secara sistematis dan diasumsikan nilai ℎ(𝑥, 𝑡) dan 𝑢(𝑥, 𝑡) pada waktu 𝑡 𝑛−1
46
ℎ𝑖𝑛 − ℎ𝑖𝑛−1
≈ .
∆𝑡
dan
𝜕 𝜕 𝜕
[ℎ(𝑥, 𝑡)𝑢(𝑥, 𝑡)] = ℎ(𝑥, 𝑡) 𝑢(𝑥, 𝑡) + 𝑢(𝑥, 𝑡) ℎ(𝑥, 𝑡)
𝜕𝑡 𝜕𝑡 𝜕𝑡
𝜕 𝜕
≈ ℎ(𝑥𝑖 , 𝑡 𝑛−1 ) 𝑢(𝑥𝑖 , 𝑡 𝑛−1 ) + 𝑢(𝑥𝑖 , 𝑡 𝑛−1 ) ℎ(𝑥𝑖 , 𝑡 𝑛−1 )
𝜕𝑡 𝜕𝑡
𝑛
𝑛−1 𝑢𝑖 − 𝑢𝑖𝑛−1 𝑛 𝑛−1
𝑛−1 ℎ𝑖 − ℎ𝑖
≈ ℎ𝑖 + 𝑢𝑖 .
∆𝑡 ∆𝑡
secara sistematis dan diasumsikan nilai ℎ(𝑥, 𝑡) dan 𝑢(𝑥, 𝑡) pada ruang 𝑥𝑖−1
𝜕 𝜕 𝜕
[𝑢(𝑥, 𝑡)ℎ(𝑥, 𝑡)] = 𝑢(𝑥, 𝑡) ℎ(𝑥, 𝑡) + ℎ(𝑥, 𝑡) 𝑢(𝑥, 𝑡)
𝜕𝑥 𝜕𝑥 𝜕𝑥
𝜕 𝜕
≈ 𝑢(𝑥𝑖 , 𝑡 𝑛−1 ) ℎ(𝑥𝑖 , 𝑡 𝑛 ) + ℎ(𝑥𝑖 , 𝑡 𝑛−1 ) 𝑢(𝑥𝑖 , 𝑡 𝑛 )
𝜕𝑥 𝜕𝑥
𝑛 𝑛 𝑛 𝑛
𝑛−1 ℎ𝑖+1 − ℎ𝑖−1 𝑛−1 𝑢𝑖+1 − 𝑢𝑖−1
≈ 𝑢𝑖 + ℎ𝑖
2∆𝑥 2∆𝑥
dan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
47
𝜕 1 𝜕 1 𝜕
[ℎ(𝑥, 𝑡)𝑢2 (𝑥, 𝑡) + 𝑔ℎ2 (𝑥, 𝑡)] = [ℎ(𝑥, 𝑡)𝑢2 (𝑥, 𝑡)] + 𝑔 ℎ2 (𝑥, 𝑡)
𝜕𝑥 2 𝜕𝑥 2 𝜕𝑥
dengan
𝜕 𝜕 𝜕
[ℎ(𝑥, 𝑡)𝑢2 (𝑥, 𝑡)] = ℎ(𝑥, 𝑡) 𝑢2 (𝑥, 𝑡) + 𝑢2 (𝑥, 𝑡) ℎ(𝑥, 𝑡)
𝜕𝑥 𝜕𝑥 𝜕𝑥
𝜕 𝜕
= 2ℎ(𝑥, 𝑡)𝑢(𝑥, 𝑡) 𝑢(𝑥, 𝑡) + 𝑢2 (𝑥, 𝑡) ℎ(𝑥, 𝑡)
𝜕𝑥 𝜕𝑥
𝜕 𝜕
≈ 2ℎ(𝑥𝑖 , 𝑡 𝑛−1 )𝑢(𝑥𝑖 , 𝑡 𝑛−1 ) 𝑢(𝑥𝑖 , 𝑡 𝑛 ) + 𝑢2 (𝑥𝑖 , 𝑡 𝑛−1 ) ℎ(𝑥𝑖 , 𝑡 𝑛 )
𝜕𝑥 𝜕𝑥
𝑛 𝑛 𝑛 𝑛
𝑛−1 𝑛−1 𝑢𝑖+1 − 𝑢𝑖−1 𝑛−1 2 ℎ𝑖+1 − 𝑢𝑖−1
≈ 2ℎ𝑖 𝑢𝑖 + (𝑢𝑖 )
2∆𝑥 2∆𝑥
1 𝜕 2 1 𝜕
𝑔 ℎ (𝑥, 𝑡) = 2 𝑔ℎ(𝑥, 𝑡) ℎ(𝑥, 𝑡)
2 𝜕𝑥 2 𝜕𝑥
𝑛 𝑛
ℎ𝑖+1 − ℎ𝑖−1
≈ 𝑔ℎ𝑖𝑛−1 .
2∆𝑥
ℎ𝑖𝑛 − ℎ𝑖𝑛−1
∆𝑡
𝑛 𝑛−1 𝑛 𝑛−1
𝑛−1 𝑢𝑖 − 𝑢𝑖 𝑛−1 ℎ𝑖 − ℎ𝑖
ℎ
[ 𝑖 + 𝑢 𝑖 ]
∆𝑡 ∆𝑡
𝑛 𝑛 𝑛 𝑛
𝑛−1 ℎ𝑖+1
− ℎ𝑖−1 𝑛−1 𝑢𝑖+1 − 𝑢𝑖−1
𝑢𝑖 + ℎ𝑖
2∆𝑥 2∆𝑥 0
+ 𝑛 𝑛 𝑛 𝑛 𝑛 𝑛 =[ ]
𝑛−1 𝑛−1 𝑢𝑖+1 − 𝑢𝑖−1 ℎ𝑖+1 − 𝑢𝑖−1 ℎ𝑖+1 − ℎ𝑖−1 0
[2ℎ𝑖 𝑢𝑖 + (𝑢𝑖𝑛−1 )2 + 𝑔ℎ𝑖𝑛−1 ]
2∆𝑥 2∆𝑥 2∆𝑥
atau dapat ditulis berdasarkan persamaan konservasi massa dalam bentuk diskrit
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
48
ℎ𝑖𝑛 − ℎ𝑖𝑛−1 𝑛
ℎ𝑖+1 𝑛
− ℎ𝑖−1 𝑛
𝑢𝑖+1 𝑛
− 𝑢𝑖−1 (3.16)
+ 𝑢𝑖𝑛−1 + ℎ𝑖𝑛−1 =0
∆𝑡 2∆𝑥 2∆𝑥
𝑛
𝑛−1 𝑢𝑖 − 𝑢𝑖𝑛−1 𝑛 𝑛−1
𝑛−1 ℎ𝑖 − ℎ𝑖
𝑛 𝑛
𝑛−1 𝑛−1 𝑢𝑖+1 − 𝑢𝑖−1
(3.17)
ℎ𝑖 + 𝑢𝑖 + 2ℎ𝑖 𝑢𝑖
∆𝑡 ∆𝑡 2∆𝑥
𝑛 𝑛 𝑛 𝑛
ℎ𝑖+1 − 𝑢𝑖−1 ℎ𝑖+1 − ℎ𝑖−1
+ (𝑢𝑖𝑛−1 )2 + 𝑔ℎ𝑖𝑛−1 =0
2∆𝑥 2∆𝑥
𝑛
𝑛−1 ℎ𝑖 − ℎ𝑖𝑛−1 𝑛 𝑛
𝑛−1 2 ℎ𝑖+1 − ℎ𝑖−1
𝑛 𝑛
𝑛−1 𝑛−1 𝑢𝑖+1 − 𝑢𝑖−1
(3.18)
𝑢𝑖 + (𝑢𝑖 ) + 𝑢𝑖 ℎ𝑖 =0
∆𝑡 2∆𝑥 2∆𝑥
𝑛
𝑛−1 𝑢𝑖 − 𝑢𝑖𝑛−1 𝑛 𝑛
𝑛−1 𝑛−1 𝑢𝑖+1 − 𝑢𝑖−1
𝑛 𝑛
𝑛−1 ℎ𝑖+1 − ℎ𝑖−1
ℎ𝑖 + ℎ𝑖 𝑢𝑖 + 𝑔ℎ𝑖 =0
∆𝑡 2∆𝑥 2∆𝑥
ℎ𝑖𝑛 − ℎ𝑖𝑛−1 𝑛
ℎ𝑖+1 𝑛
− ℎ𝑖−1 𝑛
𝑢𝑖+1 𝑛
− 𝑢𝑖−1 (3.19)
𝑢𝑖𝑛−1 + (𝑢𝑖𝑛−1 )2 + 𝑢𝑖𝑛−1 ℎ𝑖𝑛−1
∆𝑡 2∆𝑥 2∆𝑥
=0
𝑢𝑖𝑛 − 𝑢𝑖𝑛−1 𝑛
𝑢𝑖+1 𝑛
− 𝑢𝑖−1 𝑛
ℎ𝑖+1 𝑛
− ℎ𝑖−1
ℎ𝑖𝑛−1 + ℎ𝑖𝑛−1 𝑢𝑖𝑛−1 + 𝑔ℎ𝑖𝑛−1 =0
∆𝑡 2∆𝑥 2∆𝑥
Persamaan konservasi massa pada persamaan (3.19) dibagi dengan 𝑢𝑖𝑛−1 , diperoleh
ℎ𝑖𝑛 − ℎ𝑖𝑛−1 𝑛 𝑛
𝑛−1 ℎ𝑖+1 − ℎ𝑖−1
𝑛 𝑛
𝑛−1 𝑢𝑖+1 − 𝑢𝑖−1
(3.20)
+ 𝑢𝑖 + ℎ𝑖 =0
∆𝑡 2∆𝑥 2∆𝑥
𝑢𝑖𝑛 − 𝑢𝑖𝑛−1 𝑛
𝑢𝑖+1 𝑛
− 𝑢𝑖−1 𝑛
ℎ𝑖+1 𝑛
− ℎ𝑖−1
ℎ𝑖𝑛−1 + ℎ𝑖𝑛−1 𝑢𝑖𝑛−1 + 𝑔ℎ𝑖𝑛−1
∆𝑡 2∆𝑥 2∆𝑥
=0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
49
=0
+ ∆𝑡𝑔ℎ𝑖𝑛−1 (ℎ𝑖+1
𝑛 𝑛
− ℎ𝑖−1 ) = 0.
=0
+ ∆𝑡𝑔ℎ𝑖𝑛−1 ℎ𝑖+1
𝑛
− ∆𝑡𝑔ℎ𝑖𝑛−1 ℎ𝑖−1
𝑛
=0
= 2∆𝑥ℎ𝑖𝑛−1
− ∆𝑡𝑔ℎ𝑖𝑛−1 ℎ𝑖−1
𝑛
= 2∆𝑥ℎ𝑖𝑛−1 𝑢𝑖𝑛−1
Untuk 𝑖 = 1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
50
2∆𝑥ℎ1𝑛 + ∆𝑡𝑢1𝑛−1 ℎ2𝑛 − ∆𝑡𝑢1𝑛−1 ℎ0𝑛 + ∆𝑡ℎ1𝑛−1 𝑢2𝑛 − ∆𝑡ℎ1𝑛−1 𝑢0𝑛 (3.24)
= 2∆𝑥ℎ1𝑛−1
dan
2∆𝑥ℎ1𝑛−1 𝑢1𝑛 + ∆𝑡ℎ1𝑛−1 𝑢1𝑛−1 𝑢2𝑛 − ∆𝑡ℎ1𝑛−1 𝑢1𝑛−1 𝑢0𝑛 + ∆𝑡𝑔ℎ1𝑛−1 ℎ2𝑛 (3.25)
Untuk 𝑖 = 2
2∆𝑥ℎ2𝑛 + ∆𝑡𝑢2𝑛−1 ℎ3𝑛 − ∆𝑡𝑢2𝑛−1 ℎ1𝑛 + ∆𝑡ℎ2𝑛−1 𝑢3𝑛 − ∆𝑡ℎ2𝑛−1 𝑢1𝑛 (3.26)
= 2∆𝑥ℎ2𝑛−1
dan
2∆𝑥ℎ2𝑛−1 𝑢2𝑛 + ∆𝑡ℎ2𝑛−1 𝑢2𝑛−1 𝑢3𝑛 − ∆𝑡ℎ2𝑛−1 𝑢2𝑛−1 𝑢1𝑛 + ∆𝑡𝑔ℎ2𝑛−1 ℎ3𝑛 (3.27)
Untuk 𝑖 = 3
2∆𝑥ℎ3𝑛 + ∆𝑡𝑢3𝑛−1 ℎ4𝑛 − ∆𝑡𝑢3𝑛−1 ℎ2𝑛 + ∆𝑡ℎ3𝑛−1 𝑢4𝑛 − ∆𝑡ℎ3𝑛−1 𝑢2𝑛 (3.28)
= 2∆𝑥ℎ3𝑛−1
dan
2∆𝑥ℎ3𝑛−1 𝑢3𝑛 + ∆𝑡ℎ3𝑛−1 𝑢3𝑛−1 𝑢4𝑛 − ∆𝑡ℎ3𝑛−1 𝑢3𝑛−1 𝑢2𝑛 + ∆𝑡𝑔ℎ3𝑛−1 ℎ4𝑛 (3.29)
Variabel 𝑢1𝑛 , 𝑢2𝑛 , 𝑢3𝑛 , ℎ1𝑛 , ℎ2𝑛 , ℎ3𝑛 tidak diketahui dan enam persamaan berikut dapat
disederhanakan menjadi:
Untuk 𝑖 = 1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
51
Untuk 𝑖 = 2
2∆𝑥ℎ2𝑛 + ∆𝑡𝑢2𝑛−1 ℎ3𝑛 − ∆𝑡𝑢2𝑛−1 ℎ1𝑛 + ∆𝑡ℎ2𝑛−1 𝑢3𝑛 − ∆𝑡ℎ2𝑛−1 𝑢1𝑛 (3.32)
= 2∆𝑥ℎ2𝑛−1
dan
2∆𝑥ℎ2𝑛−1 𝑢2𝑛 + ∆𝑡ℎ2𝑛−1 𝑢2𝑛−1 𝑢3𝑛 − ∆𝑡ℎ2𝑛−1 𝑢2𝑛−1 𝑢1𝑛 + ∆𝑡𝑔ℎ2𝑛−1 ℎ3𝑛 (3.33)
Untuk 𝑖 = 3
dan
Jika diketahui syarat batas kecepatan awal 𝑢(𝑥𝑎 , 𝑡) = 𝑢(𝑥𝑏 , 𝑡) = 0, dan ketinggian
0 ∆𝑡ℎ𝑛−1
1 0 2∆𝑥 ∆𝑡𝑢𝑛−1
1 0
2∆𝑥ℎ𝑛−1
1 ∆𝑡ℎ𝑛−1
1 𝑢1
𝑛−1
0 0 ∆𝑡𝑔ℎ𝑛−1
1 0
−∆𝑡ℎ𝑛−1
2 0 ∆𝑡ℎ𝑛−1
2 −∆𝑡𝑢𝑛−1
2 2∆𝑥 ∆𝑡𝑢𝑛−1
2
𝑛−1 𝑛−1
−∆𝑡ℎ2 𝑢2 2∆𝑥ℎ𝑛−1
2
𝑛−1 𝑛−1
∆𝑡ℎ2 𝑢2 −∆𝑡𝑔ℎ𝑛−1
2 0 ∆𝑡𝑔ℎ𝑛−1
2
0 −∆𝑡𝑢𝑛−1
3 0 0 −∆𝑡ℎ𝑛−1
3 2∆𝑥
[ 0 −∆𝑡ℎ𝑛−1
3 𝑢3
𝑛−1
2∆𝑥ℎ𝑛−1
3 0 −∆𝑡𝑔ℎ𝑛−1
3 0 ]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
52
Misalkan
0 ∆𝑡ℎ𝑛−1
1 0 2∆𝑥 ∆𝑡𝑢𝑛−1
1 0
2∆𝑥ℎ𝑛−1
1
𝑛−1 𝑛−1
∆𝑡ℎ1 𝑢1 0 0 ∆𝑡𝑔ℎ𝑛−1
1 0
−∆𝑡ℎ𝑛−1
2 0 ∆𝑡ℎ𝑛−1
2 −∆𝑡𝑢𝑛−1
2 2∆𝑥 ∆𝑡𝑢𝑛−1
2
= 𝑛−1 𝑛−1
−∆𝑡ℎ2 𝑢2 2∆𝑥ℎ𝑛−1
2
𝑛−1 𝑛−1
∆𝑡ℎ2 𝑢2 −∆𝑡𝑔ℎ𝑛−1
2 0 ∆𝑡𝑔ℎ𝑛−1
2
0 −∆𝑡𝑢𝑛−1
3 0 0 −∆𝑡ℎ𝑛−1
3 2∆𝑥
𝑛−1 𝑛−1
( 0 −∆𝑡ℎ3 𝑢3 2∆𝑥ℎ𝑛−1
3 0 −∆𝑡𝑔ℎ𝑛−1
3 0 )
𝑢1𝑛
𝑢2𝑛
𝑢3𝑛
𝑋= ,
ℎ1𝑛
ℎ2𝑛
(ℎ3𝑛 )
2∆𝑥ℎ1𝑛−1 + ∆𝑡𝑢1𝑛−1
2∆𝑥ℎ1𝑛−1 𝑢1𝑛−1 + ∆𝑡𝑔ℎ1𝑛−1
2∆𝑥ℎ2𝑛−1
𝑏= ,
2∆𝑥ℎ2𝑛−1 𝑢2𝑛−1
2∆𝑥ℎ3𝑛−1 − ∆𝑡𝑢3𝑛−1
(2∆𝑥ℎ3𝑛−1 𝑢3𝑛−1 − ∆𝑡𝑔ℎ3𝑛−1 )
diselesaikan.
Dalam program MATLAB digunakan syarat batas untuk kedalaman awal air
53
ditunjukkan dalam Gambar 3.4. Hasil simulasi program berhenti pada waktu
𝑡 = 0.2.
metode volume hingga dan metode beda hingga grid kolokasi yang sudah dilakukan
di atas.
54
ℎ𝑢
ℎ
[ ] + [ 2 1 2 ] = 0.
ℎ𝑢 𝑡 ℎ𝑢 + 𝑔ℎ
2 𝑥
Perhitungan domain 0 < 𝑥 < 𝑋, 𝑡 > 0 dengan grid selang-seling pada domain
seling adalah pendekatan dua persamaan (3.12) dan (3.13) pada grid berbeda. Pada
kekekalan massa pada persamaan (3.12) dihitung dengan pendekatan pada grid
[𝑥𝑖−1 , 𝑥𝑖+1 ] dan hukum kekekalan momentum pada persamaan (3.13) dihitung
2 2
𝑞𝑖+1 − 𝑞𝑖−1
∆ℎ𝑖 2 2
(3.36)
=−
∆𝑡 ∆𝑥
dengan
1 1 (3.38)
𝑞𝑖+1 = ℎ̂𝑖+1 𝑢𝑖+1 , ℎ𝑖+1 = (ℎ𝑖 + ℎ𝑖+1 ), 𝑞𝑖 = (𝑞 1 + 𝑞 1 )
2 2 2 2 2 2 𝑖+2 𝑖−
2
dan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
55
variabel 𝑢 dihitung pada grid 𝑢𝑖+1 , 𝑖 = 0,1, … , 𝑁𝑥 . Dengan menerapkan beda maju
2
untuk persamaan (3.36) dan beda mundur untuk persamaan (3.37), persamaan
(3.41)
𝑞𝑖+1 − 𝑞𝑖−1
ℎ𝑖𝑛+1 − ℎ𝑖𝑛 2 2
=−
∆𝑡 ∆𝑥
ℎ𝑛+1 𝑛+1 𝑛
1 𝑢 1 − ℎ 1𝑢
𝑛
1 2 (3.42)
𝑖+
2
𝑖+
2
𝑖+
2
𝑖+
2 1 ℎ𝑖+1 − ℎ𝑖2 𝑞𝑖+1 𝑢̂𝑖+1 − 𝑞𝑖 𝑢̂𝑖
=− 𝑔 −
∆𝑡 2 ∆𝑥 ∆𝑥
Hasil simulasi gelombang air dangkal dengan metode beda hingga grid selang-
gelombang air dangkal berikut, program berhenti pada saat 𝑡 = 0.2 dengan
56
Gambar 3.5: Hasil simulasi model gelombang air dangkal dengan metode beda
hingga grid selang-seling.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB IV
Pada bagian ini akan dibahas hasil-hasil simulasi numeris untuk tiga metode,
yaitu metode volume hingga, metode beda hingga grid kolokasi dan metode beda
Bendungan air
Permukaan air
ℎ1 = 10 Permukaan air
ℎ0 = 4
𝑥
Gambar 4.1: Bendungan air dengan kondisi awal adalah air yang tenang.
Kedalaman air di sebelah kiri bendungan adalah ℎ1 = 10 dan di sebelah kanan
bendungan adalah ℎ0 = 4.
57
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
58
𝑁
1
𝐺𝑎𝑙𝑎𝑡 𝑢 = ∑ |𝑢(𝑖) − 𝑢_𝑒𝑥(𝑖)|
𝑁
𝑖=1
dan
𝑁
1
𝐺𝑎𝑙𝑎𝑡 ℎ = ∑ |ℎ(𝑖) − ℎ_𝑒𝑥(𝑖)|,
𝑁
𝑖=1
di mana 𝑢 dan ℎ adalah nilai numeris di titik 𝑥𝑖 , 𝑢_𝑒𝑥 dan ℎ_𝑒𝑥 adalah nilai eksak
domain ruang 𝑥.
Pada Bab III dibahas mengenai solusi numeris dari persamaan gelombang air
dangkal dengan metode volume hingga. Dalam Bab IV ini dibahas mengenai hasil
MATLAB. Simulasi ini dilakukan untuk beberapa nilai 𝑁, yaitu 100, 200, 400, 800,
59
Gambar 4.2: Grafik simulasi numeris dengan metode volume hingga Lax-
Friedrichs untuk 𝑁 = 1000, 𝑡 = 0.2 detik, ∆𝑥 = 0.01, dan ∆𝑡 = 0.05 ∆𝑥.
Gambar 4.2 memberikan ilustrasi geometris mengenai simulasi yang telah
dilakukan. Terlihat pada gambar bahwa selisih solusi numeris dan eksaknya kecil.
Dengan kata lain, solusi numerisnya hampir mendekati solusi eksak. Simulasi ini
Tabel 4.1. Hasil simulasi numeris menggunakan metode volume hingga Lax-
Galat pada
N Galat u Galat h
100 0.2650 0.2112
200 0.1684 0.1362
400 0.1028 0.0842
800 0.0601 0.0498
1600 0.0344 0.0287
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
60
Dari Tabel 4.1 tampak bahwa semakin kecil 𝑁 yang diambil, semakin besar
galat (error) yang dihasilkan. Ketika diambil nilai 𝑁 yang cukup besar maka galat
simulasi akan semakin kecil karena banyaknya partisi pada ruang di sumbu 𝑥 yang
semakin banyak dan mendekati solusi eksaknya. Artinya ketika 𝑁 besar solusi yang
diperoleh akan lebih akurat. Dapat dilihat juga pada grafik bahwa solusi eksak dan
numerisnya berhimpit. Namun pada ujung-ujung grafik, kedua grafik terlihat tidak
berhimpit. Artinya masih ada galat perhitungan pada penggunaan metode ini.
Gambar 4.3: Grafik galat kecepatan aliran air (𝑢) dan kedalaman air (ℎ)
menggunakan metode volume hingga Lax-Friedrichs
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
61
Gambar 4.4: Grafik log galat kecepatan aliran air (𝑢) dan log galat kedalaman
aliran air (ℎ) menggunakan metode volume hingga Lax-Friedrichs
Gambar 4.4 menunjukkan nilai log galat 𝑢 𝐿1, ℎ 𝐿1, 𝑢 𝐿2, ℎ 𝐿2, 𝑢 𝐿∞ dan
dangkal. Rumus galat 𝐿∞ tidak dapat menunjukkan bahwa semakin banyak titik,
merupakan rumus yang tepat untuk digunakan sebagai alat untuk mengukur
keakuratan metode ini untuk persamaan gelombang air dangkal karena 𝐿1 dan 𝐿2
dapat menunjukkan bahwa semakin banyak titik, komputasi errornya akan semakin
kecil.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
62
ketika diambil ∆𝑡 cukup besar metode volume hingga Lax-Friedrichs tidak stabil.
air dangkal menggunakan metode beda hingga grid koloksi. Pada Bab III telah
dibahas solusi numeris untuk model gelombang air dangkal dengan metode beda
menggunakan MATLAB. Kondisi awal yang digunakan adalah sama dengan pada
simulasi sebelumnya.
dihasilkan tidak mulus karena banyak getaran semu pada grafik. Simulasi ini
63
Gambar 4.5: Grafik simulasi numeris dengan metode beda hingga grid kolokasi
untuk 𝑁 = 1000, 𝑡 = 0.2 detik, ∆𝑥 = 0.01, dan ∆𝑡 = 0.01.
Tampak pada gambar bahwa selisih solusi numeris dengan solusi eksak
sangat besar. Hal ini mengakibatkan solusi numeris yang dihasilkan tidak akurat.
Berikut merupakan hasil simulasi numeris untuk persamaan gelombang air dangkal
Tabel 4.2. Hasil simulasi numeris metode beda hingga grid kolokasi pada 𝑡 = 0.2
Galat pada
𝑁 Galat 𝑢 Galat ℎ
100 1.2075 0.9629
200 1.2168 0.9751
400 1.2122 0.9746
800 1.2099 0.9744
1600 1.2110 0.9759
3200 1.2105 0.9758
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
64
Rata-rata
1.2113 0.9731
galat
Dari Tabel 4.2 terlihat bahwa tidak ada perbedaan galat yang signifikan.
Misalnya pada 𝑁 = 200 dan 𝑁 = 1600, di mana galat yang dihasilkan hampir
sama. Nilai galat 𝑢 cukup besar yaitu berkisar 1.2 sedangkan nilai galat ℎ berkisar
0.9, hal ini tidak sesuai dengan yang diharapkan. Ilustrasi galat secara geometris
Gambar 4.6: Grafik galat kecepatan aliran air (𝑢) dan kedalaman air (ℎ)
menggunakan metode beda hingga grid kolokasi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
65
Gambar 4.7: Grafik galat kecepatan aliran air (𝑢) dan kedalaman air (ℎ)
menggunakan metode beda hingga gris kolokasi
Gambar 4.7 menunjukkan nilai log galat 𝑢 𝐿1, ℎ 𝐿1, 𝑢 𝐿2, ℎ 𝐿2, 𝑢 𝐿∞ dan
ℎ 𝐿∞ . Rumus galat 𝐿1, 𝐿2, dan 𝐿∞ tidak tepat digunakan sebagai alat untuk
gelombang air dangkal. Rumus galat 𝐿1, 𝐿2, dan 𝐿∞ tidak dapat menunjukkan
Metode ini memiliki kelebihan yaitu ketika diambil ∆𝑡 cukup besar metode
ini tetap stabil. Adapun kekurangan dari metode ini yaitu memiliki skema
perhitungan numerik yang cukup rumit jika dibandingkan dengan skema eksplisit
metode volume hingga Lax-Friedrichs. Metode ini memiliki sifat stabil tanpa
syarat. Selain itu, kekurangan pada model ini adalah memiliki galat yang besar pada
perhitungan numeriknya karena hanya dipandang satu grid saja untuk menghitung
variabel yang tidak diketahui. Dengan demikian metode beda hingga grid kolokasi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
66
bukan pilihan yang tepat untuk menyelesaikan persamaan gelombang air dangkal
volume hingga dan metode beda hingga grid kolokasi. Pada metode beda hingga
grid kolokasi masih terdapat getaran semu dalam hasil grafik yang dapat dilihat
memperbaiki model grid kolokasi agar tidak ada getaran semu dalam hasil simulasi
Gambar 4.8: Grafik simulasi numeris dengan metode beda hingga grid selang-
seling untuk 𝑁 = 1000, 𝑡 = 0.2 detik, ∆𝑥 = 0.01, dan ∆𝑡 = 0.05 ∆𝑥.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
67
Tampak pada Gambar 4.8 bahwa grafik kedalaman dan kecepatan aliran air
terlihat berhimpit dengan grafik solusi eksak. Namun pada ujung kiri grafik
kecepatan aliran air tampak tidak berhimpit. Artinya, galat yang dihasilkan sangat
kecil.
Dibandingkan dengan kedua metode yang sudah dibahas diatas, metode beda
hingga grid selang-seling memberikan hasil yang lebih akurat. Secara grafis terlihat
bahwa solusi numeris tampak berhimpit dengan solusi eksaknya. Dengan kata lain,
Tabel 4.3. Hasil simulasi numeris menggunakan metode beda hingga grid selang-
seling pada 𝑡 = 0.2
Galat pada
𝑁 Galat 𝑢 Galat ℎ
100 0.1804 0.1239
200 0.0897 0.0621
400 0.0415 0.0416
800 0.0285 0.0209
1600 0.0144 0.0140
3200 0.0089 0.0067
Rata-rata
0.0605 0.0448
galat
Tabel 4.3 menunjukkan bahwa semakin besar nilai 𝑁 yang diambil, semakin
kecil galat yang dihasilkan. Galat yang dihasilkan dengan metode beda hingga
selang-seling yaitu setengah kali dari galat dengan nilai 𝑁 yang diambil
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
68
0.1239. Kemudian diuji untuk nilai 𝑁 = 200 diperoleh galat 𝑢 = 0.0897 dan galat
ℎ = 0.0621. Artinya, galat pada 𝑁 = 200 adalah setengah kalinya galat pada 𝑁 =
Gambar 4.9: Grafik galat kecepatan aliran air (𝑢) dan kedalaman air (ℎ)
menggunakan metode beda hingga grid selang-seling
Galat yang dihasilkan pada metode beda hingga grid selang-seling lebih kecil
jika dibandingkan dengan metode beda volume hingga dan metode beda hingga
kolokasi. Metode beda hingga grid kolokasi memiliki galat yang lebih besar dari
69
Gambar 4.10: Grafik galat kecepatan aliran air (𝑢) dan kedalaman air (ℎ)
menggunakan beda hingga grid selang-seling
Gambar 4.10 menunjukkan nilai log galat 𝑢 𝐿1, ℎ 𝐿1, 𝑢 𝐿2, ℎ 𝐿2, 𝑢 𝐿∞ dan
keakuratan metode beda hingga grid selang-seling untuk persamaan gelombang air
dangkal. Rumus galat 𝐿∞ tidak dapat menunjukkan bahwa semakin banyak titik,
digunakan sebagai alat untuk mengukur keakuratan metode ini untuk persamaan
70
metode beda hingga grid kolokasi dan metode volume hingga Lax-Friedrichs.
Kekurangan metode ini yaitu skema untuk menyelesaikan persamaan lebih rumit
dibandingkan dengan skema grid kolokasi karena dalam perhitungan dipandang dua
grid untuk menghitung setiap variabel yang berbeda. Jadi, setiap variabel yang tidak
diketahui dihitung pada grid yang berbeda. Sehingga menghasilkan galat yang
kecil.
Hasil-hasil pada bab ini telah diseminarkan pada The 2016 International
BAB V
PENUTUP
A. Kesimpulan
secara numeris dapat diselesaikan dengan berbagai metode numeris. Pada bab-bab
sebelumnya telah diuji beberapa metode yaitu metode volume hingga, metode beda
hingga grid kolokasi dan metode beda hingga grid selang-seling. Berdasarkan hasil
simulasi numeris didapatkan penyelesaian yang terbaik dan sesuai yang diharapkan.
Nilai rata-rata galat dari ketiga metode yang sudah dibahas pada Bab IV
Dari ketiga metode tersebut dapat dilihat bahwa metode beda hingga grid selang-
seling memiliki rata-rata galat 𝑢 dan ℎ yang paling kecil dibandingkan dengan
kedua metode lainnya. Metode beda hingga grid selang-seling adalah metode yang
dengan metode volume hingga dan metode beda hingga grid kolokasi.
71
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
72
B. Saran
Penulis sadar bahwa dalam penulisan skripsi ini masih banyak kekurangan.
Oleh sebab itu, penulis mengharapkan kelak akan ada yang melanjutkan penelitian
ini. Tulisan ini hanya membahas model gelombang air dangkal satu dimensi.
Penulis berharap kelak akan ada yang melanjutkan penelitian ini di ruang dimensi
yang lebih tinggi dan jika dimungkinkan menggunakan model yang lain yang
DAFTAR PUSTAKA
Mungkasi, S dan Ilga Purnama Sari. (2016). Numerical Solution to the Shallow
Water Equations Using Explicit and Implicit Schemes. International
Conference on Information System and Applied Mathematics. Submitted to
AIP Conference Proceedings.
73
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Lampiran
yang digunakan dalam simulasi numeris untuk persamaan gelombang air dangkal
satu dimensi.
% initial conditions
u = zeros(N,1); %membuat ruang untuk kecepatan aliran air u
h = zeros(N,1); %membuat ruang untuk kedalaman aliran air h
uh = zeros(N,1); %membuat ruang untuk debit air
h1 = h;
u1 = u;
uh1 = uh;
74
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
75
uL=0;
uR=0;
xmin=-L;
xmax=L;
delta=(L-(-L))/N;
for i=2:N-1
F2_right=0.5*(u(i+1)^2*h(i+1) + 0.5*g*h(i+1)^2 +
u(i)^2*h(i)+0.5*g*h(i)^2) - dx/(2*dt)*(u(i+1)*h(i+1)-u(i)*h(i));
%menghitung flux 2 kanan
F2_left=0.5*(u(i)^2*h(i) + 0.5*g*h(i)^2 + u(i-1)^2*h(i-
1)+0.5*g*h(i-1)^2) - dx/(2*dt)*(u(i)*h(i)-u(i-1)*h(i-1));
%menghitung flux 2 kiri
end
t = t + dt; %update waktu
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
76
77
clc
N = [100,200,400,800,1600,3200];
Galat_u = [0.265, 0.1684, 0.1028, 0.0601, 0.0344, 0.0198];
Galat_h = [0,2112, 0,1362, 0,0842, 0,0498, 0,0287, 0,0166];
plot(N,Galat_u,'--r*',N,Galat_h,'--b*')
legend('Galat u','Galat h');
xlabel('Banyaknya langkah pada domain ruang (N)')
ylabel('Galat')
title('Galat Kecepatan dan Kedalaman Aliran Air')
clear
clc
E_u_L1a = E_u_L1
E_h_L1a = E_h_L1
E_u_L2a = E_u_L2
E_h_L2a = E_h_L2
E_u_Linfa = E_u_Linf
E_h_Linfa = E_h_Linf
for kk = 1:length(N1)
N = N1(kk)
for k=1:length(N)
L = 5;
dx = 2*L/N; %ukuran langkah pada ruang x
x1 = -L:dx:L; %membuat langkah pada ruang dengan dx
adalah jarak dari titik a ke b
x = x1(1:N)+dx/2; %membuat langkah pada ruang x1
sehingga jarak langkah semakin kecil
dt = 0.05*dx; %ukuran langkah waktu t
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
78
% initial conditions
u = zeros(N,1); %membuat ruang untuk kecepatan aliran
air u
h = zeros(N,1); %membuat ruang untuk kedalaman aliran
air h
uh = zeros(N,1); %membuat ruang untuk debit air
h1 = h;
u1 = u;
uh1 = uh;
uL=0;
uR=0;
xmin=-L;
xmax=L;
delta=(L-(-L))/N;
79
for i=2:N-1
F2_right=0.5*(u(i+1)^2*h(i+1) + 0.5*g*h(i+1)^2 +
u(i)^2*h(i)+0.5*g*h(i)^2) - dx/(2*dt)*(u(i+1)*h(i+1)-u(i)*h(i));
%menghitung flux 2 kanan
F2_left=0.5*(u(i)^2*h(i) + 0.5*g*h(i)^2 + u(i-
1)^2*h(i-1)+0.5*g*h(i-1)^2) - dx/(2*dt)*(u(i)*h(i)-u(i-1)*h(i-1));
%menghitung flux 2 kiri
h1(i)=h(i)-dt*(F1_right- F1_left)/dx;
%menghitung kedalaman aliran air
uh1(i)=uh(i)-dt*(F2_right- F2_left)/dx;
%menghitung debit air yang mengalir
end
t = t + dt; %update waktu
h = h1; %memperbarui dan memanggil hasil akhir
perhitungan kedalaman aliran air
uh = uh1; %memperbarui dan memanggil hasil akhir
debit air yang mengalir
u = uh1./h1; %memperbarui dan memanggil hasil akhir
perhitungan kecepatan aliran air
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Exact solution
u_ex=xmin+dx/2:dx:xmax-dx/2; % initial storage for
exact velocity u_ex
h_ex=xmin+dx/2:dx:xmax-dx/2; % initial storage for
exact height h_ex
80
end
end
Q_ex = h_ex.*u_ex; % the exact momentum or discharge Q
of water
E_u_L1a(kk,1) =(1/N)*sum(abs(u(1:N)'-u_ex(1:N)))
E_h_L1a(kk,1) =(1/N)*sum(abs(h(1:N)'-h_ex(1:N)))
E_u_L2a(kk,1) = (1/N)*sum((u(1:N)'-u_ex(1:N)).^2)
E_h_L2a(kk,1) = (1/N)*sum((h(1:N)'-h_ex(1:N)).^2)
E_u_Linfa(kk,1) = max(abs(u(1:N)'-u_ex(1:N)))
E_h_Linfa(kk,1) = max(abs(h(1:N)'-h_ex(1:N)))
end
E_u_L1 = E_u_L1a
E_h_L1 = E_h_L1a
E_u_L2 = E_u_L2a
E_h_L2 = E_h_L2a
E_u_Linf = E_u_Linfa
E_h_Linf = E_h_Linfa
subplot(2,1,1)
plot(log(N1),log(E_u_L1),'--r*',log(N1),log(E_u_L2),'--b*',
log(N1), log(E_u_Linf),'--g*')
legend('Galat u L1','Galat u L2', 'Galat u Linf');
xlabel('log(N)')
ylabel('log(Galat u)')
title('Galat Kecepatan Aliran Air')
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
81
subplot(2,1,2)
plot(log(N1),log(E_h_L1),'--r*',log(N1),log(E_h_L2),'--b*',
log(N1), log(E_h_Linf),'--g*')
legend('Galat h L1','Galat h L2', 'Galat h Linf');
xlabel('log(N)')
ylabel('log(Galat h)')
title('Galat Kedalaman Aliran Air')
82
for k=2:N
if k < N/2
h(k,1)= hL; % kedalaman aliran air di kiri dinding
else
h(k,1)= hR; % kedalaman aliran air di kanan dinding
end
end
% Penyelesaian Matriks
A=zeros(2*(N-1),2*(N-1)); %memesan tempat untuk matriks A
b=zeros(2*(N-1),1); %memesan tempat untuk matriks b
for j=2:M+1
A(1,N)=2*delta;
A(1,N+1)=zeta*u(2,j-1);
A(1,2)=zeta*h(2,j-1);
for i=3:N-1
A(2*i-3,N-2+i)=2*delta;
A(2*i-3,N-2+i+1)=zeta*u(i,j-1);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
83
A(2*i-3,N-2+i-1)=-zeta*u(i,j-1);
A(2*i-3,i+1-1)=zeta*h(i,j-1);
A(2*i-3,i-1-1)=-zeta*h(i,j-1);
% menyelesaikan matriks A
y=A\b;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% SOLUSI NUMERIS
% solusi untuk ruang kecepatan dan kedalaman aliran air
u(2:N,j)=y(1:N-1);
h(2:N,j)=y(N:2*N-2);
% Syarat batas
u(1:5,j)=0; u(end-5:end,j)=0;
h(1:5,j)=10; h(end-5:end,j)=4;
t = t+zeta;
%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% SOLUSI EKSAK
u_ex=xmin+dx/2:dx:xmax-dx/2; % initial storage for exact
velocity u_ex
h_ex=xmin+dx/2:dx:xmax-dx/2; % initial storage for exact
height h_ex
84
h_ex(i) = hR;
end
end
Q_ex = h_ex.*u_ex; % the exact momentum or discharge Q of
water
subplot(2,1,2);
plot(x,u(:,j),'b-',xC,u_ex,'r--');
legend('Numerical Solution','Exact Solution');
title(sprintf('Velocity at t=%4.3f',t))
axis([-L L 0 5]);
pause(0.1)
end
clc
N = [100,200,400,800,1600,3200];
Galat_u = [1.2075, 1.2168, 1.2122, 1.2099, 1.2110, 1.2105];
Galat_h = [0.9629, 0.9751, 0.9746, 0.9744, 0.9759, 0.9758];
plot(N,Galat_u,'--r*',N,Galat_h,'--b*')
legend('Galat u','Galat h');
xlabel('Banyaknya langkah pada domain ruang (N)')
ylabel('Galat')
title('Galat Kecepatan dan Kedalaman Aliran Air')
85
E_u_Linf=zeros(6,1)
E_h_Linf=zeros(6,1)
E_u_L1a=E_u_L1
E_h_L1a=E_h_L1
E_u_L2a=E_u_L2
E_h_L2a=E_h_L2
E_u_Linfa=E_u_Linf
E_h_Linfa=E_h_Linf
for kk = 1:length(N1)
N = N1(kk)
for jj=1:length(N)
zeta=0.01; % ukuran langkah waktu
tStop=0.2;
M=tStop/zeta; % jumlah langkah pada waktu
L=5;
hL=10;
hR=4;
uL=0;
uR=0;
xmin=-L;
xmax=L;
g=9.81; % konstanta percepatan gravitasi
delta=(L-(-L))/N;
dx=delta;
u=zeros(N+1,M+1); % membuat ruang untuk kecepatan
h=zeros(N+1,M+1); % membuat ruang untuk kedalaman
u(1,:)=uL;
u(N+1,:)=uR;
h(1,:)=hL;
h(N+1,:)=hR;
x=-L:delta:L; % langkah ruang dan jarak
t = 0;
86
for k=2:N
if k < N/2
h(k,1)= hL; % kedalaman aliran air di kiri dinding
else
h(k,1)= hR; % kedalaman aliran air di kanan
dinding
end
end
% Penyelesaian Matriks
A=zeros(2*(N-1),2*(N-1)); %memesan tempat untuk matriks
A
b=zeros(2*(N-1),1); %memesan tempat untuk matriks b
for j=2:M+1
A(1,N)=2*delta;
A(1,N+1)=zeta*u(2,j-1);
A(1,2)=zeta*h(2,j-1);
for i=3:N-1
A(2*i-3,N-2+i)=2*delta;
A(2*i-3,N-2+i+1)=zeta*u(i,j-1);
A(2*i-3,N-2+i-1)=-zeta*u(i,j-1);
A(2*i-3,i+1-1)=zeta*h(i,j-1);
A(2*i-3,i-1-1)=-zeta*h(i,j-1);
87
b(2*i-3,1)=2*delta*h(i,j-1);
A(2*i-2,i-1)=2*delta*h(i,j-1);
A(2*i-2,i+1-1)=zeta*u(i,j-1)*h(i,j-1);
A(2*i-2,i-1-1)=-zeta*u(i,j-1)*h(i,j-1);
A(2*i-2,N-2+i+1)=zeta*g*h(i,j-1);
A(2*i-2,N-2+i-1)=-zeta*g*h(i,j-1);
% menyelesaikan matriks A
y=A\b;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% SOLUSI NUMERIS
% solusi untuk ruang kecepatan dan kedalaman aliran
air
u(2:N,j)=y(1:N-1);
h(2:N,j)=y(N:2*N-2);
% Syarat batas
u(1:5,j)=0; u(end-5:end,j)=0;
h(1:5,j)=10; h(end-5:end,j)=4;
t = t+zeta;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% SOLUSI EKSAK
u_ex=xmin+dx/2:dx:xmax-dx/2; % initial storage for
exact velocity u_ex
h_ex=xmin+dx/2:dx:xmax-dx/2; % initial storage for
exact height h_ex
88
end
end
Q_ex = h_ex.*u_ex; % the exact momentum or discharge Q
of water
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
E_u = (1/N)*sum(abs(u(1:N)-u_ex(1:N)))
E_h = (1/N)*sum(abs(h(1:N)-h_ex(1:N)))
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
subplot(2,1,2);
plot(x,u(:,j),'b-',xC,u_ex,'r--');
legend('Numerical Solution','Exact Solution');
title(sprintf('Velocity at t=%4.3f',t))
axis([-L L 0 5]);
pause(0.1)
end
end
E_u_L1a(kk,1) =(1/N)*sum(abs(u(1:N)-u_ex(1:N)))
E_h_L1a(kk,1) =(1/N)*sum(abs(h(1:N)-h_ex(1:N)))
E_u_L2a(kk,1) = (1/N)*sum((u(1:N)-u_ex(1:N)).^2)
E_h_L2a(kk,1) = (1/N)*sum((h(1:N)-h_ex(1:N)).^2)
E_u_Linfa(kk,1) = max(abs(u(1:N)-u_ex(1:N)))
E_h_Linfa(kk,1) = max(abs(h(1:N)-h_ex(1:N)))
end
E_u_L1 = E_u_L1a
E_h_L1 = E_h_L1a
E_u_L2 = E_u_L2a
E_h_L2 = E_h_L2a
E_u_Linf = E_u_Linfa
E_h_Linf = E_h_Linfa
subplot(2,1,1)
plot(log(N1),log(E_u_L1),'--r*',log(N1),log(E_u_L2),'--b*',
log(N1), log(E_u_Linf),'--g*')
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
89
subplot(2,1,2)
plot(log(N1),log(E_h_L1),'--r*',log(N1),log(E_h_L2),'--b*',
log(N1), log(E_h_Linf),'--g*')
legend('Galat h L1','Galat h L2', 'Galat h Linf');
xlabel('log(N)')
ylabel('log(Galat h)')
title('Galat Kedalaman Aliran Air')
clc
clear all
90
% make a grid
x = (-L+dx/2 : dx : L+dx/2); % membuat langkah pada ruang x
dengan ujung-ujung interval -L+dx/2 dan L+dx/2
h = zeros(1,N); % membuat ruang untuk kedalaman aliran air
u = zeros(1,N); % membuat ruang untuk kecepatan aliran air
q = zeros(1,N); % membuat ruang untuk debit aliran air
xodd = zeros(1,N/2); % membuat ruang untuk menghitung kecepatan
aliran air
uodd = zeros(1,N/2); % membuat ruang untuk perhitungan
kecepatan aliran air pada grid ganjil
qodd = zeros(1,N/2); % membuat ruang untuk perhitungan debit
aliran air pada grid ganjil
xeven = zeros(1,N/2); % membuat ruang untuk menghitung kedalaman
aliran air
heven = zeros(1,N/2); % membuat ruang untuk perhitungan
kedalaman aliran air pada grid genap
%initial condition
h(1,1:N/2) = hL;
h(1,N/2:N) = hR;
%initial condition
h(1) = hL;
h(end) = hR;
u(1) = 0;
u(end) = 0;
while (t<tstop)
hh=h;
uu=u;
hnew = zeros(1,N);
unew = zeros(1,N);
for i = 3:N-2
if mod(i,2) == 0 %h grids i.e. even grids
hhtiph = hh(i);
uuiph = uu(i+1);
qiph = hhtiph*uuiph;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
91
hhtimh = hh(i-2);
uuimh = uu(i-1);
qimh = hhtimh*uuimh;
hnew(i) = hh(i) - dt/(2*dx)*(qiph - qimh);
end
end
%boundary condition
hnew(1:3) = hL;
hnew(end-3:end) = hR;
unew(1:3) = 0;
unew(end-3:end) = 0;
uuip3h = uu(i+2);
hhtip3h = hh(i+1);
qip3h = hhtip3h*uuip3h;
uuiph = uu(i);
hhtiph = hh(i-1);
qiph = hhtiph*uuiph;
qip1 = 0.5*(qiph+qip3h);
uuimh = uu(i-2);
hhtimh = hh(i-3);
qimh = hhtimh*uuimh;
qi = 0.5*(qimh+qiph);
hhip1 = hh(i+1);
hhi = hh(i-1);
hhiph = 0.5*(hhi+hhip1);
hip1 = hnew(i+1);
hi = hnew(i-1);
hiph = 0.5*(hi+hip1);
unew(i) = (1/hiph)*(hhiph*uuiph -
dt/(2*dx)*(qip1*uutip1 - qi*uuti + 0.5*g*(hip1^2 - hi^2) ) );
end
end
%boundary condition
hnew(1:4) = hL;
hnew(end-4:end) = hR;
unew(1:4) = 0;
unew(end-4:end) = 0;
92
t=t+dt;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Exact solution
u_ex=xmin+dx/2:dx:xmax-dx/2; % initial storage for exact
velocity u_ex
h_ex=xmin+dx/2:dx:xmax-dx/2; % initial storage for exact
height h_ex
else
uodd((i+1)/2) = u(i);
uoddex((i+1)/2) = u_ex(i);
end
end
figure(1)
subplot(2,1,1)
plot(xeven,heven,'b-', xeven,hevenex,'r-')
legend('solusi numeris','solusi eksak')
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
93
subplot(2,1,2)
plot(xodd,uodd,'b-', xodd,uoddex,'r-')
legend('solusi numeris','solusi eksak')
title(sprintf('Kecepatan air pada waktu t=%4.3f',t))
xlim([-L L])
ylim([0 5])
pause(0.1)
end
clc
N = [100,200,400,800,1600,3200];
Galat_u = [0.1804, 0.0897, 0.0415, 0.0285, 0.0144, 0.0089];
Galat_h = [0.1239, 0.0621, 0.0416, 0.0209, 0.0140, 0.0067];
plot(N,Galat_u,'--r*',N,Galat_h,'--b*')
legend('Galat u','Galat h');
xlabel('Banyaknya langkah pada domain ruang (N)')
ylabel('Galat')
title('Galat Kecepatan dan Kedalaman Aliran Air')
clc
clear all
E_u_L1a=E_u_L1
E_h_L1a=E_h_L1
E_u_L2a=E_u_L2
E_h_L2a=E_h_L2
E_u_Linfa=E_u_Linf
E_h_Linfa=E_h_Linf
for kk = 1:length(N1)
N = N1(kk)
for k=1:length(N)
g = 9.81; % percepatan gravitasi
L = 5; % ujung-ujung interval
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
94
xmin=-L;
xmax=L;
dx = (L-(-L))/N; % jarak grid a ke grid b
hL = 10; % ketinggian awal di sebelah kiri dinding,
dinding berada pada x=0
hR = 4; % ketinggian awal di sebelah kanan dinding
dt = 0.05*dx; % langkah waktu t
tstop =0.2; % program ini berjalan sampai waktu tStop
detik
% make a grid
x = (-L+dx/2 : dx : L+dx/2); % membuat langkah pada
ruang x dengan ujung-ujung interval -L+dx/2 dan L+dx/2
h = zeros(1,N); % membuat ruang untuk kedalaman aliran air
u = zeros(1,N); % membuat ruang untuk kecepatan aliran air
q = zeros(1,N); % membuat ruang untuk debit aliran air
xodd = zeros(1,N/2); % membuat ruang untuk menghitung
kecepatan aliran air
uodd = zeros(1,N/2); % membuat ruang untuk perhitungan
kecepatan aliran air pada grid ganjil
qodd = zeros(1,N/2); % membuat ruang untuk perhitungan
debit aliran air pada grid ganjil
xeven = zeros(1,N/2); % membuat ruang untuk menghitung
kedalaman aliran air
heven = zeros(1,N/2); % membuat ruang untuk perhitungan
kedalaman aliran air pada grid genap
95
xeven(i/2) = x(i);
else
xodd((i+1)/2) = x(i);
end
end
%initial condition
h(1,1:N/2) = hL;
h(1,N/2:N) = hR;
%initial condition
h(1) = hL;
h(end) = hR;
u(1) = 0;
u(end) = 0;
while (t<tstop)
hh=h;
uu=u;
hnew = zeros(1,N);
unew = zeros(1,N);
for i = 3:N-2
if mod(i,2) == 0 %h grids i.e. even grids
hhtiph = hh(i);
uuiph = uu(i+1);
qiph = hhtiph*uuiph;
hhtimh = hh(i-2);
uuimh = uu(i-1);
qimh = hhtimh*uuimh;
hnew(i) = hh(i) - dt/(2*dx)*(qiph - qimh);
end
end
%boundary condition
hnew(1:3) = hL;
hnew(end-3:end) = hR;
unew(1:3) = 0;
unew(end-3:end) = 0;
uuip3h = uu(i+2);
hhtip3h = hh(i+1);
qip3h = hhtip3h*uuip3h;
uuiph = uu(i);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
96
hhtiph = hh(i-1);
qiph = hhtiph*uuiph;
qip1 = 0.5*(qiph+qip3h);
uuimh = uu(i-2);
hhtimh = hh(i-3);
qimh = hhtimh*uuimh;
qi = 0.5*(qimh+qiph);
hhip1 = hh(i+1);
hhi = hh(i-1);
hhiph = 0.5*(hhi+hhip1);
hip1 = hnew(i+1);
hi = hnew(i-1);
hiph = 0.5*(hi+hip1);
unew(i) = (1/hiph)*(hhiph*uuiph -
dt/(2*dx)*(qip1*uutip1 - qi*uuti + 0.5*g*(hip1^2 - hi^2) ) );
end
end
%boundary condition
hnew(1:4) = hL;
hnew(end-4:end) = hR;
unew(1:4) = 0;
unew(end-4:end) = 0;
t=t+dt;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Exact solution
u_ex=xmin+dx/2:dx:xmax-dx/2; % initial storage for
exact velocity u_ex
h_ex=xmin+dx/2:dx:xmax-dx/2; % initial storage for
exact height h_ex
97
end
end
Q_ex = h_ex.*u_ex; % the exact momentum or discharge Q
of water
else
uodd((i+1)/2) = u(i);
uoddex((i+1)/2) = u_ex(i);
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
E_u = 1/(N/2)*sum(abs(uodd-uoddex))
E_h = 1/(N/2)*sum(abs(heven-hevenex))
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure(1)
subplot(2,1,1)
plot(xeven,heven,'b-', xeven,hevenex,'r-')
legend('Numerical solution','Exact Solution')
title(sprintf('Depth at t=%4.3f',t))
xlim([-L L])
ylim([0 11])
subplot(2,1,2)
plot(xodd,uodd,'b-', xodd,uoddex,'r-')
legend('Numerical solution','Exact Solution')
title(sprintf('Velocity at t=%4.3f',t))
xlim([-L L])
ylim([0 5])
pause(0.1)
end
end
E_u_L2a(kk,1) = (1/N)*sum((uodd-uoddex).^2)
E_h_L2a(kk,1) = (1/N)*sum((heven-hevenex).^2)
E_u_Linfa(kk,1) = max(abs(uodd-uoddex))
E_h_Linfa(kk,1) = max(abs(heven-hevenex))
end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
98
E_u_L1 = E_u_L1a
E_h_L1 = E_h_L1a
E_u_L2 = E_u_L2a
E_h_L2 = E_h_L2a
E_u_Linf = E_u_Linfa
E_h_Linf = E_h_Linfa
subplot(2,1,1)
plot(log(N1),log(E_u_L1),'--r*',log(N1),log(E_u_L2),'--b*',
log(N1), log(E_u_Linf),'--g*')
legend('Galat u L1','Galat u L2', 'Galat u Linf');
xlabel('log(N)')
ylabel('log(Galat u)')
title('Galat Kecepatan Aliran Air')
subplot(2,1,2)
plot(log(N1),log(E_h_L1),'--r*',log(N1),log(E_h_L2),'--b*',
log(N1), log(E_h_Linf),'--g*')
legend('Galat h L1','Galat h L2', 'Galat h Linf');
xlabel('log(N)')
ylabel('log(Galat h)')
title('Galat Kedalaman Aliran Air')