FISIKA KOMPUTASI
JURUSAN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS LAMPUNG
2023
Judul Percobaan : Persamaan Diferensial Biasa
NPM : 2117041012
Jurusan : Fisika
Kelompok :IA
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................................................................................10
Gambar 3.2 Hasil Output Program 1....................................................................10
Gambar 3.3 Hasil Output Program 2....................................................................11
iii
I. PENDAHULUAN
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).
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
!
5
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 diprediksi dengan menggunakan kemiringan fungsi yang mana sama
dengan turunan pertama di titik xi untuk diekstrapolasikan secara linier
pada jarak sepanjang pias x. Penyelesaian menggunakan metode
numerik pada persamaan 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).
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
deng
an
𝑘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.
#include <stdio.h>
dt = (t2-t1)/n;
//modified euler
file_saya = fopen("out_modeuler.txt","w");
tn = t1;
yn = y0;
fprintf(file_saya,"t y\n");
for(int i=1;i<n;i++) {
tn = tn+dt;
fn = 3*(yn*yn)+2*tn;//persamaan soal
yn12=yn+(dt)*fn;
fn12+3*(yn12*yn12)+2*(tn+(dt/2));
yn1 = yn+(dt/2)*(fn+fn12);
n",tn,yn1);
// cout<<tn<<" "<<yn1<<endl'
yn = yn1;
fclose (file_saya);
return 0;
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 () {}
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.
11
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
1111461350460183405670463804146917853733187642384131104
13819
345656739319658952638471865953475001535430656.000000
1.60
1853019500350162072183059234290853554197235366555252597
27101
7631993111402615914939926058785072423250386226083233459489597
39845
9261017327838268786208567832514620629671865287430856994085833
64081
9108807415169024.000000
1.65 inf
1.70 inf
1.75 inf
1.80 inf
14
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
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
15
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
16
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. 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.
2 . 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.