Anda di halaman 1dari 23

LAPORAN PRAKTIKUM

FISIKA KOMPUTASI

PERSAMAAN DIFERENSIAL BIASA

DIAS ADITIA SYAHPUTRA


2117041012

JURUSAN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS LAMPUNG
2023
Judul Percobaan : Persamaan Diferensial Biasa

Tanggal Percobaan : 03 Maret 2023

Tempat Percobaan : Laboratorium Matematika dan Statistika Terapan

Nama : Dias Aditia Syahputra

NPM : 2117041012

Jurusan : Fisika

Fakultas : Matematika dan Ilmu Pengetahuan Alam

Kelompok :IA

Bandar Lampung, 03 Maret 2023


Mengetahui,
Asisten

Ajeng Rianti Dewi


NPM. 1917041018

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

II. TINJAUAN PUSTAKA


2.1 Metode Numerik....................................................................................3
2.2 Metode Euler dan Runge-Kutta..............................................................3
2.3 Persamaan Diferensial…........................................................................4

III. HASIL DAN PEMBAHASAN


3.1 Tugas Rumah.........................................................................................6
3.2 Listing Program......................................................................................6
3.3 Pembahasan............................................................................................8

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

1.1 Latar Belakang

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

1.2 Tujuan Percobaan

Tujuan dilakukannya praktikum ini adalah sebagai berikut.


1. Mahasiswa memahami masalah syarat awal pada persamaan
diferensial biasa menggunakan metode numerik.
2. Mahasiswa dapat membuat program yang berisi metode numerik untuk
menyelesaikan persamaan diferensial biasa yang menggunakan syarat
awal.
3. Mahasiswa dapat menyelesaikan masalah-masalah fisika yang
menyangkut metode numerik untuk menyelesaikan persamaan
diferensial biasa yang menggunakan syarat awal.
II. TINJAUAN PUSTAKA

2.1 Metode Numerik

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).

2.2 Metode Euler dan Range-Kutta

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).

2.3 Persamaan Diferensial

Persamaan diferensial merupakan topik yang sering dikaji dalam bidang


matematika dan banyak digunakan dalam menyelesaikan berbagai masalah
6

di berbagai bidang lain, seperti bidang kimia, fisika, ekonomi, teknik,


industri, dan disiplin ilmu lainnya. Persamaan diferensial sering dijadikan
sebagai model matematika yang dapat mendeskripsikan suatu fenomena
yang bersifat kompleks. Untuk menyelesaikan persamaan diferensial
secara numerik, perlu ditinjau terlebih dahulu hampiran suku turunan yang
muncul dalam persamaan diferensial tersebut. Salah satu metode numerik
yang biasa digunakan untuk menghitung hampiran turunan suatu fungsi
adalah metode beda hingga (finite difference). Pada metode 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).
III. HASIL DAN PEMBAHASAN

3.1 Tugas Rumah

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.

2. Buatlah program komputernya, bandingkan hasilnya dengan metode


Euler modifikasi.

3.2 Listing Program

Adapun listing program yang diperoleh yaitu sebagai

berikut. #include <iostream>

#include <stdio.h>

using namespace std;

int main (){


FILE *file_saya;

double t1=0.0, t2=5.0, dt;

int n=100;//misal t dibagi menjadi 100

double tn, y0=0.0, yn, fn;

double yn12, fn12, yn1;

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);

fprintf (file_saya,"%4.2f %10.6f\

n",tn,yn1);
// cout<<tn<<" "<<yn1<<endl'

yn = yn1;

fclose (file_saya);

return 0;

3.3 Pembahasan

Penjelasan program adalah sebagai berikut.


 #include <iostream>
Pernyataan diawali dengan # disebut sebagai preprocessor directive. Tertulis
#include <iostream> yang berarti program tersebut akan menggunakan fitur dari
library yang bernama iostream.

 #include <stdio.h>
Pernyataan diawali dengan # disebut sebagai preprocessor directive. Tertulis
#include <iostream> yang merupakan header dalam bahasa pemrograman yang
digunakan untuk input-output.

 using namespace std;


Berfungsi untuk memberitahu compiler untuk menggunakan namespace standar.

 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.

Pada baris selanjutnya dibuat untuk mendeklarasikan nilai-nilai dari variavel-


variabel yang sudah dideklarasikan dengan menggunakan fungsi double. Dalam
hal ini output diperoleh pada notepad karena menggunakan file_saya.

Program yang dibuat dan hasil output dari program tersebut ialah sebagai berikut.
11

Gambar 3.1 Listing Program

Gambar 3.2 Hasil Output Program 1


12

Gambar 3.3 Hasil Output Program 2

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
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
13

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.

Triatmodjo, B. 2002. Metode Numerik. BETA OFFSET. Yogyakarta.

Vulandari, R. T. 2017. Metode Numerik : Teori, Kasus, dan Aplikasi. Mavendra


Pers. Surabaya.
LAMPIRAN

Anda mungkin juga menyukai