Tugas Runge Kutta
Kali ini saya akan menggunakan metode runge kutta orde 4 untuk menyelesaikan kasus pada kehidupan sehari hari.
Ini kita akan mencari waktu pengisian air sampai penuh pada ember.
Untuk rincian, silakan nonton video dibawah dimana akan saya jelaskan penyelesaian dengan 2 jenis metode yaitu,
metode analitik dan metode numerik (runge kutta orde 4) Berikut ini adalah algoritma untuk penyelesaian kasus diatas.
import numpy as np p = 22/7 # nilai dari π lingkaran karena kita menghitung volume silinder k = eval (input('Kecepatan tinggi air : ')) # Kecepatan air mengisi per cm(tinggi) r = 30 # Jari - jari ember z = 40 # Tinggi ember h = 1 # Disini saya memakai increment bernilai 1 t = eval(input('Masukan tinggi yang ingin di capai : ')) # Tinggi air dari ember yang disuruh cari b = p * (r ** 2) * t # Menghitung volume ember def volume (t1, r): # turunan kedua dari rumus volume return ((27*p*t1)/8 ) if t <= z : # Pengulangan untuk runge kutta y0 = 0 # nilai awal waktu m = np.arange(0, t + h, h) for t1 in m : k1 = volume(t1, r) k2 = volume((t1+ (0.5 * h)), (r + (0.5 * k1 * h))) k3 = volume((t1 + (0.5 * h)), (r + (0.5 * k2 * h))) k4 = volume((t1+ h), (r + k3 * h)) y = y0 + ((1.0 / 6.0)*(k1 + (2 * k2) + (2 * k3) + k4)*h) t0 = b / (y * k) print("Waktu untuk mencapai tinggi : ", t, "cm adalah: ", t0, 's') # Print hasil hitung elif t > z: print('Error, Nilai tinggi yang ingin dicapai melebihi tinggi ember') # Jika nilai yang kita input melebihi nilai dalam algoritma maka error