Difference between revisions of "Dwi Refarianto Nugroho"
(Created page with "Assalamualaikum Wr. WB. Pada saat perkuliahan pertemuan pertama Metode Numerik bersama Bapak Dr. Ir. Ahmad Indra Siswantara (yang memiliki sapaan Aki DAI) dan Bapak Dr. Gunaw...") |
(→TUGAS UAS METNUM) |
||
(26 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
+ | == PERTEMUAN PERTAMA == | ||
Assalamualaikum Wr. WB. | Assalamualaikum Wr. WB. | ||
Line 18: | Line 19: | ||
1706042024 | 1706042024 | ||
Teknik Perkapalan | Teknik Perkapalan | ||
+ | |||
+ | |||
+ | == TUGAS METNUM == | ||
+ | |||
+ | https://youtu.be/S906r2jHlss | ||
+ | |||
+ | |||
+ | == PERTEMUAN KEDUA == | ||
+ | |||
+ | Pada pertemuan kedua, diajarkan bahwa permasalahan yang berkaitan dengan keteknikan dapat diselesaikan dengan permodelan matematis. Selain itu juga dijelaskan penggunaan flowchart yaitu dari; mulai-input-proses-solusi. Permasalahan seperti persamaan aljabar dapat diselesaikan seperti | ||
+ | |||
+ | ax+by=c | ||
+ | px=qy=r | ||
+ | |||
+ | Disisi lain kita juga diajarkan untuk aktif dalam kelas. seperti saling memeberi pertanyaan dan jawaban supaya suasana pembelajaran terasa hidup. Disinggung juga mengenai dimensi, 1D, 2D, 3D dan diatasnya. 1D berupa garis, 2D berupa bidang datar, 3D berupa ruang. | ||
+ | |||
+ | |||
+ | == Tugas Metnum == | ||
+ | |||
+ | if b==q: | ||
+ | |||
+ | m=a-p | ||
+ | n=c-r | ||
+ | x=n/m | ||
+ | y=(c-(a*x))/b | ||
+ | print('nilai x=',x,'nilai y=',y) | ||
+ | |||
+ | elif a==0: | ||
+ | |||
+ | y=c/b | ||
+ | x=(r-q*(y))/p | ||
+ | print('nilai x=',x,'nilai y=',y) | ||
+ | elif p==0: | ||
+ | |||
+ | y=r/q | ||
+ | x=(c-b*(y))/a | ||
+ | print('nilaix=',x,'nilai y=',y) | ||
+ | elif b==0: | ||
+ | |||
+ | x=c/a | ||
+ | y=(r-p*(x))/q | ||
+ | print('nilaix=',x,'nilai y=',y) | ||
+ | elif q==0: | ||
+ | |||
+ | x=r/p | ||
+ | y=(c-a*(x))/b | ||
+ | print('nilaix=',x,'nilai y=',y) | ||
+ | elif b!=q: | ||
+ | |||
+ | i=(a*q) | ||
+ | j=(b*q) | ||
+ | k=(c*q) | ||
+ | ii=(p*b) | ||
+ | jj=(q*b) | ||
+ | kk=(r*b) | ||
+ | x=(k-kk)/(i-ii) | ||
+ | y=(c-(b*x))/a | ||
+ | print('nilai x=',x,'nilai y=',y) | ||
+ | input() | ||
+ | |||
+ | |||
+ | == PERTEMUAN KETIGA == | ||
+ | pada pertemuan ketiga diajarkan penggunaan python untuk menyelesaikan sistem persamaan matriks pada aljabar linier. Harus ada baris yang menjadi acuan dalam matriks tersebut. | ||
+ | Dalam menggunakan python, pertama kita harus memahami bahasanya. Selain itu prinsip dari python adalah looping atau memiliki pola tertentu dalam komputasinya. | ||
+ | |||
+ | == PERTEMUAN KEEMPAT == | ||
+ | pada pertemua keempat, kita mempelajari python untuk menyelesaikan persamaan gauss-jordan yang berbentuk matriks. kita belajar berbagai perintah di python seperti np. array, np zeros, float, dan lain-lain. | ||
+ | |||
+ | == python == | ||
+ | import numpy as np | ||
+ | |||
+ | #1 define the matrix A | ||
+ | A=np.array([[4,-2,1],[-2,4,-2],[1,-2,4]], float) | ||
+ | |||
+ | print (A, '\n') | ||
+ | |||
+ | B=np.array([11,-16,17],float) | ||
+ | print ('matrix B adalah','\n',B) | ||
+ | |||
+ | #--mendefinisikan ukuran matrix | ||
+ | |||
+ | |||
+ | |||
+ | == TUGAS METNUM == | ||
+ | |||
+ | [LINK NYA DIBAWAH] | ||
+ | |||
+ | [https://youtu.be/S906r2jHlss] | ||
+ | |||
+ | |||
+ | |||
+ | == TUGAS METNUM FINITE ELEMENT METHOD == | ||
+ | |||
+ | import numpy as np | ||
+ | from numpy import array | ||
+ | |||
+ | print("Dibuat oleh Dwi Refarianto Nugroho_1706042024") | ||
+ | print("") | ||
+ | |||
+ | #1. Menentukan jumlah pegas | ||
+ | N= eval(input('berapa jumlah pegas yang ada pada sistem ini?')) | ||
+ | |||
+ | #nilai dari node | ||
+ | ni=N+1 | ||
+ | #nilai K | ||
+ | K= np.zeros((ni,ni),float) | ||
+ | #nilai K sama dengan jumlah node nya | ||
+ | |||
+ | #2. Mendefinisikan konstanta pegas | ||
+ | n_k=np.zeros(N) | ||
+ | |||
+ | for i in range (0,N): | ||
+ | print('berapakah nilai konstanta pegas yang ke- pada',i+1,' ?') | ||
+ | n_k[i]= eval(input()) | ||
+ | |||
+ | #3.Membuat matriks global kekauannya | ||
+ | K[0,0]=n_k[0] | ||
+ | K[N,N]=n_k[N-1] | ||
+ | |||
+ | #4.Membuat Pola Matriks | ||
+ | |||
+ | #Pola 1 | ||
+ | j_1=0 | ||
+ | for i_1 in range (0,N): | ||
+ | j_1+=1 | ||
+ | K[i_1,j_1]=-(n_k[i_1]) | ||
+ | #Pola 2 | ||
+ | i_2=0 | ||
+ | for j_2 in range (0,N): | ||
+ | i_2+=1 | ||
+ | K[i_2,j_2]=-(n_k[j_2]) | ||
+ | #Pola 3 | ||
+ | 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 sistem pegas adalah:','\n',K) | ||
+ | |||
+ | #5. Menentukan gaya yang berkerja | ||
+ | Fn= eval(input('berapakah gaya yang berkerja?')) | ||
+ | |||
+ | A=K[1:ni,1:ni] | ||
+ | |||
+ | |||
+ | n=len(A) #number of rows and colomn, due too the matrix that is square matrix | ||
+ | |||
+ | B=np.zeros(n, float) | ||
+ | B[n-1]=Fn | ||
+ | |||
+ | |||
+ | #elminasi gauss | ||
+ | for k in range (0,n-1): | ||
+ | for i in range (k+1,n): | ||
+ | if A[i,k] != 0.0 : #perintah jika sebuah baris yang akan di eliminasi, ada bagiannya yang tidak 0 maka akan di substract dengan pivot | ||
+ | lam = A[i,k]/A[k,k] | ||
+ | A[i, k+1:n] = A[i, k+1:n] - lam*A[k, k+1:n] | ||
+ | B[i]=B[i] - lam*B[k] | ||
+ | print('matrix A:','\n',A) | ||
+ | #back subt | ||
+ | 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]) | ||
+ | |||
+ | # Determine the reaction force | ||
+ | F=-n_k[0]*U[0] | ||
+ | print ('maka nilai gaya reaksinya adalah',F) | ||
+ | |||
+ | |||
+ | == TUGAS UAS METNUM == | ||
+ | |||
+ | https://youtu.be/1y2dC9uV8nY | ||
+ | |||
+ | [https://drive.google.com/file/d/1jLZW1S9lB8sn1y3MilvFS5uXveTxfEFH/view?usp=sharing PPT UAS Metnum] | ||
+ | |||
+ | [https://drive.google.com/file/d/1l4TDW69jwe1bC4oq5DZg_8tNRGYkg2OQ/view?usp=sharing Python UAS Metnum] | ||
+ | |||
+ | == Coding UAS Metnum == | ||
+ | |||
+ | 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 di 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("Aplkasi Otimasi 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") |
Latest revision as of 13:06, 29 May 2019
Contents
PERTEMUAN PERTAMA
Assalamualaikum Wr. WB.
Pada saat perkuliahan pertemuan pertama Metode Numerik bersama Bapak Dr. Ir. Ahmad Indra Siswantara (yang memiliki sapaan Aki DAI) dan Bapak Dr. Gunawan S.T., M.T dijelaskan pertama adalah tujuan perkuliahan Metode Numerik yaitu
1. Memahami konsep/prinsip Metode Numerik dan mampu menerapkannya 2. Menjadi orang yang lebih mengenal siapa dirinya sendiri Selain itu di Metode Numerik kita mempelajari tentang 1. Algoritma, Flowchart, Pemrogaman, Metode Iterative 2. Penyelesaian Persamaan-persamaan , Aljabar Simultan 3. Differensial dan Intergral 4. Optimasi 5. Studi Kasus Aki DAI yang memiliki golongan darah M (Mechanical) menjelaskan juga apa saja yang dipelajari pada Metode Numerik. Pertama kita harus memahami bagaimana perhitungan yang akan dibantu dengan computer, tetapi pertama kita harus membuat perhitungan-perhitungan yang akan di input ke dalam computer dengan hasil yang sederhana.
Selain itu, juga dibahas contoh soal seperti A=x2-1/x-1 dengan x=1. Pada penyelesaiannya memang harus memakai limit dan tidak boleh langsung di input. Ada satu prasyarat untuk mempelajari Metode Numerik yaitu BERAKAL. Dijelaskan bahwa akal merupakan tali yang mengikat pikiran manusia supaya pemikirannya tetap berjalan pada koridor yang seharusnya. Selainitu disinggung juga tentang Muhasabah.
Dwi Refarianto Nugroho 1706042024 Teknik Perkapalan
TUGAS METNUM
PERTEMUAN KEDUA
Pada pertemuan kedua, diajarkan bahwa permasalahan yang berkaitan dengan keteknikan dapat diselesaikan dengan permodelan matematis. Selain itu juga dijelaskan penggunaan flowchart yaitu dari; mulai-input-proses-solusi. Permasalahan seperti persamaan aljabar dapat diselesaikan seperti
ax+by=c px=qy=r
Disisi lain kita juga diajarkan untuk aktif dalam kelas. seperti saling memeberi pertanyaan dan jawaban supaya suasana pembelajaran terasa hidup. Disinggung juga mengenai dimensi, 1D, 2D, 3D dan diatasnya. 1D berupa garis, 2D berupa bidang datar, 3D berupa ruang.
Tugas Metnum
if b==q:
m=a-p n=c-r x=n/m y=(c-(a*x))/b print('nilai x=',x,'nilai y=',y)
elif a==0:
y=c/b x=(r-q*(y))/p print('nilai x=',x,'nilai y=',y)
elif p==0:
y=r/q x=(c-b*(y))/a print('nilaix=',x,'nilai y=',y)
elif b==0:
x=c/a y=(r-p*(x))/q print('nilaix=',x,'nilai y=',y)
elif q==0:
x=r/p y=(c-a*(x))/b print('nilaix=',x,'nilai y=',y)
elif b!=q:
i=(a*q) j=(b*q) k=(c*q) ii=(p*b) jj=(q*b) kk=(r*b) x=(k-kk)/(i-ii) y=(c-(b*x))/a print('nilai x=',x,'nilai y=',y)
input()
PERTEMUAN KETIGA
pada pertemuan ketiga diajarkan penggunaan python untuk menyelesaikan sistem persamaan matriks pada aljabar linier. Harus ada baris yang menjadi acuan dalam matriks tersebut. Dalam menggunakan python, pertama kita harus memahami bahasanya. Selain itu prinsip dari python adalah looping atau memiliki pola tertentu dalam komputasinya.
PERTEMUAN KEEMPAT
pada pertemua keempat, kita mempelajari python untuk menyelesaikan persamaan gauss-jordan yang berbentuk matriks. kita belajar berbagai perintah di python seperti np. array, np zeros, float, dan lain-lain.
python
import numpy as np
- 1 define the matrix A
A=np.array([[4,-2,1],[-2,4,-2],[1,-2,4]], float)
print (A, '\n')
B=np.array([11,-16,17],float) print ('matrix B adalah','\n',B)
- --mendefinisikan ukuran matrix
TUGAS METNUM
[LINK NYA DIBAWAH]
TUGAS METNUM FINITE ELEMENT METHOD
import numpy as np from numpy import array
print("Dibuat oleh Dwi Refarianto Nugroho_1706042024") print("")
- 1. Menentukan jumlah pegas
N= eval(input('berapa jumlah pegas yang ada pada sistem ini?'))
- nilai dari node
ni=N+1
- nilai K
K= np.zeros((ni,ni),float)
- nilai K sama dengan jumlah node nya
- 2. Mendefinisikan konstanta pegas
n_k=np.zeros(N)
for i in range (0,N):
print('berapakah nilai konstanta pegas yang ke- pada',i+1,' ?') n_k[i]= eval(input())
- 3.Membuat matriks global kekauannya
K[0,0]=n_k[0] K[N,N]=n_k[N-1]
- 4.Membuat Pola Matriks
- Pola 1
j_1=0 for i_1 in range (0,N):
j_1+=1 K[i_1,j_1]=-(n_k[i_1])
- Pola 2
i_2=0 for j_2 in range (0,N):
i_2+=1 K[i_2,j_2]=-(n_k[j_2])
- Pola 3
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 sistem pegas adalah:','\n',K)
- 5. Menentukan gaya yang berkerja
Fn= eval(input('berapakah gaya yang berkerja?'))
A=K[1:ni,1:ni]
n=len(A) #number of rows and colomn, due too the matrix that is square matrix
B=np.zeros(n, float) B[n-1]=Fn
- elminasi gauss
for k in range (0,n-1):
for i in range (k+1,n): if A[i,k] != 0.0 : #perintah jika sebuah baris yang akan di eliminasi, ada bagiannya yang tidak 0 maka akan di substract dengan pivot lam = A[i,k]/A[k,k] A[i, k+1:n] = A[i, k+1:n] - lam*A[k, k+1:n] B[i]=B[i] - lam*B[k]
print('matrix A:','\n',A)
- back subt
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])
- Determine the reaction force
F=-n_k[0]*U[0] print ('maka nilai gaya reaksinya adalah',F)
TUGAS UAS METNUM
Coding UAS Metnum
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 di 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("Aplkasi Otimasi 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")