Difference between revisions of "Raihan Nurrasyid Aryunata"
(→Kuliah 2 : Dasar Phyton) |
(→Tugas) |
||
(15 intermediate revisions by the same user not shown) | |||
Line 31: | Line 31: | ||
materi minggu ini merupakan aplikasi dari materi yang kita dapat di minggu lalu yaitu mengenai penerapan eliminasi gauss. Pertama, kita harus mengetahui matrik yang akan digunakan dalam operasi ini. Matrik tersebut ditunjukkan pada gambar dibawah. | materi minggu ini merupakan aplikasi dari materi yang kita dapat di minggu lalu yaitu mengenai penerapan eliminasi gauss. Pertama, kita harus mengetahui matrik yang akan digunakan dalam operasi ini. Matrik tersebut ditunjukkan pada gambar dibawah. | ||
− | [[File:R4PEGAS. | + | [[File:R4PEGAS.PNG|500px|thumb|center|Contoh matriks yang digunakan dalam penyelesaian kasus pegas]] |
+ | |||
+ | Setelah itu, kita harus membuat matriks superposisi. Matrik super posisi adalah matrik perluasan dari matriks koefisien pegas yang ada. | ||
+ | |||
+ | [[File:R4matrikspegas.PNG|500px|thumb|center|Contoh matriks yang digunakan dalam penyelesaian kasus pegas]] | ||
+ | |||
+ | Tugas, membaca phyton untuk differensial | ||
+ | |||
+ | |||
+ | === Kuliah 5 : Aspek Metode Numerik === | ||
+ | |||
+ | materi minggu ini, 9 Oktober 2019 adalah mengenai prakitk penggunaan matematika pada ranah teknik. Mulai dari yang sederhana yaitu aljabar | ||
+ | |||
+ | === Kuliah 6 : Quis materi runge kutta dan eliminasi gauss === | ||
+ | hari ini, 17 OKtober 2019, diadakan kuis dengan materi yang terakhir dipelajari yaitu runge kuta dan eliminiasi gauss. Materi ini terbilang cukup sukar karena sebagian besar dari kita adalah pendatang baru di ranah koding. | ||
+ | |||
+ | dari quis nomer 1 mengugnakan eliminasi gauss : | ||
+ | |||
+ | [[File:21.regaus.png|center|thumb|500px| soal pertama]] | ||
+ | |||
+ | |||
+ | soal pertama adalah mengenai eliminasi gaus. | ||
+ | alurnya adalah : | ||
+ | 1. menentukan matriks dengan tuple sesuai jumlah dari baris dan kolom | ||
+ | |||
+ | 2. mendefinisikan bahwa tuple adalah matrik dengan ny. array | ||
+ | |||
+ | 3. membuat hal yang sama yaitu membuat tuple untuk matrik kedua | ||
+ | |||
+ | 4. lakukan operasi dengan perintah linalg.solve | ||
+ | |||
+ | |||
+ | kemudian untuk yang kedua, mengenai soal runge kutta yang memanfatkan turunan atau diferensial. | ||
+ | |||
+ | [[File:71rerung.png|center|thumb|500px| soal kedua]] | ||
== Belajar Series == | == Belajar Series == | ||
Line 51: | Line 85: | ||
[[ Tugas 2 : Deret Fibonacci & Flowchart ]] | [[ Tugas 2 : Deret Fibonacci & Flowchart ]] | ||
+ | |||
+ | === UTS - Soal dan Coding === | ||
+ | soal nomor 1 : | ||
+ | from numpy import linalg | ||
+ | import numpy as np | ||
+ | |||
+ | m1= input('nilai M1:') | ||
+ | m2= input('nilai M2:') | ||
+ | m3= input('nilai M3:') | ||
+ | m4= input('nilai M4:') | ||
+ | |||
+ | print(m1) | ||
+ | print(m2) | ||
+ | print(m3) | ||
+ | print(m4) | ||
+ | |||
+ | |||
+ | bar1 = [1 , 0 , 0] | ||
+ | bar2 = [-1, 1 ,0 ] | ||
+ | bar3 = [ 0, -1 ,1] | ||
+ | |||
+ | f1=m1*10 | ||
+ | f2=m2*10 | ||
+ | f3=m3*10 | ||
+ | f4=m4*10 | ||
+ | |||
+ | nmat = np.array ([bar1,bar2,bar3]) | ||
+ | cons = np.array ([f1 , f2 , f3]) | ||
+ | print ("Matrix Y adalah sebagai berikut:") | ||
+ | print (cons) | ||
+ | jawab = linalg.solve (nmat,cons) | ||
+ | x1val = int(jawab[0]) | ||
+ | x2val = int(jawab[1]) | ||
+ | x3val = int(jawab[2]) | ||
+ | |||
+ | print ("Nilai Tegangan Tali 1,2, dan 3 adalah :") | ||
+ | print ("T1= ",x1val) | ||
+ | print ("T2= ",x2val) | ||
+ | print ("T3= ",x3val) | ||
+ | |||
+ | print(jawab) | ||
+ | |||
+ | |||
+ | |||
+ | soal nomor 2 : | ||
+ | |||
+ | def dydx(x, y): | ||
+ | return | ||
+ | def rungeKutta(x0, y0, x, h): | ||
+ | n = (int((x - x0)/h)) | ||
+ | y = y0 | ||
+ | for i in range(1, n + 1): | ||
+ | k1 = h * dydx(x0, y) | ||
+ | k2 = h * dydx(x0 + 0.5 * h, y + 0.5 * k1) | ||
+ | k3 = h * dydx(x0 + 0.5 * h, y + 0.5 * k2) | ||
+ | k4 = h * dydx(x0 + h, y + k3) | ||
+ | y = y + (1.0 / 6.0)*(k1 + 2 * k2 + 2 * k3 + k4) | ||
+ | x0 = x0 + h | ||
+ | return y | ||
+ | x0 = 0 | ||
+ | y = 1 | ||
+ | x = 0.03 | ||
+ | h = 0.01 | ||
+ | print ('The value of y at x is:', rungeKutta(x0, y, x, h)) | ||
+ | |||
+ | |||
+ | '''VIdeo Muhasabah''' | ||
+ | [https://youtu.be/sEiPpe8N4i0 Video Muhasabah] | ||
+ | |||
+ | |||
+ | '''Video soal no 1''' | ||
+ | [https://youtu.be/1L6pNzwq_rE Soal Nomor 1] | ||
+ | |||
+ | |||
+ | '''Video soal no 2''' | ||
+ | [https://youtu.be/FtmSMHMga2I Soal Nomor 2] | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | === Airfoil === | ||
+ | |||
+ | |||
+ | Airfoil adalah bentuk dari suatu sayap pesawat yang dapat menghasilkan gaya angkat (lift) atau efek aerodinamika ketika melewati suatu aliran udara. Airfoil merupakan bentuk dari potongan melintang sayap yang dihasilkan oleh perpotongan tegak lurus sayap terhadap pesawat, dengan kata lain airfoil merupakan bentuk sayap secara dua dimensi seperti pada gambar. | ||
+ | |||
+ | |||
+ | [[File:reairfoilanalisis.jpg | thumb | center | 500px | Analisis gaya pada airfoil ]] | ||
+ | |||
+ | |||
+ | Airfoil sendiri memiliki beberapa jenis. | ||
+ | |||
+ | [[File:rejenisairfoil.jpg]] | ||
+ | |||
+ | |||
+ | dari berbagai jenis airfoil tersebut, saya memiliki airfoin jenis R.A.F 6 1912 | ||
+ | |||
+ | [[File:reairfoin.png | thumb | center | 500px | Airfoil kelompok 15]] | ||
+ | |||
+ | |||
+ | Desain tersebut akan kita simulasikan untuk mendapat airdrag dan lift up. Airdrag sendiri adalah gaya hambat yang dihasilkan gerakan relatif fiulda di sekitar objek. Aridrag sendiri saat ini menjadi faktor penting untuk mendapatkan kecepatan maksmimum alat transportasi udara. Kemudian untuk lift up force merupakan gaya yang muncul akibat penerapan hukum bernouli. Penggunaan umum dari lift up sendiri terdapat di pesawat. | ||
+ | |||
+ | |||
+ | Desain yang kami buat dianalisis menggunakan CFD-soft, kita mendapatkan hasil sebagai berikut. | ||
+ | |||
+ | [[File:reairfoildata.png | center | thumb | 500 px | Data drag dan lift up]] | ||
+ | |||
+ | === Optimasi === | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | #!/usr/bin/env python | ||
+ | # coding: utf-8 | ||
+ | |||
+ | # In[11]: | ||
+ | import numpy as np | ||
+ | from scipy.optimize import minimize | ||
+ | |||
+ | def calc_drag(x):#drag | ||
+ | x1 = x[0] | ||
+ | drag = 0.000000001*x1**6-0.0000003*x1**5+0.00003*x1**4-0.0008*x1**3-0.0002*x1**2+0.4312*x1+2.7716 #Persamaan drag <---------------------------- ini yang diganti | ||
+ | return drag | ||
+ | |||
+ | def calc_lift(x): #lift | ||
+ | x1 = x[0] | ||
+ | lift = -0.00000001*x1**5-0.000002*x1**4+0.0004*x1**3-0.0147*x1**2+0.0705*x1+5.313 #persamaan lift <------------------------- ini yang diganti | ||
+ | return lift | ||
+ | |||
+ | def objective(x): #volume yang diminimalkan | ||
+ | return calc_drag(x) | ||
+ | |||
+ | def constraint1(x): #variable SUDUT yang meminimalkan persamaan garis drag | ||
+ | return 90 - calc_drag(x) | ||
+ | def constraint2(x): #variable SUDUT yang meminimalkan persamaan garis lift | ||
+ | return 90 - calc_lift(x) | ||
+ | |||
+ | con1=({'type':'ineq','fun':constraint1}) | ||
+ | con2=({'type':'ineq','fun':constraint2}) | ||
+ | cons = (con1,con2) | ||
+ | |||
+ | x1_guess = 50 | ||
+ | |||
+ | x0 = np.array([x1_guess]) | ||
+ | |||
+ | sol = minimize(objective,x0, method='SLSQP',constraints=cons, options={'disp':True}) | ||
+ | |||
+ | xopt = sol.x | ||
+ | forceopt = -sol.fun | ||
+ | |||
+ | dragopt = calc_drag(xopt) # drag optimal | ||
+ | liftopt = calc_lift(xopt) # lift optimal | ||
+ | |||
+ | print ('sudut optimal = '+str(-xopt[0])) | ||
+ | print ('total force optimal = '+str(forceopt)) | ||
+ | print ('drag force optimal = '+str(-dragopt)) | ||
+ | print ('lift force optimal = '+str(liftopt)) | ||
+ | |||
+ | |||
+ | === Machine Learning === | ||
+ | '''1. Supervised Learning''' | ||
+ | |||
+ | Supervised Learning adalah tipe learning di mana kita mempunyai variable input dan variable output, dan menggunakan satu algoritma atau lebih untuk mempelajari fungsi pemetaan dari input ke output. Goal-nya adalah untuk memperkirakan fungsi pemetaannya, sehingga ketika kita mempunya input baru, kita dapat memprediksi output untuk input tersebut. | ||
+ | |||
+ | '''2. Unsupervised Learning''' | ||
+ | Berbeda dengan supervised learning, unsupervised learning adalah tipe learning di mana kita hanya mempunyai data masukan (input data) tetapi tidak ada output variable yang berhubungan. Goal dari unsupervised learning adalah untuk memodelkan struktur dasar atau distribusi dalam data dengan tujuan untuk mempelajari data lebih jauh lagi, dengan kata lain, adalah menyimpulkan fungsi yang mendeskripsikan atau menjelaskan data. | ||
+ | |||
+ | '''3. Semi-Supervised Learning''' | ||
+ | Semi-supervised Learning adalah tipe learning di mana kita mempunyai data masukan (input data) dalam jumlah besar dan hanya beberapa dari data tersebut yang dilabeli. | ||
+ | |||
+ | '''4. Reinforcement Learning''' | ||
+ | Reinforcement Learning terjadi ketika kita menyajikan algoritma dengan contoh yang kekurangan label, tetapi kita dapat menyertakan contoh dengan feedback positif atau negatif bergantung pada solusi yang ditawarkan oleh algoritma tersebut. Dengan reinforcement learning, mesin dan software dapat menentukan tingkah laku ideal terhadap sebuah konteks yang spesifik secara otomatis, dengan tujuan untuk memaksimalkan performanya. Umpan balik (feedback) ‘simple reward’ dibutuhkan untuk mesin mempelajari tingkah lakunya; hal ini disebut reinforcement signal. |
Latest revision as of 15:27, 24 December 2019
Saya adalah Raihan Nurrasyid Aryunata, mahasiswa teknik mesin Universitas Indonesia yang masuk pada tahun 2018. Saya lahir di sebuah kota kecil di jawa tengah bagian selatan, Kebumen. Mengambil teknik mesin bukan tanpa alasan. Diawali dengan kecintaan saya pada fisika yang kemudian lebih spesifik ke fisika moderen yang berbicara mengenai kuantum, relativitas, dan benda hitam. Namun, kehidupan ilmu pengetahuan tersebut di Indonesia tidaklah subur. Karenanya, saya memilih teknik mesin agar tetap mengaplikasikan berbagai fisika meskipun fisika klasik, namun tetap mempelajari fisika moderen sebagai hobi.
Dari fisika, saya belajar banyak hal yang mengarah ke filosofi. Mulai dari bagaimana 'belajar' itu sendiri yang ternyata harus terkonsep dan memiliki alur yang tepat agar inti dari sebuah pembelajaran dikenai hingga saling terhubungnya semua ilmu sains itu sendiri. Untuk contoh dari konsep belajar yang tepat, dapat diibaratkan penurunan persamaan sederhana pada GLBB khususnya gerak parabola, mudah saja bagi kita untuk menggunakan persamaan yang sudah ada. Namun, dengan metode belajar yang tepat, kita dapat memperoleh penjelasan untuk kasus yang lebih kompleks. Selain itu, belajar beralur juga memberikan kita long term memori pada materi yang sedang dipelajari. Kemudian untuk terhubungnya semua sains, hal yang paling membuat diri saya tertarik adalah kenyataan bahwa jumlah kelopak bunga akan mengikuti aturan bilangan fibonacci. Selain itu, saya juga kagum dengan eksistensi bilangan natural e yang ternyata ada di berbagai lini kehidupan.
Dari situ, saya ingin berbagi kepada orang-orang terdekat tentang apa yang saya dapatkan dari 'Fisika'. Saya memulainya dengan membantu dan memotivasi mereka untuk bersabar dalam belajar, mengikuti kegiatan relawan tentang pendidikan, dan menginisiasi kegiatan belajar bersama dengan alumni di SMA saya dulu. Untuk itu, saat ini saya ingin memanfaatkan wiki ini untuk sedikit berbagi mengenai apa yang saya dapatkan melalui 'belajar'.
Contents
Kuliah Series
Kuliah 1: Mengapa Harus Belajar Kalkulus?
kuliah pertama metode numerik pada 4 September 2019 memiliki tiga inti bahasan. Pertama mengenai pentingnya belajar kalkulus, kedua mengenai phyton, dan ketiga mengenai aplikasi phyton untuk menyelesaikan matematika.
Mengapa Harus Belajar Kalkulus?
Mengapa Harus belajar Kalkulus?
Kuliah 2 : Dasar Phyton
kuliah 2 pada 11 September 2019, saya belajar mengenai pemrogaman dasar dari python. Kuliah kedua ini ada beberapa jenis elemen yang diajarkan yang mengandung beberapa syntax.
Kuliah 3 : Eliminasi Gauss
Kuliah 4 : Menyelesaikan Permasalah Pegas
materi minggu ini merupakan aplikasi dari materi yang kita dapat di minggu lalu yaitu mengenai penerapan eliminasi gauss. Pertama, kita harus mengetahui matrik yang akan digunakan dalam operasi ini. Matrik tersebut ditunjukkan pada gambar dibawah.
Setelah itu, kita harus membuat matriks superposisi. Matrik super posisi adalah matrik perluasan dari matriks koefisien pegas yang ada.
Tugas, membaca phyton untuk differensial
Kuliah 5 : Aspek Metode Numerik
materi minggu ini, 9 Oktober 2019 adalah mengenai prakitk penggunaan matematika pada ranah teknik. Mulai dari yang sederhana yaitu aljabar
Kuliah 6 : Quis materi runge kutta dan eliminasi gauss
hari ini, 17 OKtober 2019, diadakan kuis dengan materi yang terakhir dipelajari yaitu runge kuta dan eliminiasi gauss. Materi ini terbilang cukup sukar karena sebagian besar dari kita adalah pendatang baru di ranah koding.
dari quis nomer 1 mengugnakan eliminasi gauss :
soal pertama adalah mengenai eliminasi gaus.
alurnya adalah :
1. menentukan matriks dengan tuple sesuai jumlah dari baris dan kolom
2. mendefinisikan bahwa tuple adalah matrik dengan ny. array
3. membuat hal yang sama yaitu membuat tuple untuk matrik kedua
4. lakukan operasi dengan perintah linalg.solve
kemudian untuk yang kedua, mengenai soal runge kutta yang memanfatkan turunan atau diferensial.
Belajar Series
Dasar Input dalam Phyton
Setelah belajar mengenai beberapa perintah atau bahasa pemrogramannya adalah systax, ada beberapa hal yang belum dijelaskan apa itu varibel, string, dan tuples ataupun istilah lain. Namun, Prof. Ahmad Indra menyarankan untuk belajar dari buku Numerical Methods in Engineering with Phyton 3 yang ditulis Jaan Kiusalaas.
Untuk lebih lengkap, dapat kunjungi link berikut
Belajar 1 : Dasar-dasar Phyton
Tugas
Tugas Kuliah 1
Pada kuliah pertama yang diadakan pada 4 september 2019 kita diberi tugas untuk membuat sebuah penyelesaian sebuah persamaan dengan menggunakan phyton. Berikut merupakan penyelesaian dari tugas tersebut.
Tugas Kuliah 2
Pada kuliah pertama yang diadakan pada 18 september 2019 kita diberi tugas untuk membuat sebuah penyelesaian untuk deret fibonacci yang menggunakan phyton dengan input bebas dari user. Selain itu, kita juga harus membubatflowchart dari program tersebut.
Tugas 2 : Deret Fibonacci & Flowchart
UTS - Soal dan Coding
soal nomor 1 :
from numpy import linalg import numpy as np
m1= input('nilai M1:') m2= input('nilai M2:') m3= input('nilai M3:') m4= input('nilai M4:')
print(m1) print(m2) print(m3) print(m4)
bar1 = [1 , 0 , 0] bar2 = [-1, 1 ,0 ] bar3 = [ 0, -1 ,1]
f1=m1*10 f2=m2*10 f3=m3*10 f4=m4*10
nmat = np.array ([bar1,bar2,bar3]) cons = np.array ([f1 , f2 , f3]) print ("Matrix Y adalah sebagai berikut:") print (cons) jawab = linalg.solve (nmat,cons) x1val = int(jawab[0]) x2val = int(jawab[1]) x3val = int(jawab[2])
print ("Nilai Tegangan Tali 1,2, dan 3 adalah :") print ("T1= ",x1val) print ("T2= ",x2val) print ("T3= ",x3val)
print(jawab)
soal nomor 2 :
def dydx(x, y): return def rungeKutta(x0, y0, x, h): n = (int((x - x0)/h)) y = y0 for i in range(1, n + 1): k1 = h * dydx(x0, y) k2 = h * dydx(x0 + 0.5 * h, y + 0.5 * k1) k3 = h * dydx(x0 + 0.5 * h, y + 0.5 * k2) k4 = h * dydx(x0 + h, y + k3) y = y + (1.0 / 6.0)*(k1 + 2 * k2 + 2 * k3 + k4) x0 = x0 + h return y x0 = 0 y = 1 x = 0.03 h = 0.01 print ('The value of y at x is:', rungeKutta(x0, y, x, h))
VIdeo Muhasabah
Video Muhasabah
Video soal no 1
Soal Nomor 1
Video soal no 2
Soal Nomor 2
Airfoil
Airfoil adalah bentuk dari suatu sayap pesawat yang dapat menghasilkan gaya angkat (lift) atau efek aerodinamika ketika melewati suatu aliran udara. Airfoil merupakan bentuk dari potongan melintang sayap yang dihasilkan oleh perpotongan tegak lurus sayap terhadap pesawat, dengan kata lain airfoil merupakan bentuk sayap secara dua dimensi seperti pada gambar.
Airfoil sendiri memiliki beberapa jenis.
dari berbagai jenis airfoil tersebut, saya memiliki airfoin jenis R.A.F 6 1912
Desain tersebut akan kita simulasikan untuk mendapat airdrag dan lift up. Airdrag sendiri adalah gaya hambat yang dihasilkan gerakan relatif fiulda di sekitar objek. Aridrag sendiri saat ini menjadi faktor penting untuk mendapatkan kecepatan maksmimum alat transportasi udara. Kemudian untuk lift up force merupakan gaya yang muncul akibat penerapan hukum bernouli. Penggunaan umum dari lift up sendiri terdapat di pesawat.
Desain yang kami buat dianalisis menggunakan CFD-soft, kita mendapatkan hasil sebagai berikut.
Optimasi
#!/usr/bin/env python # coding: utf-8
# In[11]: import numpy as np from scipy.optimize import minimize def calc_drag(x):#drag x1 = x[0] drag = 0.000000001*x1**6-0.0000003*x1**5+0.00003*x1**4-0.0008*x1**3-0.0002*x1**2+0.4312*x1+2.7716 #Persamaan drag <---------------------------- ini yang diganti return drag
def calc_lift(x): #lift x1 = x[0] lift = -0.00000001*x1**5-0.000002*x1**4+0.0004*x1**3-0.0147*x1**2+0.0705*x1+5.313 #persamaan lift <------------------------- ini yang diganti return lift
def objective(x): #volume yang diminimalkan return calc_drag(x)
def constraint1(x): #variable SUDUT yang meminimalkan persamaan garis drag return 90 - calc_drag(x) def constraint2(x): #variable SUDUT yang meminimalkan persamaan garis lift return 90 - calc_lift(x)
con1=({'type':'ineq','fun':constraint1}) con2=({'type':'ineq','fun':constraint2}) cons = (con1,con2)
x1_guess = 50
x0 = np.array([x1_guess])
sol = minimize(objective,x0, method='SLSQP',constraints=cons, options={'disp':True})
xopt = sol.x forceopt = -sol.fun
dragopt = calc_drag(xopt) # drag optimal liftopt = calc_lift(xopt) # lift optimal
print ('sudut optimal = '+str(-xopt[0])) print ('total force optimal = '+str(forceopt)) print ('drag force optimal = '+str(-dragopt)) print ('lift force optimal = '+str(liftopt))
Machine Learning
1. Supervised Learning
Supervised Learning adalah tipe learning di mana kita mempunyai variable input dan variable output, dan menggunakan satu algoritma atau lebih untuk mempelajari fungsi pemetaan dari input ke output. Goal-nya adalah untuk memperkirakan fungsi pemetaannya, sehingga ketika kita mempunya input baru, kita dapat memprediksi output untuk input tersebut.
2. Unsupervised Learning Berbeda dengan supervised learning, unsupervised learning adalah tipe learning di mana kita hanya mempunyai data masukan (input data) tetapi tidak ada output variable yang berhubungan. Goal dari unsupervised learning adalah untuk memodelkan struktur dasar atau distribusi dalam data dengan tujuan untuk mempelajari data lebih jauh lagi, dengan kata lain, adalah menyimpulkan fungsi yang mendeskripsikan atau menjelaskan data.
3. Semi-Supervised Learning Semi-supervised Learning adalah tipe learning di mana kita mempunyai data masukan (input data) dalam jumlah besar dan hanya beberapa dari data tersebut yang dilabeli.
4. Reinforcement Learning Reinforcement Learning terjadi ketika kita menyajikan algoritma dengan contoh yang kekurangan label, tetapi kita dapat menyertakan contoh dengan feedback positif atau negatif bergantung pada solusi yang ditawarkan oleh algoritma tersebut. Dengan reinforcement learning, mesin dan software dapat menentukan tingkah laku ideal terhadap sebuah konteks yang spesifik secara otomatis, dengan tujuan untuk memaksimalkan performanya. Umpan balik (feedback) ‘simple reward’ dibutuhkan untuk mesin mempelajari tingkah lakunya; hal ini disebut reinforcement signal.