Difference between revisions of "Tugas Runge Kutta"

From ccitonlinewiki
Jump to: navigation, search
Line 33: Line 33:
 
Ini kita akan mencari waktu pengisian air sampai penuh pada ember.
 
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,
+
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)
  
metode analitik dan metode numerik (runge kutta orde 4)
 
 
Berikut ini adalah algoritma untuk penyelesaian kasus diatas.
 
Berikut ini adalah algoritma untuk penyelesaian kasus diatas.
 
  import numpy as np
 
  import numpy as np

Revision as of 22:45, 5 November 2019

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