Tugas Runge Kutta

From ccitonlinewiki
Revision as of 22:43, 5 November 2019 by Sumardi81 (talk | contribs)
Jump to: navigation, search

Kali ini saya akan menggunakan metode runge kutta orde 4 untuk menyelesaikan kasus pada kehidupan sehari hari.


Kasus















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