Difference between revisions of "Mohammad Zyan Beckham"
(18 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | Pada pertemuan pertama mata kuliah Metode Numerik, Bapak Dr. Ahmad Indra atau Aki DAI memperkenalkan dirinya, serta hadir juga Bapak Dr. Gunawan. Lalu dibahas tentang tujuan perkuliahan metode numerik, yaitu 1. memahami konsep/ prinsip & mampu menerapkannya, 2. menjadi orang yang lebih mengenal siapa dirinya. Untuk memenuhi atau mencapai tujuan perkuliahan itu diperlukan sebuah prasyarat, yaitu adalah Berakal. Dimana berakal yang dimaksud disini adalah berawal dari kata akal dan memiliki makna mempunyai akal, di mana akal ini mempunyai pengertian sebagai tali pengikat dari ilmu ilmu yang kita terima untuk digunakan. Akal ini juga menjadi pengikat antara ilmu yang kita terima dengan Tuhan YME, Allah SWT. Dalam Metode Numerik ini hal yang dipelajari adalah, 1. -Algoritma -Flowchart -Pemograman, EES, C# -Metode Interative, 2. Penyelesaian Persamaan-persamaan Aljabar Simultan, 3. Differensial & Integral, 4. Optimasi, 5. Studi Kasus. Pada mata kuliah Metode Numerik ini hanya Tuhan YME, Allah SWT. yang tahu, yang memberikan kita ilmu, Wallahu'alam bissowab. Persamaan aljabar yang dipakai dalam dunia teknik tidak semudah dalam pelajaran SMA atau pelajaran Aljabar Linear, banyak persamaan yang rumit dengan angka yang banyak, sehingga membutuhkan bantuan komputer untuk menghitung persamaannya. Pertemuan tersebut juga membahas satu contoh soal, yaitu lim x->1 x^2-1/x-1 , atau A=x^2-1/x-1 jika x=1 , mengapa jawabannya 2, mengapa jika x=1 dimasukkan ke persamaan tersebut hasilnya berbeda menjadi 0/0 mengapa disebut tidak terdefinsi, mengapa disebut infinite atau tidak terbatas, konsep dari infinite itu sendiri, berasal dari kata finite yang artinya terbatas. Selanjutnya juga dibahas mengenai tegangan atau stress tensor, di mana pembagian atau perataan beban pada suatu benda, atau contoh sebuah balok dari A ke B. Untuk referensi mata kuliah Metode Numerik ini bisa diambil dari 1. Advance Engineering Mathematics, oleh Edwin Kryzig, bisa juga dari referensi lainnya. | + | == Pertemuan Pertama == |
+ | |||
+ | Pada pertemuan pertama mata kuliah Metode Numerik, Bapak Dr. Ahmad Indra atau Aki DAI memperkenalkan dirinya, serta hadir juga Bapak Dr. Gunawan. Lalu dibahas tentang tujuan perkuliahan metode numerik, yaitu 1. memahami konsep/ prinsip & mampu menerapkannya, 2. menjadi orang yang lebih mengenal siapa dirinya. Untuk memenuhi atau mencapai tujuan perkuliahan itu diperlukan sebuah prasyarat, yaitu adalah Berakal. Dimana berakal yang dimaksud disini adalah berawal dari kata akal dan memiliki makna mempunyai akal, di mana akal ini mempunyai pengertian sebagai tali pengikat dari ilmu ilmu yang kita terima untuk digunakan. Akal adalah tali yang mengikat pikiran kita agar tetap pada koridor yang manusiawi. Akal ini juga menjadi pengikat antara ilmu yang kita terima dengan Tuhan YME, Allah SWT. Dalam Metode Numerik ini hal yang dipelajari adalah, 1. -Algoritma -Flowchart -Pemograman, EES, C# -Metode Interative, 2. Penyelesaian Persamaan-persamaan Aljabar Simultan, 3. Differensial & Integral, 4. Optimasi, 5. Studi Kasus. Pada mata kuliah Metode Numerik ini hanya Tuhan YME, Allah SWT. yang tahu, yang memberikan kita ilmu, Wallahu'alam bissowab. Persamaan aljabar yang dipakai dalam dunia teknik tidak semudah dalam pelajaran SMA atau pelajaran Aljabar Linear, banyak persamaan yang rumit dengan angka yang banyak, sehingga membutuhkan bantuan komputer untuk menghitung persamaannya. Pertemuan tersebut juga membahas satu contoh soal, yaitu lim x->1 x^2-1/x-1 , atau A=x^2-1/x-1 jika x=1 , mengapa jawabannya 2, mengapa jika x=1 dimasukkan ke persamaan tersebut hasilnya berbeda menjadi 0/0 mengapa disebut tidak terdefinsi, mengapa disebut infinite atau tidak terbatas, konsep dari infinite itu sendiri, berasal dari kata finite yang artinya terbatas. Selanjutnya juga dibahas mengenai tegangan atau stress tensor, di mana pembagian atau perataan beban pada suatu benda, atau contoh sebuah balok dari A ke B. Untuk referensi mata kuliah Metode Numerik ini bisa diambil dari 1. Advance Engineering Mathematics, oleh Edwin Kryzig, bisa juga dari referensi lainnya. | ||
+ | |||
+ | == Pertemuan Kedua == | ||
+ | |||
+ | Hubungan mata kuliah metode numerik bisa dihubungkan dengan tiga hal. 1. Metnum dan Strutkur 2. Metnum dan Propulsi 3. Metnum dan Agama (menghitung zakat). Dalam pertemuan kali ini juga membahas mengenai Dimensi. Terdapat tiga dimensi. Satu dimensi,dua dimensi dan tiga dimensi. Contoh perhitungan pada satu dimensi ialah Bernouli. Langkah langkah dalam menyelesaikan masalah di teknik ialah,masalah di teknik,model matematis,metode numerik,algoritma(flow chart),program komputer,hasil numerik,visual,interpretasi/analisa,solusi engineering (teknik). Contoh menyelesaikan masalah diteknik adalah kekuatan rangka badan kapal terhadap keadaan laut tertentu Tahap penyelesaiian masalah adalah Metode teoritis,metode percobaan dan yang terakhir adalah metode komputasi. Metode komputasi adalah pendekatan dengan ilmu matematika dan dasar dasar fisika. Selanjutnya adalah algoritma. Langkah langkah penyelesaian masalah terdapat satu set instruksi untuk dikerjakan komputer. Terdapat juga program komputer. Salah satu contoh program komputer sendiri adalah python. Setelah program dibuat dilakukan juga simulasi untuk menjalankan pemograman. Setelah itu terdapat hasil numerik yaitu hasil dari pemograman berupa angka angka. Selanjutnya interpretasi dapat berupa hasil visual seperti perbedaan warna yang dianalisa oleh engineer. Yang terakhir juga membahas mengenai pressure drop. Contohnya energy loss dalam pipa. Contohnya adalah minyak membutuhkan energi untuk mendorong minyak dari sumur ke tempat pengolahan. Ketika terdapat hambatan seperti belokan,energi (gaya dorong) akan berkurang sehingga terjadi energy loss/pressure drop. | ||
+ | |||
+ | == Tugas Pertemuan Kedua == | ||
+ | |||
+ | print("Tugas Metode Numerik \n Persamaan Linear Dua Variabel \n ax + by = c \n px + qy = r") | ||
+ | |||
+ | a = float(input("jika a =")) | ||
+ | b = float(input("jika b =")) | ||
+ | c = float(input("jika c =")) | ||
+ | p = float(input("jika p =")) | ||
+ | q = float(input("jika q =")) | ||
+ | r = float(input("jika r =")) | ||
+ | |||
+ | if a == p == 0 : | ||
+ | i = b - q | ||
+ | j = c - r | ||
+ | y = j / i | ||
+ | x = 0 | ||
+ | print("maka nilai y =",y,"maka nilai x =",x) | ||
+ | elif b == q == 0: | ||
+ | n2 = a - p | ||
+ | m2 = c - r | ||
+ | x = m2 / n2 | ||
+ | y = 0 | ||
+ | print("maka nilai y =", y, "maka nilai x =", x) | ||
+ | elif a == p : | ||
+ | k = b - q | ||
+ | l = c - r | ||
+ | y = k / l | ||
+ | x = (c - (b * y)) / a | ||
+ | print("maka nilai y =" , y , "maka nilai x =" , x) | ||
+ | elif a == 0: | ||
+ | y = c / b | ||
+ | x = (r - (q * y)) / p | ||
+ | print("maka nilai y =", y , "maka nilai x =", x) | ||
+ | elif p == 0: | ||
+ | y = r / q | ||
+ | x = (c - (b * y)) / a | ||
+ | print("maka nilai y =", y , "maka nilai x =", x) | ||
+ | elif b == 0 : | ||
+ | x = c/a | ||
+ | y = (r - (p*x))/ q | ||
+ | print("maka nilai y =", y ,"maka nilai x =", x) | ||
+ | elif q == 0 : | ||
+ | x = r/p | ||
+ | y = (c-(a*x))/b | ||
+ | print("maka nilai y =", y ,"maka nilai x =", x) | ||
+ | elif a!=p : | ||
+ | k2 = a*p | ||
+ | l2 = b*p | ||
+ | q2 = c*p | ||
+ | a2 = p*a | ||
+ | b2 = q*a | ||
+ | c2 = r*a | ||
+ | z2 = l2 - b2 | ||
+ | o2 = q2 - c2 | ||
+ | y = o2 / z2 | ||
+ | x = (q2 - (l2*y)) / k2 | ||
+ | print("maka nilai y =", y ,"maka nilai x =", x) | ||
+ | |||
+ | input() | ||
+ | |||
+ | persamaan, matriks, penyelesaian, bagaimana cara python meneyelesaikan masalah tersebut, menggunakan program, bahasa python, matriks eleminasi gauss, aljabar linear, iterasi, pola dalam matriks, buku metode numerik python, fungsi looping untuk menjalankan program yang ada di sistem dan menjalankannya terus, ada juga fungsi for, if ,elif,dll | ||
+ | |||
+ | == Pertemuan Ketiga == | ||
+ | |||
+ | Belajar python | ||
+ | |||
+ | Eliminasi Gauss- Jordan | ||
+ | |||
+ | Misalkan ax + by + cz = q\ dx + ey + fz = r\ gx + hy + iz = s\ | ||
+ | |||
+ | Dari contoh sebelumnya, kita dapat melihat penyelesaian masalah dengan menggunakan python. Metode-metode ini merupakan penyelesaian dari aljabar linear. Kita hanya menerjemahkannya dengan menggunakan bahasa python. Python hanya bisa mengerti tambah, kurang, kali, dan bagi. Kita harus bisa menemukan pola dalam metode penyelesaian pertidaksamaan linear. Tentu saja python tidak hanya bisa menyelesaikan permasalahan pertidaksamaan linear. Python bisa menyelesaikan berbagai permasalahan matematik, dengan catatan kita bisa menuliskannya dalam bahasa yang dimengerti oleh python. Pertidaksamaan yang sebelumnya pun bisa diselesaikan dengan berbagai metode. Metode lainnya untuk menyelesaikannya adalah dengan menggunakan elimination gauss. Contoh lainnya dalam penyelesaian masalah matematik dengan menggunakan python adalah limit. Dua contoh ini bisa dilihat dalam penjelasan selanjutnya. | ||
+ | |||
+ | Ini adalah metode lain dalam penyelesaian pertidaksamaan linear. Berikut adalah hasil coding untuk penyelesaian menggunakan elimination gauss | ||
+ | |||
+ | Ini adalah model dari metode elimination Gauss. Sekarang saya akan mencoba menjabarkan arti beberapa line dari metode ini. Line 1 dan 2 adalah perintah untuk menerapkan numpy dalam coding ini agar mempermudah berbagai bentuk matematik digunakan dalam coding ini. Array berguna untuk membuat data yang dinginkan dituliskan dalam format matrix. Semua kalimat yang diawali dengan tanda # hanya merupakan angka yang tidak ada hubungan dengan coding secara keseluruhan. Bagian itu bisa dihiraukan dalam coding ini. Line 4 sama line 10 adalah perintah untuk memunculkan matrix. Namun, dari coding tersebut, matrix a, b, dan c tidak berhubungan. Matrix yang muncul hanya lah matrix c dari line 8 karena perintah print hanya ditujukan pada c, sedangkan nilai c tidak dipengaruhi oleh a maupun b. Line 11 hanya perintah menuliskan apa yang ada di dalamnya. Line 12 berguna untuk mengetahui jumlah data dari b. Dalam kasus ini, nilai tersebut adalah 3 karena b memiliki 3 jenis data yang berbeda. Float dalam b tidak termasuk jenis data lain karena itu berguna untuk mendefinisikan nilai angka di dalamnya memiliki nilai 0 tambahan di belakangnya. Line 11 untuk memunculkan kalimat dan string dari n. String adalah Bahasa lain dari kalimat di dalam python. Line 14 adalah perintah untuk memunculkan zero matrix. Dengan nilai 3, berarti yang muncul adalah matrix 3 x 3. Ini digunakan untuk mendefinisikan bentuk matrix yang akan dibaca oleh perintah selanjutnya dalam line 15 sampai line 23. Line 15 sampai line 23 adalah proses eliminasi bagian dari baris yang harusnya 0. Karena kita memerlukan matrix segitiga atas untuk menyelesaikan dengan metode elimination gauss. For digunakan untuk menjalankan perintah hanya ketika argumen yang ada bersifat true. Proses yang berjalan adalah pengecekan setiap angka pada segitiga bawah dalam matrix tersebut agar nilainya menjadi 0. Line 21 juga menggunakan perintah for yang berarti hanya berjalan kalua argumennya bersifat true. Range disini memiliki 3 argumen. Argumen yang ketiga adalah interval dari setiap data yang ada dalam range tersebut. Line 22 juga merupakan pembagian nilai di koordinat data yang diberikan, tetapi ada penggunaan np.dot disana. Perintah np.dot sama seperti dot product dalam aljabar linear. Kemudian diakhiri pada line 23 dengan print (x[k]). | ||
+ | |||
+ | == Tugas 3 == | ||
+ | |||
+ | [https://youtu.be/_bBZj5RqSwc Tugas 3] | ||
+ | |||
+ | == 6 3 19 == | ||
+ | |||
+ | Konstruksi menggunakan python menganalisis kekuatan bangunan, dengan rumus rumus strukturnya. Dimana ada teganagn dan juga regangan. Sebuah benda ada nilai yield strengthnya agar dapat dibengkokkan atau mendapatkan regangan dan tegangan. | ||
+ | |||
+ | Matode numerik dan python, mempelajari lebih lanjut | ||
+ | |||
+ | == 15 05 19 == | ||
+ | |||
+ | Untuk UAS menggunakan Python, take home, bisa mencari sendiri untuk programnya. Kasusnya terkait dunia perkapalan seperti girder atau side hull. Penilaiannya diperkirakan 60% untuk UAS, bisa untuk mengkoding di python, menggukanan presentasi dari video. Kasusnya juga bebas untuk memogramanannya, untuk mencari dari modulus dalam kasusnya. | ||
+ | |||
+ | Menulis maksud dari perintah pada program yang diberikan oleh Asisten Dosen | ||
+ | |||
+ | import numpy as np from numpy import array | ||
+ | |||
+ | define the matrix [A] | ||
+ | A=array([[4, -2, 1], [-2, 4, -2], [1, -2, 4]], float) | ||
+ | |||
+ | define matrix b | ||
+ | b = array ([[11], [-16], [ 17]], float) | ||
+ | |||
+ | matrix nya menjadi | ||
+ | c=array([[4, -2, 1, 11], [-2, 4, -2, -16], [1, -2, 4, 17]], float) | ||
+ | |||
+ | print ('Matrix dari persamaan adalah : ') print (c) | ||
+ | |||
+ | define rows column | ||
+ | n=len(b) #number of rows and colomn, due too the matrix that is square matrix print ('n adalah ' + str(n)) x=np.zeros((3), float) for k in range (0,n-1): | ||
+ | |||
+ | for i in range (k+1,n): | ||
+ | if A[i,k] != 0.0 : #perintah jika sebuah baris yang akan di eliminasi, ada bagiannya yang tidak 0 maka akan di substract dengan pivot | ||
+ | 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): | ||
+ | |||
+ | x[k]=(b[k]-np.dot(A[k,k+1:n], x[k+1:n]))/A[k,k] | ||
+ | print (x[k]) | ||
+ | |||
+ | Maksud dari operator-operator program eliminasi Gauss : | ||
+ | |||
+ | 1. Numpy (sbg data library untuk science data) Numpy memiliki kegunaan untuk operasi vektor dan matriks. Fiturnya hampir sama dengan MATLAB dalam mengelola array dan array multidimensi. Numpy merupakan salah satu library yang digunakan oleh library lain seperti Scikit-Learn untuk keperluan analisis data. | ||
+ | |||
+ | 2. Array Array adalah sekumpulan variabel yang memiliki tipe data yang sama dan dinyatakan dengan nama yang sama. Array merupakan konsep yang penting dalam pemrogaman karena array memungkinkan untuk menyimpan data maupun referensi objek dalam jumlah banyak dan terindeks. | ||
+ | |||
+ | 3. Tanda pagar TAnda pagar sebagai bentuk komentar | ||
+ | |||
+ | 4. For dan In Sebagai perintah logika | ||
+ | |||
+ | 5. Print Fungsi printf() berfungsi untuk menampilkan keluaran data dan fungsi scanf() berguna untuk membaca masukkan data | ||
+ | |||
+ | FEM | ||
+ | |||
+ | import numpy as np | ||
+ | |||
+ | |||
+ | |||
+ | A1 = float(input("Masukkan Luas Permukaan Bidang Sambung Material 1 :")) | ||
+ | |||
+ | L1 = float(input("Masukkan Panjang Material 1 :")) | ||
+ | |||
+ | E1 = float(input("Masukkan Modulus Young Material 1 :")) | ||
+ | |||
+ | k1 = A1*E1/L1 | ||
+ | |||
+ | print ("k1 =", k1) | ||
+ | |||
+ | |||
+ | A2 = float(input("Masukkan Luas Permukaan Bidang Sambung Material 2 :")) | ||
+ | |||
+ | L2 = float(input("Masukkan Panjang Material 2 :")) | ||
+ | |||
+ | E2 = float(input("Masukkan Modulus Young Material 2 :")) | ||
+ | |||
+ | k2 = A2*E2/L2 | ||
+ | |||
+ | print ("k2 =", k2) | ||
+ | |||
+ | |||
+ | A3 = float(input("Masukkan Luas Permukaan Bidang Sambung Material 3 :")) | ||
+ | |||
+ | L3 = float(input("Masukkan Panjang Material 3 :")) | ||
+ | |||
+ | E3 = float(input("Masukkan Modulus Young Material 3 :")) | ||
+ | |||
+ | k3 = A3*E3/L3 | ||
+ | |||
+ | print ("k3 =", k3) | ||
+ | |||
+ | |||
+ | F2 = float(input("Masukkan Gaya di sebelah kiri (vektor) :")) | ||
+ | |||
+ | F3 = float(input("Masukkan Gaya di sebelah kanan (vektor) :")) | ||
+ | |||
+ | |||
+ | ka = k1+k2 | ||
+ | |||
+ | kb = k2+k3 | ||
+ | |||
+ | |||
+ | a = np.array([[ka,-k2],[-k2,kb]],float) | ||
+ | |||
+ | b = np.array([F2,F3],float) | ||
+ | |||
+ | c = np.array([[ka,-k2],[-k2,kb],[F2,F3]],float) | ||
+ | |||
+ | n = len(b) | ||
+ | |||
+ | x=np.zeros((3), float) | ||
+ | |||
+ | 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): | ||
+ | |||
+ | x[k]=(b[k]-np.dot(a[k,k+1:n], x[k+1:n]))/a[k,k] | ||
+ | x2 = x[0] | ||
+ | |||
+ | x3 = x[1] | ||
+ | |||
+ | |||
+ | F1 = x2*(-k1) | ||
+ | |||
+ | F4 = x3*(-k3) | ||
+ | |||
+ | |||
+ | print ("Kalkulasi deformasi antara material 1 dan 2 sebesar :", x2) | ||
+ | |||
+ | print ("Kalkulasi deformasi antara material 2 dan 3 sebesar :", x3) | ||
+ | |||
+ | print ("Gaya pada ujung kiri struktur sebesar :", F1) | ||
+ | |||
+ | print ("Gaya pada ujung kanan struktur sebesar :", F4) | ||
+ | |||
+ | == UAS Metode Numerik == | ||
+ | |||
+ | Coding Python | ||
+ | |||
+ | import math | ||
+ | def bracket(f,x1,h): | ||
+ | c = 1.618033989 | ||
+ | f1 = f(x1) | ||
+ | x2 = x1 + h | ||
+ | f2 = f(x2) | ||
+ | if f2 > f1: | ||
+ | h = -h | ||
+ | x2 = x1 + h | ||
+ | f2 = f(x2) | ||
+ | if f2 > f1: | ||
+ | return x2,x1 - h | ||
+ | for i in range (100): | ||
+ | h = c*h | ||
+ | x3 = x2 + h | ||
+ | f3 = f(x3) | ||
+ | if f3 > f2: | ||
+ | return x1,x3 | ||
+ | x1 = x2 | ||
+ | x2 = x3 | ||
+ | f1 = f2 | ||
+ | f2 = f3 | ||
+ | print ("Bracket did not find a minimum") | ||
+ | def search(f,a,b,tol=1.0e-9): | ||
+ | nIter = int(math.ceil(-2.078087*math.log(tol/abs(b-a)))) | ||
+ | R = 0.618033989 | ||
+ | C = 1.0 - R | ||
+ | x1 = R*a + C*b | ||
+ | x2 = C*a + R*b | ||
+ | f1 = f(x1) | ||
+ | f2 = f(x2) | ||
+ | for i in range(nIter): | ||
+ | if f1 > f2: | ||
+ | a = x1 | ||
+ | x1 = x2 | ||
+ | f1 = f2 | ||
+ | x2 = C*a + R*b | ||
+ | f2 = f(x2) | ||
+ | else: | ||
+ | b = x2 | ||
+ | x2 = x1 | ||
+ | f2 = f1 | ||
+ | x1 = R*a + C*b | ||
+ | f1 = f(x1) | ||
+ | if f1 < f2: | ||
+ | return x1,f1 | ||
+ | else: | ||
+ | return x2,f2 | ||
+ | print("Aplikasi Optimasi Section Modulus L Stiffner") | ||
+ | print("Kondisi Terikat : lebar alas > lebar atas > lebar tengah") | ||
+ | b1 = eval(input("Nilai lebar bangun alas :")) | ||
+ | b3 = eval(input("Nilai lebar bangun atas :")) | ||
+ | b2 = eval(input("Nilai lebar bangun tengah :")) | ||
+ | H = eval(input("Nilai tinggi T stiffner :")) | ||
+ | def f(x): | ||
+ | A1 = b1*(H-x)/2 | ||
+ | A2 = b2*x | ||
+ | A3 = b3*(H-x)/2 | ||
+ | d1 = 1/2*(H-x)/2 | ||
+ | d2 = 1/2*x+(H-x)/2 | ||
+ | d3 = 3/4*(H-x)+x | ||
+ | I1 = 1/12*b1*((H-x)/2)**3 | ||
+ | I2 = 1/12*b2*x**3 | ||
+ | I3 = 1/12*b3*((H-x)/2)**3 | ||
+ | dc = H-(d1*A1+d2*A2+d3*A3)/(A1+A2+A3) | ||
+ | I = I1-A1*(d1-dc)**2+I2-A2*(d2-dc)**2+I3-A3*(d3-dc)**2 | ||
+ | Z = I/dc | ||
+ | return Z | ||
+ | xStart = 0.0 | ||
+ | h = 1.0 | ||
+ | x1,x2 = bracket(f,xStart,h) | ||
+ | y,fMin = search(f,x1,x2) | ||
+ | print("optimal sectional area =",-fMin) | ||
+ | print("sectional area awal" , f(H)) | ||
+ | A = -fMin/f(H)*100 | ||
+ | print ("efisiensi",A,"%") | ||
+ | input ("\nPress return to exit") | ||
+ | |||
+ | link youtube uas metode numerik [https://youtu.be/nXouKAnPTIM] | ||
+ | |||
+ | link ppt dan python [https://drive.google.com/open?id=1rR34nzwZY7kOPw_5Gtp69SHlrJPkgVvj] |
Latest revision as of 23:58, 29 May 2019
Contents
Pertemuan Pertama
Pada pertemuan pertama mata kuliah Metode Numerik, Bapak Dr. Ahmad Indra atau Aki DAI memperkenalkan dirinya, serta hadir juga Bapak Dr. Gunawan. Lalu dibahas tentang tujuan perkuliahan metode numerik, yaitu 1. memahami konsep/ prinsip & mampu menerapkannya, 2. menjadi orang yang lebih mengenal siapa dirinya. Untuk memenuhi atau mencapai tujuan perkuliahan itu diperlukan sebuah prasyarat, yaitu adalah Berakal. Dimana berakal yang dimaksud disini adalah berawal dari kata akal dan memiliki makna mempunyai akal, di mana akal ini mempunyai pengertian sebagai tali pengikat dari ilmu ilmu yang kita terima untuk digunakan. Akal adalah tali yang mengikat pikiran kita agar tetap pada koridor yang manusiawi. Akal ini juga menjadi pengikat antara ilmu yang kita terima dengan Tuhan YME, Allah SWT. Dalam Metode Numerik ini hal yang dipelajari adalah, 1. -Algoritma -Flowchart -Pemograman, EES, C# -Metode Interative, 2. Penyelesaian Persamaan-persamaan Aljabar Simultan, 3. Differensial & Integral, 4. Optimasi, 5. Studi Kasus. Pada mata kuliah Metode Numerik ini hanya Tuhan YME, Allah SWT. yang tahu, yang memberikan kita ilmu, Wallahu'alam bissowab. Persamaan aljabar yang dipakai dalam dunia teknik tidak semudah dalam pelajaran SMA atau pelajaran Aljabar Linear, banyak persamaan yang rumit dengan angka yang banyak, sehingga membutuhkan bantuan komputer untuk menghitung persamaannya. Pertemuan tersebut juga membahas satu contoh soal, yaitu lim x->1 x^2-1/x-1 , atau A=x^2-1/x-1 jika x=1 , mengapa jawabannya 2, mengapa jika x=1 dimasukkan ke persamaan tersebut hasilnya berbeda menjadi 0/0 mengapa disebut tidak terdefinsi, mengapa disebut infinite atau tidak terbatas, konsep dari infinite itu sendiri, berasal dari kata finite yang artinya terbatas. Selanjutnya juga dibahas mengenai tegangan atau stress tensor, di mana pembagian atau perataan beban pada suatu benda, atau contoh sebuah balok dari A ke B. Untuk referensi mata kuliah Metode Numerik ini bisa diambil dari 1. Advance Engineering Mathematics, oleh Edwin Kryzig, bisa juga dari referensi lainnya.
Pertemuan Kedua
Hubungan mata kuliah metode numerik bisa dihubungkan dengan tiga hal. 1. Metnum dan Strutkur 2. Metnum dan Propulsi 3. Metnum dan Agama (menghitung zakat). Dalam pertemuan kali ini juga membahas mengenai Dimensi. Terdapat tiga dimensi. Satu dimensi,dua dimensi dan tiga dimensi. Contoh perhitungan pada satu dimensi ialah Bernouli. Langkah langkah dalam menyelesaikan masalah di teknik ialah,masalah di teknik,model matematis,metode numerik,algoritma(flow chart),program komputer,hasil numerik,visual,interpretasi/analisa,solusi engineering (teknik). Contoh menyelesaikan masalah diteknik adalah kekuatan rangka badan kapal terhadap keadaan laut tertentu Tahap penyelesaiian masalah adalah Metode teoritis,metode percobaan dan yang terakhir adalah metode komputasi. Metode komputasi adalah pendekatan dengan ilmu matematika dan dasar dasar fisika. Selanjutnya adalah algoritma. Langkah langkah penyelesaian masalah terdapat satu set instruksi untuk dikerjakan komputer. Terdapat juga program komputer. Salah satu contoh program komputer sendiri adalah python. Setelah program dibuat dilakukan juga simulasi untuk menjalankan pemograman. Setelah itu terdapat hasil numerik yaitu hasil dari pemograman berupa angka angka. Selanjutnya interpretasi dapat berupa hasil visual seperti perbedaan warna yang dianalisa oleh engineer. Yang terakhir juga membahas mengenai pressure drop. Contohnya energy loss dalam pipa. Contohnya adalah minyak membutuhkan energi untuk mendorong minyak dari sumur ke tempat pengolahan. Ketika terdapat hambatan seperti belokan,energi (gaya dorong) akan berkurang sehingga terjadi energy loss/pressure drop.
Tugas Pertemuan Kedua
print("Tugas Metode Numerik \n Persamaan Linear Dua Variabel \n ax + by = c \n px + qy = r")
a = float(input("jika a =")) b = float(input("jika b =")) c = float(input("jika c =")) p = float(input("jika p =")) q = float(input("jika q =")) r = float(input("jika r ="))
if a == p == 0 :
i = b - q j = c - r y = j / i x = 0 print("maka nilai y =",y,"maka nilai x =",x)
elif b == q == 0:
n2 = a - p m2 = c - r x = m2 / n2 y = 0 print("maka nilai y =", y, "maka nilai x =", x)
elif a == p :
k = b - q l = c - r y = k / l x = (c - (b * y)) / a print("maka nilai y =" , y , "maka nilai x =" , x)
elif a == 0:
y = c / b x = (r - (q * y)) / p print("maka nilai y =", y , "maka nilai x =", x)
elif p == 0:
y = r / q x = (c - (b * y)) / a print("maka nilai y =", y , "maka nilai x =", x)
elif b == 0 :
x = c/a y = (r - (p*x))/ q print("maka nilai y =", y ,"maka nilai x =", x)
elif q == 0 :
x = r/p y = (c-(a*x))/b print("maka nilai y =", y ,"maka nilai x =", x)
elif a!=p :
k2 = a*p l2 = b*p q2 = c*p a2 = p*a b2 = q*a c2 = r*a z2 = l2 - b2 o2 = q2 - c2 y = o2 / z2 x = (q2 - (l2*y)) / k2 print("maka nilai y =", y ,"maka nilai x =", x)
input()
persamaan, matriks, penyelesaian, bagaimana cara python meneyelesaikan masalah tersebut, menggunakan program, bahasa python, matriks eleminasi gauss, aljabar linear, iterasi, pola dalam matriks, buku metode numerik python, fungsi looping untuk menjalankan program yang ada di sistem dan menjalankannya terus, ada juga fungsi for, if ,elif,dll
Pertemuan Ketiga
Belajar python
Eliminasi Gauss- Jordan
Misalkan ax + by + cz = q\ dx + ey + fz = r\ gx + hy + iz = s\
Dari contoh sebelumnya, kita dapat melihat penyelesaian masalah dengan menggunakan python. Metode-metode ini merupakan penyelesaian dari aljabar linear. Kita hanya menerjemahkannya dengan menggunakan bahasa python. Python hanya bisa mengerti tambah, kurang, kali, dan bagi. Kita harus bisa menemukan pola dalam metode penyelesaian pertidaksamaan linear. Tentu saja python tidak hanya bisa menyelesaikan permasalahan pertidaksamaan linear. Python bisa menyelesaikan berbagai permasalahan matematik, dengan catatan kita bisa menuliskannya dalam bahasa yang dimengerti oleh python. Pertidaksamaan yang sebelumnya pun bisa diselesaikan dengan berbagai metode. Metode lainnya untuk menyelesaikannya adalah dengan menggunakan elimination gauss. Contoh lainnya dalam penyelesaian masalah matematik dengan menggunakan python adalah limit. Dua contoh ini bisa dilihat dalam penjelasan selanjutnya.
Ini adalah metode lain dalam penyelesaian pertidaksamaan linear. Berikut adalah hasil coding untuk penyelesaian menggunakan elimination gauss
Ini adalah model dari metode elimination Gauss. Sekarang saya akan mencoba menjabarkan arti beberapa line dari metode ini. Line 1 dan 2 adalah perintah untuk menerapkan numpy dalam coding ini agar mempermudah berbagai bentuk matematik digunakan dalam coding ini. Array berguna untuk membuat data yang dinginkan dituliskan dalam format matrix. Semua kalimat yang diawali dengan tanda # hanya merupakan angka yang tidak ada hubungan dengan coding secara keseluruhan. Bagian itu bisa dihiraukan dalam coding ini. Line 4 sama line 10 adalah perintah untuk memunculkan matrix. Namun, dari coding tersebut, matrix a, b, dan c tidak berhubungan. Matrix yang muncul hanya lah matrix c dari line 8 karena perintah print hanya ditujukan pada c, sedangkan nilai c tidak dipengaruhi oleh a maupun b. Line 11 hanya perintah menuliskan apa yang ada di dalamnya. Line 12 berguna untuk mengetahui jumlah data dari b. Dalam kasus ini, nilai tersebut adalah 3 karena b memiliki 3 jenis data yang berbeda. Float dalam b tidak termasuk jenis data lain karena itu berguna untuk mendefinisikan nilai angka di dalamnya memiliki nilai 0 tambahan di belakangnya. Line 11 untuk memunculkan kalimat dan string dari n. String adalah Bahasa lain dari kalimat di dalam python. Line 14 adalah perintah untuk memunculkan zero matrix. Dengan nilai 3, berarti yang muncul adalah matrix 3 x 3. Ini digunakan untuk mendefinisikan bentuk matrix yang akan dibaca oleh perintah selanjutnya dalam line 15 sampai line 23. Line 15 sampai line 23 adalah proses eliminasi bagian dari baris yang harusnya 0. Karena kita memerlukan matrix segitiga atas untuk menyelesaikan dengan metode elimination gauss. For digunakan untuk menjalankan perintah hanya ketika argumen yang ada bersifat true. Proses yang berjalan adalah pengecekan setiap angka pada segitiga bawah dalam matrix tersebut agar nilainya menjadi 0. Line 21 juga menggunakan perintah for yang berarti hanya berjalan kalua argumennya bersifat true. Range disini memiliki 3 argumen. Argumen yang ketiga adalah interval dari setiap data yang ada dalam range tersebut. Line 22 juga merupakan pembagian nilai di koordinat data yang diberikan, tetapi ada penggunaan np.dot disana. Perintah np.dot sama seperti dot product dalam aljabar linear. Kemudian diakhiri pada line 23 dengan print (x[k]).
Tugas 3
6 3 19
Konstruksi menggunakan python menganalisis kekuatan bangunan, dengan rumus rumus strukturnya. Dimana ada teganagn dan juga regangan. Sebuah benda ada nilai yield strengthnya agar dapat dibengkokkan atau mendapatkan regangan dan tegangan.
Matode numerik dan python, mempelajari lebih lanjut
15 05 19
Untuk UAS menggunakan Python, take home, bisa mencari sendiri untuk programnya. Kasusnya terkait dunia perkapalan seperti girder atau side hull. Penilaiannya diperkirakan 60% untuk UAS, bisa untuk mengkoding di python, menggukanan presentasi dari video. Kasusnya juga bebas untuk memogramanannya, untuk mencari dari modulus dalam kasusnya.
Menulis maksud dari perintah pada program yang diberikan oleh Asisten Dosen
import numpy as np from numpy import array
define the matrix [A] A=array([[4, -2, 1], [-2, 4, -2], [1, -2, 4]], float)
define matrix b b = array ([[11], [-16], [ 17]], float)
matrix nya menjadi c=array([[4, -2, 1, 11], [-2, 4, -2, -16], [1, -2, 4, 17]], float)
print ('Matrix dari persamaan adalah : ') print (c)
define rows column n=len(b) #number of rows and colomn, due too the matrix that is square matrix print ('n adalah ' + str(n)) x=np.zeros((3), float) for k in range (0,n-1):
for i in range (k+1,n): if A[i,k] != 0.0 : #perintah jika sebuah baris yang akan di eliminasi, ada bagiannya yang tidak 0 maka akan di substract dengan pivot 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):
x[k]=(b[k]-np.dot(A[k,k+1:n], x[k+1:n]))/A[k,k] print (x[k])
Maksud dari operator-operator program eliminasi Gauss :
1. Numpy (sbg data library untuk science data) Numpy memiliki kegunaan untuk operasi vektor dan matriks. Fiturnya hampir sama dengan MATLAB dalam mengelola array dan array multidimensi. Numpy merupakan salah satu library yang digunakan oleh library lain seperti Scikit-Learn untuk keperluan analisis data.
2. Array Array adalah sekumpulan variabel yang memiliki tipe data yang sama dan dinyatakan dengan nama yang sama. Array merupakan konsep yang penting dalam pemrogaman karena array memungkinkan untuk menyimpan data maupun referensi objek dalam jumlah banyak dan terindeks.
3. Tanda pagar TAnda pagar sebagai bentuk komentar
4. For dan In Sebagai perintah logika
5. Print Fungsi printf() berfungsi untuk menampilkan keluaran data dan fungsi scanf() berguna untuk membaca masukkan data
FEM
import numpy as np
A1 = float(input("Masukkan Luas Permukaan Bidang Sambung Material 1 :"))
L1 = float(input("Masukkan Panjang Material 1 :"))
E1 = float(input("Masukkan Modulus Young Material 1 :"))
k1 = A1*E1/L1
print ("k1 =", k1)
A2 = float(input("Masukkan Luas Permukaan Bidang Sambung Material 2 :"))
L2 = float(input("Masukkan Panjang Material 2 :"))
E2 = float(input("Masukkan Modulus Young Material 2 :"))
k2 = A2*E2/L2
print ("k2 =", k2)
A3 = float(input("Masukkan Luas Permukaan Bidang Sambung Material 3 :"))
L3 = float(input("Masukkan Panjang Material 3 :"))
E3 = float(input("Masukkan Modulus Young Material 3 :"))
k3 = A3*E3/L3
print ("k3 =", k3)
F2 = float(input("Masukkan Gaya di sebelah kiri (vektor) :"))
F3 = float(input("Masukkan Gaya di sebelah kanan (vektor) :"))
ka = k1+k2
kb = k2+k3
a = np.array([[ka,-k2],[-k2,kb]],float)
b = np.array([F2,F3],float)
c = np.array([[ka,-k2],[-k2,kb],[F2,F3]],float)
n = len(b)
x=np.zeros((3), float)
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):
x[k]=(b[k]-np.dot(a[k,k+1:n], x[k+1:n]))/a[k,k]
x2 = x[0]
x3 = x[1]
F1 = x2*(-k1)
F4 = x3*(-k3)
print ("Kalkulasi deformasi antara material 1 dan 2 sebesar :", x2)
print ("Kalkulasi deformasi antara material 2 dan 3 sebesar :", x3)
print ("Gaya pada ujung kiri struktur sebesar :", F1)
print ("Gaya pada ujung kanan struktur sebesar :", F4)
UAS Metode Numerik
Coding Python
import math def bracket(f,x1,h):
c = 1.618033989 f1 = f(x1) x2 = x1 + h f2 = f(x2) if f2 > f1: h = -h x2 = x1 + h f2 = f(x2) if f2 > f1: return x2,x1 - h for i in range (100): h = c*h x3 = x2 + h f3 = f(x3) if f3 > f2: return x1,x3 x1 = x2 x2 = x3 f1 = f2 f2 = f3 print ("Bracket did not find a minimum")
def search(f,a,b,tol=1.0e-9):
nIter = int(math.ceil(-2.078087*math.log(tol/abs(b-a)))) R = 0.618033989 C = 1.0 - R x1 = R*a + C*b x2 = C*a + R*b f1 = f(x1) f2 = f(x2) for i in range(nIter): if f1 > f2: a = x1 x1 = x2 f1 = f2 x2 = C*a + R*b f2 = f(x2) else: b = x2 x2 = x1 f2 = f1 x1 = R*a + C*b f1 = f(x1) if f1 < f2: return x1,f1 else: return x2,f2
print("Aplikasi Optimasi Section Modulus L Stiffner") print("Kondisi Terikat : lebar alas > lebar atas > lebar tengah") b1 = eval(input("Nilai lebar bangun alas :")) b3 = eval(input("Nilai lebar bangun atas :")) b2 = eval(input("Nilai lebar bangun tengah :")) H = eval(input("Nilai tinggi T stiffner :")) def f(x):
A1 = b1*(H-x)/2 A2 = b2*x A3 = b3*(H-x)/2 d1 = 1/2*(H-x)/2 d2 = 1/2*x+(H-x)/2 d3 = 3/4*(H-x)+x I1 = 1/12*b1*((H-x)/2)**3 I2 = 1/12*b2*x**3 I3 = 1/12*b3*((H-x)/2)**3 dc = H-(d1*A1+d2*A2+d3*A3)/(A1+A2+A3) I = I1-A1*(d1-dc)**2+I2-A2*(d2-dc)**2+I3-A3*(d3-dc)**2 Z = I/dc return Z
xStart = 0.0 h = 1.0 x1,x2 = bracket(f,xStart,h) y,fMin = search(f,x1,x2) print("optimal sectional area =",-fMin) print("sectional area awal" , f(H)) A = -fMin/f(H)*100 print ("efisiensi",A,"%") input ("\nPress return to exit")
link youtube uas metode numerik [1]
link ppt dan python [2]