Difference between revisions of "Tugas rungekutta MFS"

From ccitonlinewiki
Jump to: navigation, search
(Created page with "File:gambarsoalmetnummfs.jpg '''Koding'''")
 
Line 2: Line 2:
  
 
'''Koding'''
 
'''Koding'''
 +
 +
import numpy as np
 +
 +
v0 = eval(input('kecepatan awal benda: '))
 +
g = eval(input('percepatan gravitasi: '))
 +
u = eval(input('koefisien gesek bidang: '))
 +
teta = eval(input('sudut kemiringan bukit: ')) * (np.pi / 180)
 +
sint = np.sin(teta)
 +
cost = np.cos(teta)
 +
print(sint)
 +
a = g * (sint + u * cost)
 +
ay = a * sint
 +
s0 = 0
 +
t0 = 0
 +
dt = 1
 +
error = 100
 +
v = v0 ** 2
 +
tries = []
 +
 +
def dsdt(t0, s0):
 +
  return v - (2 * ay * s0) ** 0.5
 +
 +
while error > 0.005:
 +
  k1 = dsdt(t0, s0)
 +
  k2 = dsdt(t0 + 0.5 * dt, s0 + 0.5 * dt * k1)
 +
  k3 = dsdt(t0 + 0.5 * dt, s0 + 0.5 * dt * k2)
 +
  k4 = dsdt(t0 + dt, s0 + dt * k3)
 +
  s1 = s0 + (1.0 / 6.0) * (k1 + 2 * k2 + 2 * k3 + k4)
 +
  t0 = t0 + dt
 +
  error = ((s1 - s0) / s1) * 100
 +
  s0 = s1
 +
  tries.append(s1)
 +
 
 +
t1 = len(tries)
 +
 +
print(f'jarak maksimum yang dapat dicapai adalah {round(s1, 2)} m dengan waktu {t1 + 1} s')

Revision as of 14:59, 6 November 2019

Gambarsoalmetnummfs.jpg

Koding

import numpy as np

v0 = eval(input('kecepatan awal benda: ')) g = eval(input('percepatan gravitasi: ')) u = eval(input('koefisien gesek bidang: ')) teta = eval(input('sudut kemiringan bukit: ')) * (np.pi / 180) sint = np.sin(teta) cost = np.cos(teta) print(sint) a = g * (sint + u * cost) ay = a * sint s0 = 0 t0 = 0 dt = 1 error = 100 v = v0 ** 2 tries = []

def dsdt(t0, s0):

 return v - (2 * ay * s0) ** 0.5

while error > 0.005:

 k1 = dsdt(t0, s0) 
 k2 = dsdt(t0 + 0.5 * dt, s0 + 0.5 * dt * k1)
 k3 = dsdt(t0 + 0.5 * dt, s0 + 0.5 * dt * k2) 
 k4 = dsdt(t0 + dt, s0 + dt * k3) 
 s1 = s0 + (1.0 / 6.0) * (k1 + 2 * k2 + 2 * k3 + k4)
 t0 = t0 + dt
 error = ((s1 - s0) / s1) * 100 
 s0 = s1
 tries.append(s1)
 

t1 = len(tries)

print(f'jarak maksimum yang dapat dicapai adalah {round(s1, 2)} m dengan waktu {t1 + 1} s')