Difference between revisions of "UTS 23/10/2019"
(→Coding Untuk Soal B) |
(→Coding Untuk Soal A) |
||
Line 59: | Line 59: | ||
print('nilai T', x[m]) #print hasil | print('nilai T', x[m]) #print hasil | ||
− | print('nilai T', x[m]) #print hasil | + | print('nilai T', x[m], 'N') #print hasil |
− | nilai T 339.5721812160382 | + | nilai T 339.5721812160382 N |
− | nilai T 169.7860906080191 | + | nilai T 169.7860906080191 N |
− | nilai T 56.59536353600636 | + | nilai T 56.59536353600636 N |
#Mencari m4 | #Mencari m4 | ||
M4 = x[2]/10 | M4 = x[2]/10 | ||
− | print(M4) | + | print(M4, 'kg') |
− | 33.957218121603816 | + | 33.957218121603816 kg |
'''Solusi 2''' | '''Solusi 2''' |
Revision as of 23:07, 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 #Asumsikan percepatan gravitasi 10 m/s^2 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], 'N') #print hasil
nilai T 339.5721812160382 N
nilai T 169.7860906080191 N
nilai T 56.59536353600636 N
#Mencari m4 M4 = x[2]/10 print(M4, 'kg')
33.957218121603816 kg
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