Difference between revisions of "Raihan Nurrasyid Aryunata"

From ccitonlinewiki
Jump to: navigation, search
(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.jpg|500px|thumb|center|Contoh matriks yang digunakan dalam penyelesaian kasus pegas]]
+
[[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.


DSF3429.jpg


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'.


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.

Hasil belajar kuliah dua

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.

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.

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 :

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.

soal kedua

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 1 : Operasi Matematika

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.


Analisis gaya pada airfoil


Airfoil sendiri memiliki beberapa jenis.

Rejenisairfoil.jpg


dari berbagai jenis airfoil tersebut, saya memiliki airfoin jenis R.A.F 6 1912

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.

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.