Difference between revisions of "Rizkyawan Wibawa"

From ccitonlinewiki
Jump to: navigation, search
Line 114: Line 114:
 
         b[k] = (b[k] - np.dot(A[k,k+1:n],b[k+1:n]))/A[k,k]
 
         b[k] = (b[k] - np.dot(A[k,k+1:n],b[k+1:n]))/A[k,k]
 
         return b
 
         return b
 +
 +
*Program penyelesaian problem set 7.1 nomor 2:
 +
    def F(x,y):
 +
    return ((x**2 - 4*y))
 +
 +
    def run_kut4(x0,y,x,h):
 +
    n = int((x - x0)/h)
 +
    y = y
 +
    for i in range (1, n+1):
 +
    K0 = h*F(x0,y)
 +
    K1 = h*F(x0 + h/2.0, y + K0/2.0)
 +
    K2 = h*F(x0 + h/2.0, y + K1/2.0)
 +
    K3 = h*F(x0 + h, y + K2)
 +
    y = y + (K0 + 2.0*K1 + 2.0*K2 + K3)/6.0
 +
    return y
 +
 +
    x0 = 0
 +
    y = 1
 +
    x = 0.03
 +
    h = 0.001
 +
    print('nilai y pada x = 0.03 adalah:',run_kut4(x0,y,x,h))

Revision as of 17:43, 16 October 2019

Rizkyawan Wibawa

1606835260

Departemen Teknik Mesin

Kenapa kita belajar Kalkulus?

  • Karena kalkulus adalah salah satu ilmu dasar yang akan digunakan selama belajar di jurusan Teknik Mesin. Aplikasi daripada materi-materi kalkulus sendiri terdapat pada mata kuliah departemen/jurusan, diantaranya Termodinamika Dasar, Mekanika Fluida, dan Kinematika & Dinamika.

Rabu, 4 September 2019: Pertemuan 1

  • Dalam proses pembelajaran, starting point setiap orang bisa berbeda. Output yang diharapkan dari hasil proses belajar-mengajar adalah peningkatan yang terjadi pada end point.
  • Selama pembelajaran metode numerik, mhs akan bersinggungan dengan beberapa aspek, diantaranya: algoritma, flow chart, dan programming.
  • Aplikasi metode numerik, sebagai contoh, terdapat pada perangkat lunak yang dibuat dengan tujuan melakukan CAD, CAM, dan CAE.

Reminder tugas pekan 1

  • Belajar Python
  • Membuat program untuk menyelesaikan soal aritmatika

Pembelajaran awal untuk Python

  • Merupakan salah satu bentuk bahasa pemrograman yang terbilang baru, namun telah cukup banyak digunakan, khususnya di lingkungan kampus MIT (berdasarkan informasi dari Pak Radon).
  • Menggunakan syntax yang relatif mudah dipahami, dan mudah dipelajari di bagian awal untuk membuat program-program sederhana.
  • Contoh program yang dimaksud: Mencetak kalimat di layar, membuat cerita dengan variabel nama karakter dan umur karakter yang dapat diubah-ubah sesuka hati, mencetak bentuk geometri sederhana.
  • Untuk membuat program sederhana yang dapat menyelesaikan suatu fungsi aljabar, kita akan memerlukan beberapa add-on yang dapat memberikan library yang mendukung fungsi-fungsi yang akan kita gunakan dalam memecahkan fungsi aljabar. Add-on yang saya maksud disini salah satunya adalah SymPy, yang memiliki library untuk menyelesaikan fungsi dengan variabel dan simbol-simbol yang umum digunakan pada pembelajaran aljabar.

Rabu, 11 September 2019: Pertemuan 2

  • Breakdown silabus Metode Numerik
  • Target pekan ini: dasar-dasar pemrograman
  • Agenda di kelas: mencetak "hello world", melakukan operasi aritmetika sederhana, mempelajari tentang tuples dan lists, cara mengakses salah satu variabel yang terdapat di dalam tuples dan lists

Rabu, 18 September 2019: Pertemuan 3

  • Kuis pemrograman dengan Python: membuat program yang dapat memunculkan suku ke-n dari deret Fibonacci (n dapat dimasukkan angka berapapun sesuai yang kita inginkan)
  • Pendekatan yang dapat digunakan: loop 'while'
  • Mendefinisikan variabel untuk dua suku pertama dan nilai iterasi, kemudian memerintahkan Python untuk mengulang operasi penjumlahan dua suku sebelumnya sampai pada jumlah suku yang diinginkan untuk dicetak pada layar.
  • Contoh Program:
      a = float(input('length :'))
      x = 1
      y = 1
      i = 0
      while i < a:
      print(x)
      z = x + y
      # Modify values
      x = y
      y = z
      i += 1
  • Loop 'while' ini juga dapat digunakan untuk membuat program yang bisa menentukan suku ke-sekian dalam deret lainnya, misalnya dalam deret geometri dengan faktor pengali 2.
  • Program:
      a = float(input("Suku ke: "))
      x = 1
      i = 1
      while i < a :
      z = x + x
      x = z
      i += 1
      print ("Bilangannya adalah: ")
      print (x)

