Difference between revisions of "Nomor 2"

From ccitonlinewiki
Jump to: navigation, search
 
Line 29: Line 29:
 
# Driver method  
 
# Driver method  
 
t0 = 0
 
t0 = 0
v = 1
+
v = 8
 
t = 15
 
t = 15
h = 0.2
+
h = 0.25
 
print ('Nilai Y pada saat X adalah:', rungeKutta(t0, v, t, h))  
 
print ('Nilai Y pada saat X adalah:', rungeKutta(t0, v, t, h))  
  
 +
dengan ini didapatkan hasil sebesar
  
dengan itu didapatkan hasil seperti
+
Nilai Y pada saat X adalah: 127.8801198801198
 
 
Nilai Y pada saat X adalah: 120.88011988011978
 

Latest revision as of 23:48, 27 October 2019

import numpy as np

  1. Python program to implement Runge Kutta method
  2. with acceleration of car is 8 m/s**2
  3. air friction and road friction is -0.0015*V m/s and -2.5m/s**2
  4. so equation became v = 8*t - 2.5*t - 0.0015*v
  5. A sample differential equation "dv / dt = 8/1.001"

def dvdt(t,v):

   return (8/1.001)
  1. Finds value of y for a given x using step size h
  2. and initial value y0 at x0.

def rungeKutta(t0, v0, t, h):

   #count number of step size
   #step h
   n = (int)((t - t0)/h)
   v = v0
   for i in range (1, n + 1):
       "apply rungakutta"
       k1 = h * dvdt(t0, v)
       k2 = h * dvdt(t0 + 0.5 * h, v + 0.5 * k1)
       k3 = h * dvdt(t0 + 0.5 * h, v + 0.5 * k2)
       k4 = h * dvdt(t0 + h, v + k3)
       #next value of v
       v = v + (1.0 / 6.0)*(k1 + 2 * k2 + 2 * k3 + k4)
       # Update next value of t
       t0 = t0 + h
   return v
  1. Driver method

t0 = 0 v = 8 t = 15 h = 0.25 print ('Nilai Y pada saat X adalah:', rungeKutta(t0, v, t, h))

dengan ini didapatkan hasil sebesar

Nilai Y pada saat X adalah: 127.8801198801198