Difference between revisions of "Edo Wanda"
Line 152: | Line 152: | ||
print("Maka nilai F1 adalah : ", f1) | print("Maka nilai F1 adalah : ", f1) | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | == Ujian Akhir Semester Metode Numerik 2019 == | ||
+ | |||
+ | Dibawah ini merupakan contoh coding untuk penerapan golden search ratio pada stiffner (penergar) berbentuk "L": | ||
+ | import math | ||
+ | def bracket(f,x1,h): | ||
+ | c = 1.618033989 | ||
+ | f1 = f(x1) | ||
+ | x2 = x1 + h | ||
+ | f2 = f(x2) | ||
+ | if f2 > f1: | ||
+ | h = -h | ||
+ | x2 = x1 + h | ||
+ | f2 = f(x2) | ||
+ | if f2 > f1: | ||
+ | return x2,x1 - h | ||
+ | for i in range (100): | ||
+ | h = c*h | ||
+ | x3 = x2 + h | ||
+ | f3 = f(x3) | ||
+ | if f3 > f2: | ||
+ | return x1,x3 | ||
+ | x1 = x2 | ||
+ | x2 = x3 | ||
+ | f1 = f2 | ||
+ | f2 = f3 | ||
+ | print ("Bracket did not find a minimum") | ||
+ | def search(f,a,b,tol=1.0e-9): | ||
+ | nIter = int(math.ceil(-2.078087*math.log(tol/abs(b-a)))) | ||
+ | R = 0.618033989 | ||
+ | C = 1.0 - R | ||
+ | x1 = R*a + C*b | ||
+ | x2 = C*a + R*b | ||
+ | f1 = f(x1) | ||
+ | f2 = f(x2) | ||
+ | for i in range(nIter): | ||
+ | if f1 > f2: | ||
+ | a = x1 | ||
+ | x1 = x2 | ||
+ | f1 = f2 | ||
+ | x2 = C*a + R*b | ||
+ | f2 = f(x2) | ||
+ | else: | ||
+ | b = x2 | ||
+ | x2 = x1 | ||
+ | f2 = f1 | ||
+ | x1 = R*a + C*b | ||
+ | f1 = f(x1) | ||
+ | if f1 < f2: | ||
+ | return x1,f1 | ||
+ | else: | ||
+ | return x2,f2 | ||
+ | print("Aplikasi Optimasi Section Modulus L Stiffner") | ||
+ | print("Kondisi Terikat : lebar alas > lebar atas > lebar tengah") | ||
+ | b1 = eval(input("Nilai lebar bangun alas :")) | ||
+ | b3 = eval(input("Nilai lebar bangun atas :")) | ||
+ | b2 = eval(input("Nilai lebar bangun tengah :")) | ||
+ | H = eval(input("Nilai tinggi T stiffner :")) | ||
+ | def f(x): | ||
+ | A1 = b1*(H-x)/2 | ||
+ | A2 = b2*x | ||
+ | A3 = b3*(H-x)/2 | ||
+ | d1 = 1/2*(H-x)/2 | ||
+ | d2 = 1/2*x+(H-x)/2 | ||
+ | d3 = 3/4*(H-x)+x | ||
+ | I1 = 1/12*b1*((H-x)/2)**3 | ||
+ | I2 = 1/12*b2*x**3 | ||
+ | I3 = 1/12*b3*((H-x)/2)**3 | ||
+ | dc = H-(d1*A1+d2*A2+d3*A3)/(A1+A2+A3) | ||
+ | I = I1-A1*(d1-dc)**2+I2-A2*(d2-dc)**2+I3-A3*(d3-dc)**2 | ||
+ | Z = I/dc | ||
+ | return Z | ||
+ | xStart = 0.0 | ||
+ | h = 1.0 | ||
+ | x1,x2 = bracket(f,xStart,h) | ||
+ | y,fMin = search(f,x1,x2) | ||
+ | print("optimal sectional area =",-fMin) | ||
+ | print("sectional area awal" , f(H)) | ||
+ | A = -fMin/f(H)*100 | ||
+ | print ("efisiensi",A,"%") | ||
+ | input ("\nPress return to exit") |
Revision as of 00:09, 30 May 2019
Assalamualaikum
Shalom Aleichem b’Shem Ha Mashiach
Om Swastyastu
Sotthi hotu
Wei De Dong Tian
Perkenalkan, saya Edo Wanda, mahasiswa jurusan Teknik Perkapalan, Fakultas Teknik, Universitas Indonesia, angkatan tahun 2017.
Terkait mata kuliah Metode Numerik yang saya ambil, pada pertemuan pertama, Rabu, 6 Februari 2019 kemarin, saya ditugaskan untuk membuat sebuah resume terkait bahasan di kelas saat Bapak Dr. Ir. Ahmad Indra Siswantara (panggilan sapaan beliau adalah Aki DAI) memberikan pemahaman awal tentang setiap hal yang saya perlukan sebelum mulai mempelajari dengan sebenarnya tentang mata kuliah Metode Numerik ini.
Sebelum memulai semua penjelasannya, Aki DAI terlebih dahulu memperkenalkan dirinya, serta partnernya dalam mengajar perkuliahan Metode Numerik, yang terdiri dari Bapak Dr. Gunawan S.T., M.T., serta beberapa orang asisten dosen.
Aki DAI memberikan tujuan perkuliahan Metode Numerik, yaitu:
1. Memahami konsep/prinsip Metode Numerik dan mampu menerapkannya
2. Menjadi orang yang lebih mengenal siapa dirinya sendiri
Kedua tujuan diatas tidak akan tercapai jika yang mengikuti pembelajaran tidak memiliki prasayarat "BERAKAL" yang menurut Aki DAI adalah hal terpenting ketika seseorang hendak mempelajari sesuatu. Aki DAI memberikan contoh negara adidaya yang terus menerus menyebabkan konflik di Timur Tengah serta peperangan di berbagai belahan dunia sebagai representasi nyata ketika manusia hanya mengejar ilmu tanpa BERAKAL. Berakal dibutuhkan sebagai tali atau pembatas manusia untuk mengembangkan ilmu pengetahuan yang dimiliki. Berakal membuat manusia tetap di jalan yang benar walau dengan semua pengetahuan yang dimiliki.
Kemudian, Aki DAI memberikan pemaparan terkait materi-materi yang akan dibahas dalam mata kuliah metode numerik ini, sebagai berikut:
1. Algoritma, Flow Chart, Pemrograman (EES;C#), dan Metode Iterative
2. Penyelesaian Persamaan-persamaan Aljabar Simultan
3. Differensial dan Integral
4. Optimasi
5. Studi Kasus
Aki DAI memberikan referensi untuk Mata Kuliah ini yaitu dari Advanced Engineering Mathematics, Edwin Kryzig.
Tugas minggu ke-4
Break Even Point
Soal : Anda akan membuat bangunan untuk usaha penyewaan kamar (usaha kost) perkirakan titik impas (break even point ) usaha tsb, dengan Aplikasi persamaan Aljabar
Jawab: Tersedia di link berikut ini [[1]]
Tugas Minggu ke-6
import numpy as np
- 1. menentukan jumlah pegas
N = eval(input("berapa nilai konstanta pegas ke? ")) y = N+1 K = np.zeros((y,y),float)
- 2. mendefinisikan array berisi konstanta pegas
n_k = np.zeros(N) for i in range (0,N):
print("berapa nilai konstanta pegas yang ke ", i+1 , "?") n_k[i] = eval(input())
- 3. membuat matriks global kekuatan
- pola1
K[0,0] = n_k[0] K[N,N] = n_k[N-1]
- pola2
j_1 = 0 for i_1 in range (0,N):
j_1+= 1 K[i_1,j_1]=-(n_k[i_1])
- pola3
i_2 = 0 for j_2 in range (0,N):
i_2+= 1 K[i_2,j_2]=-(n_k[j_2])
- pola4
j_3 = 0 for i_3 in range(1,N):
j_3+= 1 K[i_3,j_3]=n_k[i_3]+n_k[i_3-1]
print("Matriks kekakuan global sisem pegas adalah : ")
print("")
print (K)
- 4. menentukan gaya yang bekerja
gaya = eval(input("berapa gaya yang bekerja ? "))
A = K[1:y , 1:y]
n = len(A)
B = np.zeros(n,float)
B[n-1] = gaya
- eliminasi gauss
for k in range (0,n-1):
for i in range (k+1,n): if A[i,k] != 0.0 : lam = A[i,k]/A[k,k] A[i, k:n] = A[i, k:n] - lam*A[k, k:n] B[i]=B[i] - lam*B[k]
print("Matriks A : ")
print("")
print(A)
- back substitution
U = np.zeros(n,float)
for m in range (n-1,-1,-1):
U[m]=(B[m]-np.dot(A[m,m+1:n], U[m+1:n]))/A[m,m] print("Nilai U", m+2," =",U[m])
- reaction force
f1 = n_k[0] * U[0]
print("Maka nilai F1 adalah : ", f1)
Ujian Akhir Semester Metode Numerik 2019
Dibawah ini merupakan contoh coding untuk penerapan golden search ratio pada stiffner (penergar) berbentuk "L": import math def bracket(f,x1,h):
c = 1.618033989 f1 = f(x1) x2 = x1 + h f2 = f(x2) if f2 > f1: h = -h x2 = x1 + h f2 = f(x2) if f2 > f1: return x2,x1 - h for i in range (100): h = c*h x3 = x2 + h f3 = f(x3) if f3 > f2: return x1,x3 x1 = x2 x2 = x3 f1 = f2 f2 = f3 print ("Bracket did not find a minimum")
def search(f,a,b,tol=1.0e-9):
nIter = int(math.ceil(-2.078087*math.log(tol/abs(b-a)))) R = 0.618033989 C = 1.0 - R x1 = R*a + C*b x2 = C*a + R*b f1 = f(x1) f2 = f(x2) for i in range(nIter): if f1 > f2: a = x1 x1 = x2 f1 = f2 x2 = C*a + R*b f2 = f(x2) else: b = x2 x2 = x1 f2 = f1 x1 = R*a + C*b f1 = f(x1) if f1 < f2: return x1,f1 else: return x2,f2
print("Aplikasi Optimasi Section Modulus L Stiffner") print("Kondisi Terikat : lebar alas > lebar atas > lebar tengah") b1 = eval(input("Nilai lebar bangun alas :")) b3 = eval(input("Nilai lebar bangun atas :")) b2 = eval(input("Nilai lebar bangun tengah :")) H = eval(input("Nilai tinggi T stiffner :")) def f(x):
A1 = b1*(H-x)/2 A2 = b2*x A3 = b3*(H-x)/2 d1 = 1/2*(H-x)/2 d2 = 1/2*x+(H-x)/2 d3 = 3/4*(H-x)+x I1 = 1/12*b1*((H-x)/2)**3 I2 = 1/12*b2*x**3 I3 = 1/12*b3*((H-x)/2)**3 dc = H-(d1*A1+d2*A2+d3*A3)/(A1+A2+A3) I = I1-A1*(d1-dc)**2+I2-A2*(d2-dc)**2+I3-A3*(d3-dc)**2 Z = I/dc return Z
xStart = 0.0 h = 1.0 x1,x2 = bracket(f,xStart,h) y,fMin = search(f,x1,x2) print("optimal sectional area =",-fMin) print("sectional area awal" , f(H)) A = -fMin/f(H)*100 print ("efisiensi",A,"%") input ("\nPress return to exit")