FISIKA KOMPUTASI
JURUSAN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS LAMPUNG
2023
Judul Percobaan : Persamaan Diferensial Biasa
NPM 2117041077
Jurusan : Fisika
Kelompok : II (Dua) B
i
DAFTAR ISI
Halaman
LEMBAR PENGESAHAN....................................................................................i
DAFTAR ISI...........................................................................................................ii
DAFTAR GAMBAR.............................................................................................iii
I. PENDAHULUAN
1.1 Latar Belakang.......................................................................................1
1.2 Tujuan Percobaan...................................................................................2
IV. KESIMPULAN
DAFTAR PUSTAKA
ii
DAFTAR GAMBAR
Halaman
Gambar 3.1 Listing Program 1...............................................................................9
iii
I. PENDAHULUAN
Dalam kehidupan sehari-hari, sering kali timbul berbagai permasalahan yang sulit
untuk ditemukan hasilnya dan harus dilakukan pengevaluasian dengan berbagai
model matematis, khususnya dalam bidang sains seperti fisika, kimia, teknik, dan
bidang-bidang lainnya. Namun permasalahan ini dapat diselesaikan dengan
menggunakan persamaan diferensial. Persamaan diferensial lebih sering
dinyatakan dalam pemodelan matematika yang mengandung turunan fungsi.
Biasanya persamaan ini diselesaikan secara analitik dan dilakukan dengan
mencari penyelesaian umumnya terlebih dahulu. Setelah itu, akan didapatkan hasil
berupa fungsi, yang di mana fungsi ini akan diolah kembali konstantanya untuk
memperoleh hasil berupa nilai angka. Tetapi terkadang terdapat fungsi-fungsi
yang sulit didapatkan hasilnya jika dilakukan perhitungan secara manual dan
analitis. Hal ini dikarenakan metode penyelesaian persamaan diferensial secara
analitik terbatas pada persamaan-persamaan dalam bentuk tertentu. Sehingga
untuk membantu menyelesaikan penyelesaian persamaan diferensial ini, diperoleh
metode lain yang mampu menyelesaikan dengan nilai mendekati dan lebih mudah,
yaitu dengan metode numerik. Metode numerik tidak terbatas pada persamaan
dalam bentuk- bentuk tertentu. Penyelesaian yang digunakan pada persamaan
diferensial biasa secara numerik terbagi menjadi berbagai metode. Beberapa
metode di antaranya ialah metode Euler dan metode Runge-Kutta. Metode-metode
tersebut juga akan terbagi menjadi beberapa jenis. Untuk lebih memahami
mengenai persamaan diferensial biasa dan metode-metode yang dapat digunakan,
maka dilakukanlah praktikum ini.
2
Metode numerik merupakan suatu metode atau cara yang digunakan untuk
memformulasikan persoalan matematika sehingga dapat diselesaikan dengan
operasi perhitungan aritmatika angka-angka seperti umumnya. Metode numerik
menghasilkan solusi pendekatan yang mendekati solusi sebenarnya. Namun,
solusi yang diperoleh dapat seteliti mungkin. Solusi pendekatan ini tidak persis
dengan solusi sebenarnya sehingga memiliki selisih atau dikenal dengan galat,
yang dalam bahasa Inggris disebut error. Dengan mempelajari metode numerik,
adapun manfaat yang didapat di antaranya mampu menangani sistem persamaan
besar, ketidaklinearan, dan geometri yang sulit, mampu membuat program sendiri,
dan mampu menangani galat suatu nilai hampiran atau aproksimasi. Tahapan yang
dapat dilakukan untuk pemecahan masalah secara numerik, yaitu dengan
pemodelan, penyederhaan, formulasi numerik, pemrograman, operasional, serta
evaluasi (Vulandari, 2017).
jenis ini, domain fungsi dipartisi atas sejumlah titik dan rumus aproksimasi untuk
turunan diperoleh dari ekspansi deret Taylot di satu atau lebih titik partisi.
Berdasarkan lokasi titik partisi yang digunakan, metode beda hingga terbagi
menjadi beda maju (forward difference), beda mundur (backward difference), dan
beda pusat (central difference). Rumus umum beda hingga untuk turunan ke-m
degan ketelitian orde ke-n dapat dibangkitkan dengan suatu algoritma rekursif.
Namun dalam perhitungannya, semakin tinggi tingkatan turunan fungsi dan orde
ketelitian yang ingin dicapai, maka semakin besar pula beban memori komputasi
yang diperlukan. Hal ini dikarenakan semakin tinggi tingkatan turunan dan orde
ketelitian, maka jumlah data atau titik-titik partisi yang digunakan juga semakin
banyak. Untuk mengatasi hal seperti ini, diperlukan suatu rumus eksplisit beda
hingga sehingga koefisien-koefisiennya dapat ditentukan secara langsung tanpa
melewati proses perhitungan secara rekursif (Syafwan et al., 2018).
Terdapat salah satu metode satu langkah yang paling sederhana, yaitu metode
Euler. Dibandingkan dengan beberapa metode satu langkah lainnya, metode ini
dianggap kurang teliti. Namun, kelebihan metode ini ialah sederhana dan mudah
dipahami sehingga memudahkan untuk mempelajari metode lain yang lebih teliti,
metode ini juga perlu dipelajari. Metode Euler didapatkan dari deret Taylor
∆𝑥2
𝑦𝑖+1 = 𝑦𝑖 + 𝑦′𝑖 ∆𝑥 + 𝑦′′𝑖 + ⋯………………(2.1)
2!
Jika nilai x kecil, maka suku yang mengandung pangkat lebih tinggi dari 2
adalah sangat kecil dan dapat diabaikan, sehingga persamaannya dapat dituliskan
menjadi
𝑦𝑖+1 = 𝑦𝑖 + 𝑦′𝑖 ∆𝑥……...………………..(2.2)
Dengan membandingkan Persamaan (2.1) dan (2.2) dapat disimpulkan bahwa
dalam metode Euler, kemiringan = y’i = f (xi, yi), sehingga persamaannya
berubah menjadi
𝑦𝑖+1 = 𝑦𝑖 + 𝑓 (𝑥𝑖, 𝑦𝑖) ∆𝑥..…………………(2.3)
Di mana i = 1, 2, 3, …. Persamaan (2.3) merupakan metode Euler. Nilai y i + 1
Adapun soal tugas rumah pada praktikum ini adalah sebagai berikut.
1. Dengan menggunakan soal yang sama yaitu : y’ = 3y2 + 2t, t = 1 sd t = 5,
lakukan diskritisasi persamaan tersebut menggunakan metode Runge-Kutta
orde 2, yaitu
1
𝑦𝑛+1 = 𝑦𝑛 + [𝑘1 + 𝑘2]
2
dengan
𝑘1 = ℎ𝑓 (𝑦𝑛, 𝑡𝑛)
𝑘2 = ℎ𝑓 (𝑦𝑛 + 𝑘1, 𝑡𝑛+1)
Gunakan urutan pengerjaan seperti sebelumnyaa, tentukan f (tn, yn), lalu k1,
lalu f (tn+1, yn) lalu k2 selanjutnya yn+1.
int main () {
FILE * file_saya;
double t1 = 0.0, t2 = 5.0, dt;
int n = 100; // Misal t dibagi menjadi 100
7
3.3 Pembahasan
#include <stdio.h>
Pernyataan diawali dengan # disebut sebagai preprocessor directive. Tertulis
#include <iostream> yang merupakan header dalam bahasa pemrograman yang
digunakan untuk input-output.
int main () {}
8
Merupakan fungsi utama. “int” adalah sebuah return type integer. Setelah
identifier (identitas) “main” terdapat sepasang tanda ”()”, di mana merupakan
tempat untuk mengisi parameter untuk function, namun pada fungsi utama tidak
dibutuhkan dan dibiarkan kosong. Kemudian tanda “{“ (blok pembuka) dan “}“
(blok penutup), kedua blok menunjukkan bahwa kode diapit dalam ruang lingkup
dan menyatakannya sebagai definisi dari fungsi utama.
double
Fungsi double berguna untuk mendeklarasikan nilai dalam bentuk pecahan atau
desimal dengan angka di belakang koma lebih spesifik daripada float. Pada double
x sebanyak 5, fx sebanyak 4, fx2 sebanyak 4, dfx, dfxx, dan dfxx2 dideklarasikan
nilai masing-masing variabel.
int
Fungsi int berguna untuk mendeklarasikan nilai dalam bentuk bilangan bulat.
for ()
for digunakan untuk menyatakan perulangan yang dikhususkan untuk
pengulangan yang secara tepat mengetahui berapa kali pengulangan akan terjadi.
Program yang dibuat dan hasil output dari program tersebut ialah sebagai berikut.
9
Dari program didapatkan nilai hasil program diferensial biasa dengan metode
Runge-Kutta yaitu sebagai berikut.
t y
0.05 0.006250
0.10 0.017506
11
0.15 0.033802
0.20 0.055223
0.25 0.081931
0.30 0.114188
0.35 0.152393
0.40 0.197127
0.45 0.249206
0.50 0.309771
0.55 0.380415
0.60 0.463372
0.65 0.561829
0.70 0.680427
0.75 0.826125
0.80 1.009747
0.85 1.248935
0.90 1.574161
0.95 2.042108
1.00 2.768889
1.05 4.025152
1.10 6.566678
1.15 13.151118
1.20 39.215152
1.25 270.015626
1.30 11206.412637
1.35 18848759.176912
1.40 53291377225142.343750
1.45 425995632982916297429876736.000000
1.50
27220841898077331678216078810153293073076150949904384.000000
1.55
111146135046018340567046380414691785373318764238413110413819
345656739319658952638471865953475001535430656.000000
12
1.60
185301950035016207218305923429085355419723536655525259727101
763199311140261591493992605878507242325038622608323345948959739845
926101732783826878620856783251462062967186528743085699408583364081
9108807415169024.000000
1.65 inf
1.70 inf
1.75 inf
1.80 inf
1.85 inf
1.90 inf
1.95 inf
2.00 inf
2.05 inf
2.10 inf
2.15 inf
2.20 inf
2.25 inf
2.30 inf
2.35 inf
2.40 inf
2.45 inf
2.50 inf
2.55 inf
2.60 inf
2.65 inf
2.70 inf
2.75 inf
2.80 inf
2.85 inf
2.90 inf
2.95 inf
13
3.00 inf
3.05 inf
3.10 inf
3.15 inf
3.20 inf
3.25 inf
3.30 inf
3.35 inf
3.40 inf
3.45 inf
3.50 inf
3.55 inf
3.60 inf
3.65 inf
3.70 inf
3.75 inf
3.80 inf
3.85 inf
3.90 inf
3.95 inf
4.00 inf
4.05 inf
4.10 inf
4.15 inf
4.20 inf
4.25 inf
4.30 inf
4.35 inf
4.40 inf
4.45 inf
4.50 inf
4.55 inf
14
4.60 inf
4.65 inf
4.70 inf
4.75 inf
4.80 inf
4.85 inf
4.90 inf
4.95 inf
5.00 inf
IV. KESIMPULAN
Dari hasil praktikum yang telah dilakukan, maka dapat diambil kesimpulan
sebagai berikut.
1. Penyelesaian ditentukan dengan syarat bantu, yaitu syarat awal atau syarat
batas.
2. Diperoleh nilai t = 0,05 sampai t = 0,80 yaitu 0.006250, 0.017506, 0.033802,
0.055223, 0.081931, 0.114188, 0.152393, 0.197127, 0.249206, 0.309771,
0.380415, 0.463372, 0.561829, 0.680427, 0.826125, dan 1.009747.
3. Diperoleh nilai t = 0,85 sampai t = 1,40 yaitu 1.248935, 1.574161, 2.042108,
2.768889, 4.025152, 6.566678, 13.151118, 39.215152, 270.015626,
11206.412637, 18848759.176912, dan 53291377225142.343750.
DAFTAR PUSTAKA
Syafwan, H., Mahdhivan S., William R., dan Riki A. Y. 2018. Pemrograman
Komputasi Rumus Eksplisit Metode Beda Hingga Untuk Turunan Pertama
Dengan Menggunakan Matlab. Seminar Nasional Royal (SENAR). ISSN :
2622-6510. Hal. 61 - 66.