UTS 23/10/2019
Coding Untuk Soal 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')) S = eval(input('Nilai M4')) Z = eval(input('Nilai Koefisien Gesek'))
#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(45)-(Z*cos(45)))),( L * 10 * (sin(45)-(Z*cos(45)))),(M * 10 * (sin(45)-(Z*cos(45)))), (-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. -1.]]
#back substitution x=np.zeros(n) #membuat matrix yang memiliki ukuran yang sama 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 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 print('nilai T', x[m]) #print hasil
Hasil Sementara
nilai T 2.0
nilai T 52.20873887394008
nilai T 44.75034760623435
nilai T 29.8335650708229
Koding tersebut masih menghasilkan nilai T yang salah karena tidak sama dengan penghitungan manual