Difference between revisions of "Tugas Runge Kutta"
(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) |
− | |||
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.
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