Difference between revisions of "Tugas Runge Kutta"

From ccitonlinewiki
Jump to: navigation, search
 
(One intermediate revision by the same user not shown)
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
Line 60: Line 59:
 
  elif t > z:
 
  elif t > z:
 
     print('Error, Nilai tinggi yang ingin dicapai melebihi tinggi ember')  # Jika nilai yang kita input melebihi nilai dalam algoritma maka error
 
     print('Error, Nilai tinggi yang ingin dicapai melebihi tinggi ember')  # Jika nilai yang kita input melebihi nilai dalam algoritma maka error
 +
 +
[[File:CCCC.JPG|600px|thumb|left|Hasil running koding]]
  
 
<youtube>https://youtu.be/pLZ0jK5sgj8</youtube>
 
<youtube>https://youtu.be/pLZ0jK5sgj8</youtube>

Latest revision as of 22:55, 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
Hasil running koding