Difference between revisions of "Rizkyawan Wibawa"
Line 75: | Line 75: | ||
*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''. | *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 | + | '''Rabu, 9 Oktober 2019: Pertemuan 6''' |
*Inti pembuatan program pada Python/bahasa pemrograman lainnya: memodelkan masalah ''engineering'' untuk kemudian diproses perhitungannya melalui komputer. | *Inti pembuatan program pada Python/bahasa pemrograman lainnya: memodelkan masalah ''engineering'' untuk kemudian diproses perhitungannya melalui komputer. | ||
Line 92: | Line 92: | ||
*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. | *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. | *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 |
Revision as of 17:05, 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