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

From ccitonlinewiki
Jump to: navigation, search
(Coding Untuk Soal B)
(Coding Untuk Soal A)
Line 10: Line 10:
 
   L = eval(input('Nilai M2'))
 
   L = eval(input('Nilai M2'))
 
   M = eval(input('Nilai M3'))
 
   M = eval(input('Nilai M3'))
  S = eval(input('Nilai M4'))
 
 
   Z = eval(input('Nilai Koefisien Gesek'))
 
   Z = eval(input('Nilai Koefisien Gesek'))
 
   O = eval(input('Sudut yang dibentuk'))
 
   O = eval(input('Sudut yang dibentuk'))
 +
 +
Nilai M1 10
 +
 +
Nilai M2 20
 +
 +
Nilai M3 30
 +
 +
Nilai Koefisien Gesek 0.2
 +
 +
Nilai Sudut 45
 +
  
 
   #Konversi sudut yang masih dalam radian
 
   #Konversi sudut yang masih dalam radian
Line 41: Line 51:
 
  [ 0.  0.  1.  0.]
 
  [ 0.  0.  1.  0.]
  
  [ 0.  0.  0. -1.]]
+
  [ 0.  0.  0. 0.]]
  
 
   #back substitution
 
   #back substitution
   x=np.zeros(n) #membuat matrix yang memiliki ukuran yang sama  
+
   x=np.zeros(n) #membuat matrix yang memiliki ukuran yang sama dan berisi 0 semua
  for m in range (n-1, -1, -1) : #n-1 karena phyton dimulai dari angka 0, -1 maksudnya berhenti saat m = 0, dan -1 yang terakhir maksudnya adalah penghitungan mundur
+
  for m in range (n-2, -1, -1) : #n-1 karena phyton dimulai dari angka 0, -1 maksudnya berhenti saat m = 0, dan -1 yang terakhir maksudnya adalah penghitungan mundur
       x[m]= (b[m]-np.dot(A[m, m+1:n], x[m+1:n]))/A[m,m] #persamaan dari back substitution, baca mengenai dasar dari back substitution
+
       x[m]= (b[m]-np.dot(A[m, m+1:n], x[m+1:n]))/A[m,m] #persamaan dari back substitution, baca mengenai dasar dari back substitutionS
 
       print('nilai T', x[m]) #print hasil
 
       print('nilai T', x[m]) #print hasil
  
Hasil Sementara
+
    print('nilai T', x[m]) #print hasil
 +
 
 +
nilai T 339.5721812160382
  
nilai T 2.0
+
nilai T 169.7860906080191
  
nilai T 52.20873887394008
+
nilai T 56.59536353600636
  
nilai T 44.75034760623435
 
  
nilai T 29.8335650708229
+
  #Mencari m4
 +
  M4 = x[2]/10
 +
  print(M4)
  
Koding tersebut masih menghasilkan nilai T yang salah karena tidak sama dengan penghitungan manual
+
33.957218121603816
  
 
'''Solusi 2'''
 
'''Solusi 2'''

Revision as of 22:56, 28 October 2019

Coding Untuk Soal A

Solusi 1

 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'))
 Z = eval(input('Nilai Koefisien Gesek'))
 O = eval(input('Sudut yang dibentuk'))

Nilai M1 10

Nilai M2 20

Nilai M3 30

Nilai Koefisien Gesek 0.2

Nilai Sudut 45


 #Konversi sudut yang masih dalam radian
 deg = (O * 22/(7*180))
 #Pembuatan Matrix
 A=np.array([[1, 0, 0, 0],[-1,1,0,0],[0,-1,1,0],[0,0,0,-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)))), (-Z* 10)])
 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

Hasil Print matrix A:

[[ 1.  0.  0.  0.]
[ 0.  1.  0.  0.]
[ 0.  0.  1.  0.]
[ 0.  0.  0. 0.]]
 #back substitution
 x=np.zeros(n) #membuat matrix yang memiliki ukuran yang sama dan berisi 0 semua
 for m in range (n-2, -1, -1) : #n-1 karena phyton dimulai dari angka 0, -1 maksudnya berhenti saat m = 0, dan -1 yang terakhir maksudnya adalah penghitungan mundur
     x[m]= (b[m]-np.dot(A[m, m+1:n], x[m+1:n]))/A[m,m] #persamaan dari back substitution, baca mengenai dasar dari back substitutionS
     print('nilai T', x[m]) #print hasil
   print('nilai T', x[m]) #print hasil

nilai T 339.5721812160382

nilai T 169.7860906080191

nilai T 56.59536353600636


 #Mencari m4
 M4 = x[2]/10 
 print(M4)

33.957218121603816

Solusi 2

Coding Untuk Soal B

Cara ini dengan menggunakan metode while yang tentu saja masih kurang akurat karena waktu yang ada masih melompat secara integer belum bisa dengan menggunakan angka yang pecahan

  from math import *
  a = float(input("percepatan mobil dalam m/s kuadrat: "))
  v = 0
  s = 0
  t = float(0)
  cd = float(input("drag coefficient: "))
  u = float(input("koefisien gesek ban dengan jalanan: "))
  g = 9.8
  dragfric0 = 0
  dragfric = (((cd * (v + (a*t))**(3/2))) + (u * g))

percepatan mobil dalam m/s kuadrat: 10

drag coefficient: 0.2

koefisien gesek ban dengan jalanan: 0.2


  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