Difference between revisions of "UTS 23/10/2019"

From ccitonlinewiki
Jump to: navigation, search
(Coding Soal B dengan Runge Kutta Orde 4)
 
(11 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
== Video Muhasabah ==
 
== Video Muhasabah ==
 +
 +
[[File:Muhasabah Umas.mp4]]
 +
 
== Coding Untuk Soal A ==
 
== Coding Untuk Soal A ==
 
'''Penyelesaian dengan cara Eliminasi Gauss'''
 
'''Penyelesaian dengan cara Eliminasi Gauss'''
Line 125: Line 128:
 
   else:
 
   else:
 
       print('SISTEM TIDAK STABIL, MOHON TINJAU KEMBALI SEMUA PARAMETER')
 
       print('SISTEM TIDAK STABIL, MOHON TINJAU KEMBALI SEMUA PARAMETER')
    print('SISTEM TIDAK STABIL, MOHON TINJAU KEMBALI SEMUA PARAMETER')
 
  
 
SISTEM STABIL
 
SISTEM STABIL
Line 159: Line 161:
 
massa mobil: 1000
 
massa mobil: 1000
  
   while dragfric0 < a:
+
   while dragfric0 <= a:
 
       vmax = v + (a - dragfric0)*t
 
       vmax = v + (a - dragfric0)*t
 
       s = s + ((vmax**2 - v**2) / (2 * a))
 
       s = s + ((vmax**2 - v**2) / (2 * a))
Line 179: Line 181:
 
Kecepatan tertinggi:  42.19999999999999  m/s
 
Kecepatan tertinggi:  42.19999999999999  m/s
  
'''Penyelesaian dengan cara Runge-Kutta'''
+
== Video Soal B ==
 +
Berikut ini merupakan video penjelasan penyelesaian soal B:
  
== Video Soal B ==
+
[[File:SOAL B RIZKI ALDILA UMAS 2.mp4]]
 +
 
 +
 
 +
== Coding Soal B dengan Runge Kutta Orde 4 ==
 +
 
 +
  m = eval(input("massa mobil (kg): "))
 +
  g = eval(input("gravitasi (m/s^2): "))
 +
  F = eval(input('Gaya yang dikeluarkan oleh mobil (N):'))
 +
  cd = eval(input("koefisien drag udara : "))
 +
  z = eval(input("koefisien gesek jalan : "))
 +
  dt = 0.1 #tinggi step atau waktu
 +
  #Mengubah komponen yang diketahui menjadi percepatan
 +
  a=F/m
 +
 
 +
massa mobil (kg):  1000
 +
 
 +
gravitasi (m/s^2):  9.81
 +
 
 +
Gaya yang dikeluarkan oleh mobil (N): 10000
 +
 
 +
koefisien drag udara :  0.2
 +
 
 +
koefisien gesek jalan :  0.3
 +
 
 +
  #Pendefinisian error awal, dan nilai awal kecepatan dan waktu
 +
  error = 100
 +
  v0 = 0
 +
  t0 = 0
 +
  #Membuat list kosong
 +
  lst = []
 +
  #Pendefinisian fungsi turunan
 +
  def dv(t0, v0):
 +
      return (a - g*z)-((cd/m)*(v0)**(3/2))
 +
 
 +
  while error > 0.000025: #error bisa diubah sesuai dengan kebutuhan dan tingkat signifikasi dari pembuat coding, hal ini dikarenakan grafik yang muncul semakin keatas akan
 +
  semakin mendekati kecepatan maksimal, namun untuk error = 0 maka akan membutuhkan waktu yang sangat lama
 +
      k1 = dv(t0, v0)
 +
      k2 = dv(t0 + 0.5 * dt, v0 + 0.5 * dt * k1)
 +
      k3 = dv(t0 + 0.5 * dt, v0 + 0.5 * dt * k2)
 +
      k4 = dv(t0 + dt, v0 + dt * k3)
 +
   
 +
      v1 = v0 + (1/ 6)*(k1 + 2 * k2 + 2 * k3 + k4) *dt
 +
  #Untuk membuat iterasi sehingga increament harus ditambahkan di t0 
 +
      t0 = t0 + dt
 +
      error = ((v1 - v0) / v1)*100 #error harus mendekati 0 untuk kecepatan maksimal
 +
      v0 = v1
 +
      lst.append(v1)
 +
 
 +
  waktu = len(lst)*0.1 #pengali dengan 0.1 karena panjang lst itu masih dalam satuan 0.1 sesuai dengan increment yang dilakukan
 +
 
 +
  print ("waktu untuk mencapai velocity maksimal adalah: ", waktu+1,'s')
 +
  print ("velocity maksimal adalah: ", v1, 'm/s')
 +
 
 +
waktu untuk mencapai velocity maksimal adalah:  876.5 s
 +
 
 +
velocity maksimal adalah:  1075.515164892553 m/s
 +
 
 +
<comments voting="plus" />

Latest revision as of 13:10, 6 November 2019

Video Muhasabah

Coding Untuk Soal A

Penyelesaian dengan cara Eliminasi Gauss

 import numpy as np #matrix definition, menggunakan numpy untuk membantu pendifinisian matrix (array)
 from math import *
 #Pendefinisian input
 P = eval(input('Nilai M1'))
 L = eval(input('Nilai M2'))
 M = eval(input('Nilai M3'))
 U = eval(input('Nilai M4'))
 Z = eval(input('Nilai Koefisien Gesek'))
 O = eval(input('Sudut yang dibentuk'))

Nilai M1 10

Nilai M2 20

Nilai M3 30

Nilai M4 33.957218121603816

Nilai Koefisien Gesek 0.2

Nilai Sudut 45

 #Konversi sudut yang masih dalam radian
 deg = (O * 22/(7*180))
 #Pembuatan Matrix
 #Asumsikan percepatan gravitasi 10 m/s^2
 A=np.array([[1, 0, 0],[-1,1,0],[0,-1,1]],float)
 b=np.array([(P * 10 * (sin(deg)-(Z*cos(deg)))),( L * 10 * (sin(deg)-(Z*cos(deg)))),(M * 10 * (sin(deg)-(Z*cos(deg))))])
 n=len(A)
 #eliminasi gauss
 for k in range (0,n-1): 
     for i in range (k+1, n):
         if A[i,k] !=0 : 
             lam= A[i,k]/A[k,k] 
             A[i,k:n]= A[i, k:n]-(A[k,k:n]*lam) 
             b[i]= b[i]-(b[k]*lam) 
           
 print('matrix A:', '\n', A) #print hasilnya untuk mengecek kebenaran

matrix A:

[[ 1. 0. 0.]

[ 0. 1. 0. ]

[ 0. 0. 1. ]]

 #back substitution
 x=np.zeros(n) #membuat matrix yang memiliki ukuran yang sama dan berisi 0 semua
 for m in range (n-1, -1, -1) : 
     x[m]= (b[m]-np.dot(A[m, m+1:n], x[m+1:n]))/A[m,m]
     print('nilai T', x[m]) #print hasil
   print('nilai T',m + 1, x[m], 'N') #print hasil

nilai T3 339.5721812160382 N

nilai T2 169.7860906080191 N

nilai T1 56.59536353600636 N

  #Membuat konfirmasi dengan menyamakan nilai T4 untuk mengecek apakah sistem benar-benar stabil
  W = U*10
  if W == x[2]: #Sistem stabil ketika besarnya W yaitu mewakili baris matrix ke 4
      print("SISTEM STABIL")
  else:
      print('SISTEM TIDAK STABIL, MOHON TINJAU KEMBALI SEMUA PARAMETER')

SISTEM STABIL

Penyelesaian dengan substitusi

  from math import *
  P = eval(input('Nilai M1'))
  L = eval(input('Nilai M2'))
  M = eval(input('Nilai M3'))
  U = eval(input('Nilai M4'))
  Z = eval(input('Nilai Koefisien Gesek'))
  O = eval(input('Nilai Sudut'))

Nilai M1 10

Nilai M2 20

Nilai M3 30

Nilai M4 33.957218121603816

Nilai Koefisien Gesek 0.2

Nilai Sudut 45

  #Konversi sudut yang masih dalam radian
  deg = (O * 22/(7*180))
  T3 = U * 10
  T3 = round(T3,3) #untuk membuat nilai T3 menjadi 3 angka dibelakang ,
  T2 =-( M * 10*(sin(deg)-(Z*cos(deg)))) 
  T2 = round(T2,3)
  T1 =-( L * 10*(sin(deg)-(Z*cos(deg)))) + T2
  T1 = round(T1,3)
  print('Nilai T3 adalah',T3, 'N')
  print('Nilai T2 adalah',T2, 'N')
  print('Nilai T1 adalah',T1, 'N')

Nilai T3 adalah 339.572 N

Nilai T2 adalah 169.786 N

Nilai T1 adalah 56.595 N

  #Membuat konfirmasi apakah sistem stabil atau tidak
  W = ( P * 10 * (sin(deg)-(Z*cos(deg))))
  W = round(W,3)
  if W == T1: #Sistem stabil ketika besarnya W yaitu mewakili baris matrix ke 4
      print("SISTEM STABIL")
  else:
      print('SISTEM TIDAK STABIL, MOHON TINJAU KEMBALI SEMUA PARAMETER')

SISTEM STABIL

Video Soal A

Berikut ini merupakan video penjelasan mengenai penyelesaian dari soal A, yang terdiri atas 2 video yang bersambung

Coding Untuk Soal B

Penyelesaian dengan cara iterasi

  F = float(input("Gaya yang dikeluarkan mobil (N):"))
  v = 0
  s = 0
  t = float(0)
  cd = float(input("drag coefficient: "))
  u = float(input("koefisien gesek ban dengan jalanan: "))
  g = 9.8
  m = float(input ("massa mobil:"))
  a = F/m
  dragfric0 = 0
  dragfric = ((cd * ((v + (a*t))**(3/2))/m) + (u * g))

Gaya yang dikeluarkan mobil (N): 10000

drag coefficient: 0.2

koefisien gesek ban dengan jalanan: 0.2

massa mobil: 1000

  while dragfric0 <= a:
      vmax = v + (a - dragfric0)*t
      s = s + ((vmax**2 - v**2) / (2 * a))
      v = vmax
      dragfric0 = dragfric0 + dragfric
      t = float(t) + 1
  print("Komponen pada saat kecepatan maksimum")
  print ("Waktu yang diperlukan: ",t," s")
  print ("Jarak yang ditempuh: ",x," m")
  print ("Kecepatan tertinggi: ",vmax," m/s")

Komponen pada saat kecepatan maksimum

Waktu yang diperlukan: 6.0 s

Jarak yang ditempuh: 89.04199999999994 m

Kecepatan tertinggi: 42.19999999999999 m/s

Video Soal B

Berikut ini merupakan video penjelasan penyelesaian soal B:


Coding Soal B dengan Runge Kutta Orde 4

 m = eval(input("massa mobil (kg): "))
 g = eval(input("gravitasi (m/s^2): "))
 F = eval(input('Gaya yang dikeluarkan oleh mobil (N):'))
 cd = eval(input("koefisien drag udara : "))
 z = eval(input("koefisien gesek jalan : "))
 dt = 0.1 #tinggi step atau waktu
 #Mengubah komponen yang diketahui menjadi percepatan
 a=F/m

massa mobil (kg): 1000

gravitasi (m/s^2): 9.81

Gaya yang dikeluarkan oleh mobil (N): 10000

koefisien drag udara : 0.2

koefisien gesek jalan : 0.3

 #Pendefinisian error awal, dan nilai awal kecepatan dan waktu
 error = 100
 v0 = 0
 t0 = 0
 #Membuat list kosong
 lst = []
 #Pendefinisian fungsi turunan
 def dv(t0, v0):
     return (a - g*z)-((cd/m)*(v0)**(3/2))
 
 while error > 0.000025: #error bisa diubah sesuai dengan kebutuhan dan tingkat signifikasi dari pembuat coding, hal ini dikarenakan grafik yang muncul semakin keatas akan 
 semakin mendekati kecepatan maksimal, namun untuk error = 0 maka akan membutuhkan waktu yang sangat lama
     k1 = dv(t0, v0) 
     k2 = dv(t0 + 0.5 * dt, v0 + 0.5 * dt * k1)
     k3 = dv(t0 + 0.5 * dt, v0 + 0.5 * dt * k2) 
     k4 = dv(t0 + dt, v0 + dt * k3) 
   
     v1 = v0 + (1/ 6)*(k1 + 2 * k2 + 2 * k3 + k4) *dt
 #Untuk membuat iterasi sehingga increament harus ditambahkan di t0  
     t0 = t0 + dt
     error = ((v1 - v0) / v1)*100 #error harus mendekati 0 untuk kecepatan maksimal
     v0 = v1
     lst.append(v1)
  
 waktu = len(lst)*0.1 #pengali dengan 0.1 karena panjang lst itu masih dalam satuan 0.1 sesuai dengan increment yang dilakukan
 print ("waktu untuk mencapai velocity maksimal adalah: ", waktu+1,'s')
 print ("velocity maksimal adalah: ", v1, 'm/s')

waktu untuk mencapai velocity maksimal adalah: 876.5 s

velocity maksimal adalah: 1075.515164892553 m/s


Muhamad.ilham

61 months ago
Score 0+
Untuk penyelesaian soal nomer 1 (Benda pada bidang miring) menggunakan metode eleminasi gauss menurut saya sudah baik karena step by step diberi remark atau keterangan intruksi agar lebih mudah dimengerti dan juga diselesaikan dengan dua cara berbeda
Add your comment
ccitonlinewiki welcomes all comments. If you do not want to be anonymous, register or log in. It is free.