Illiyyin Lafi Abrarri
Tugas Mekanika Fluida
Biografi
Illiyyin Lafi Abrarri lahir di Surabaya, 23 Mei 1999 dari pasangan suami istri Amir Hamzah dan Dwi Riawati. Mengawali pendidikan mulai dari sekolah dasar hingga SMA di Surabaya. berasal dari SMAN 15 Surabaya dan melanjutkan pendidikan S1 di Teknik Mesin Universitas Indonesia. memiliki hobi bermain game, renang, dan badminton.
Karier
semua karir dimulai ketika masa perkuliahan dimulai dengan membantu tugas skripsi senior mengenai getaran pada tingkat awal, diikuti dengan mengikuti proyek desa Bungin yang diadakan oleh Prof Adi sejak 2018 hingga saat ini meski tidak terlalu berat, memulai mengajar anak SMA secara privat sejak tahun 2018 hingga saat ini, menjadi vice project officer ASUIFEST 2019, menjadi vice PIC Aeromodelling di MMENE sebuah event kebanggaan Ikatan mahasiswa Mesin, menjadi anggota student catalyst 2019 dan memenangkan best project tentang masalah ketidak toleransi umat beragama dan politik, menjadi anggota MPM FTUI periode 2019
PYTHON
Awal belajar sempat kaget karena selalu mengalami syntax error dan tidak mengetahui bagaimana caranya membuat line baru dibawah line sebelumnya. Ternyata tidak dimasukan nya fungsi yang benar. Hal yang sudah saya pelajari di python adalah mengenai operasi hitung tentang penambahan, pengurangan, pengalian, dan pembagian. Fungsi-fungsi persamaan yang sudah saya pelajari adalah
a = 4
b = a + 5
print (b)
9
dan seterusnya termasuk pengalian, pengurangan dan pembagian beberapa juga ada yang mengalami kesalah pahaman seperti
a = [2, 3, 4]
b = [1, 0, 3]
c = a + b
print(c)
[2, 1, 3, 0, 4, 3]
yang seharusnya diharapkan [3, 3, 7] ditambahlagi beberapa campuran kata dan angka akan menghasilkan eror karena tidak masuk akal dan tidak bias dilakukan operasi hitung matematika menggunakan fungsi Batasan angka seperti >, <, =, >=, dan <= memncoba program if, false, dan true dan membuat sebuah persamaan yang bias dihitung persamaan linear sederhana
Hiburan metode numerik 1
Dalam mengerjakan soal (x^2-1)/(x-1) dengan x=1 tidak bisa mendapatkan hasil yang benar dikarenakan 0/0. Oleh sebab itu, saya gunakan limit pendekatan x=1. Soal dikerjakan dengan menambahkan perbedaan 1/9999999 yang mendekati angka nol sehingga hampir tidak merubah hasil dengan menggunakan module coding sebagai berikut
Pada module ini, saya memisahkan antara pembilang dan penyebut nya sehingga memudahkan perhitungan.
dan memiliki hasil seperti berikut
pada soal ini digunakan metode Newton Raphson sebagai metode mencari faktor dari persamaan tersebut
dengan module sebagai berikut
dan mendapatkan hasil sebagai berikut
dengan flowchart sebagai berikut
pada tugas hiburan ini
dikerjakan menggunakan hukum kontinuitas massa dimana masa yang masuk akan sama dengan yang dikeluarkan sehingga didapati rumus Q*p=Q*p sehingga akan mendapatakan 4 persamaan dengan 4 variabel
6C1 - 4C2 = 50
-2C1 - 1C3 + 4C4 = 50
7C2 - 3C3 - 4C4 = 0
-4C1 + 4C3 = 0
6C1 - 4C2 + 0C3 + 0C4 = 50 -2C1 + 0C2 - 1C3 + 4C4 = 50 0C1 + 7C2 - 3C3 - 4C4 = 0 -4C1 + 0C2 + 4C3 + 0C4 = 0
yang kemudian dijadikan dalam modue python
import numpy as np
class GEPP():
def __init__(self, A, b, doPricing=True): #super(GEPP, self).__init__()
self.A = A # input: A is an n x n numpy matrix self.b = b # b is an n x 1 numpy array self.doPricing = doPricing
self.n = None # n is the length of A self.x = None # x is the solution of Ax=b
self._validate_input() # method that validates input self._elimination() # method that conducts elimination self._backsub() # method that conducts back-substitution
def _validate_input(self): self.n = len(self.A) if self.b.size != self.n: raise ValueError("Invalid argument: incompatible sizes between" + "A & b.", self.b.size, self.n)
def _elimination(self): """ k represents the current pivot row. Since GE traverses the matrix in the upper right triangle, we also use k for indicating the k-th diagonal column index. :return """
# Elimination for k in range(self.n - 1): if self.doPricing: # Pivot maxindex = abs(self.A[k:, k]).argmax() + k if self.A[maxindex, k] == 0: raise ValueError("Matrix is singular.") # Swap if maxindex != k: self.Ak, maxindex = self.Amaxindex, k self.bk, maxindex = self.bmaxindex, k else: if self.A[k, k] == 0: raise ValueError("Pivot element is zero. Try setting doPricing to True.") # Eliminate for row in range(k + 1, self.n): multiplier = self.A[row, k] / self.A[k, k] self.A[row, k:] = self.A[row, k:] - multiplier * self.A[k, k:] self.b[row] = self.b[row] - multiplier * self.b[k]
def _backsub(self): # Back Substitution
self.x = np.zeros(self.n) for k in range(self.n - 1, -1, -1): self.x[k] = (self.b[k] - np.dot(self.A[k, k + 1:], self.x[k + 1:])) / self.A[k, k]
def main():
A = np.array([[6., -4., 0., 0.], [-4., 0., 4., 0.], [-2., 0., -1., 4.], [0., 7., -3., -4.]]) b = np.array([[50.], [0.], [50.], [0.]]) print("ini matriks awal nya") print(A) print("ini hasil yang awal") print(b)
GaussElimPiv = GEPP(np.copy(A), np.copy(b), doPricing=False) print("ini hasil akhirnya") print(GaussElimPiv.x) print(GaussElimPiv.A) print(GaussElimPiv.b) GaussElimPiv = GEPP(A, b) print(GaussElimPiv.x)
if __name__ == "__main__":
main()
koding an diatas masih mengikuti template yang ada di internet