Rabu,2 Oktober 2019: Pertemuan 5

  • Memahami bagaimana cara menggunakan ilmu metode numerik untuk memodelkan berbagai permasalahan yang ada dalam dunia engineering.
  • Tugas: membaca tentang metode penyelesaian persamaan diferensial.
  • Materi pertemuan: aljabar simultan
  • Mempelajari penggunaan sistem persamaan linier untuk menyelesaikan masalah engineering.
  • Diberikan contoh pemodelan sistem pegas tunggal menjadi suatu sistem persamaan linier dengan menerjemahkan rumus-rumus pegas menjadi variabel pada matriks.
  • Setelahnya, diberikan contoh pemodelan sistem pegas ganda dengan susunan seri, memisahkan bagian-bagian sistem berdasarkan node. Kemudian dibuat matriks variabel konstanta pegas, variabel perpindahan, dan variabel beban.
  • Proses pembuatan matriks untuk sistem pegas yang bukan tunggal: menggunakan superposisi matriks (pelebaran matriks).
  • Dijelaskan mengenai penulisan program pada Python untuk menyelesaikan permasalahan sistem pegas seri.
  • Kemudian dijelaskan juga mengenai penulisan program pada Python untuk menyelesaikan sistem persamaan linier, dengan cara penggunaan modul third-party seperti numpy dan sympy, dan tanpa menggunakan modul third-party.

Rabu, 9 Oktober 2019: Pertemuan 6

  • Inti pembuatan program pada Python/bahasa pemrograman lainnya: memodelkan masalah engineering untuk kemudian diproses perhitungannya melalui komputer.
  • Asumsi dalam pemodelan masalah: benda memiliki sifat continuum, dimana molekul mengisi seluruh ruang pada benda.
  • Persamaan yang berlaku pada benda continuum: persamaan diferensial
  • Contoh persoalan: pada suatu struktur berupa batang yang diberikan gaya tarik F di ujungnya dan ujung lainnya menempel pada pondasi/dinding.
  • Tegangan yang terjadi di setiap bagian pada batang dihitung berdasarkan posisi dan panjang bagian.
  • Menyelesaikan persamaan diferensial metodenya cukup banyak
  • Satu yang dibahas hari ini yang cukup umum digunakan: metode Runge-Kutta
  • Banyak persamaan diferensial yang tidak bisa diselesaikan dengan metode perhitungan eksak, namun bisa diselesaikan dengan metode numerik.
  • Salah satu contoh aplikasi yang berhasil dilakukan: menentukan laju reaksi untuk memproses kelapa sawit menjadi bahan bakar bio-bensin.
  • Setiap metode penyelesaian persamaan diferensial pasti memiliki error, tidak ada yang sepenuhnya benar.
  • Metode Runge-Kutta: dapat diberlakukan untuk persamaan diferensial orde 1,2,3, dan 4.
  • Perbedaan masing-masing orde tersebut berada pada error dari nilai yang didapatkan.
  • Bagian paling penting dari menyelesaikan persamaan diferensial dengan metode numerik: mengetahui persamaan diferensial, dan mengetahui nilai awal.
  • Contoh yang diberikan dikelas: menggunakan metode numerik untuk menyelesaikan persamaan diferensial dalam menghitung kecepatan dan posisi ketinggian bola yang jatuh bebas dari ketinggian 100 meter.
  • Diajarkan cara menentukan perhitungan untuk setiap iterasi dari fungsi kecepatan dan posisi. Diberitahukan juga mengenai perbedaan penggunaan loop for dan loop while pada Python.

Rabu, 16 Oktober 2019: Pertemuan 7

  • Kuis untuk mencoba menyelesaikan problem set 2.1 nomor 6 dan problem set 7.1 nomor 2 di buku
  • Program penyelesaian problem set 2.1 nomor 6:
       import numpy as np
       A = np.array ([[0,0,2,1,2],[0,1,0,2,-1],[1,2,0,-2,1],[0,0,0,-1,1],[0,1,-1,1,-1]])
       b = np.array ([[1],[1],[-4],[-2],[-1]])
       def gaussElimin(A,b):
       n = len(b)
       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+1:n] = A[i,k+1:n] - lam*A[k,k+1:n]
       b[i] = b[i] - lam*b[k]
       for k in range(n-1,-1,-1):
       b[k] = (b[k] - np.dot(A[k,k+1:n],b[k+1:n]))/A[k,k]
       return b
  • Program penyelesaian problem set 7.1 nomor 2:
   def F(x,y):
   return ((x**2 - 4*y))
   def run_kut4(x0,y,x,h):
   n = int((x - x0)/h)
   y = y
   for i in range (1, n+1):
   K0 = h*F(x0,y)
   K1 = h*F(x0 + h/2.0, y + K0/2.0)
   K2 = h*F(x0 + h/2.0, y + K1/2.0)
   K3 = h*F(x0 + h, y + K2)
   y = y + (K0 + 2.0*K1 + 2.0*K2 + K3)/6.0
   return y
   x0 = 0
   y = 1
   x = 0.03
   h = 0.001
   print('nilai y pada x = 0.03 adalah:',run_kut4(x0,y,x,h))