Difference between revisions of "Geraldo Andreas Sitorus Pane"
(Created page with "== DATA DIRI == Nama : Geraldo Andreas Sitorus Pane NPM : 1706022962 Jurusan : Teknik Mesin Angkatan: 2017 == BIOGRAFI == Perkenalkan nama saya Geraldo Andreas Si...") |
(→Data Diri) |
||
(73 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | == | + | == Data Diri == |
− | Nama : Geraldo | + | |
+ | Nama : Geraldo A. S. | ||
NPM : 1706022962 | NPM : 1706022962 | ||
− | Jurusan : Teknik Mesin | + | Jurusan : Teknik Mesin S1 Paralel |
Angkatan: 2017 | Angkatan: 2017 | ||
− | == | + | == Biografi == |
− | Perkenalkan nama saya Geraldo Andreas Sitorus | + | Perkenalkan nama saya Geraldo Andreas Sitorus. Memulai pendidikan SD di SDN Cilandak Barat 04 Pagi lalu melanjutkan pendidikan selanjutnya di SMP Negeri 68 Jakarta kemudian bersekolah di SMA Negeri 34 Jakarta, dan sekarang masih menjadi mahasiswa di Universitas Indonesia dengan program studi Teknik Mesin. |
− | == | + | == Riwayat Diri == |
− | + | Pengalaman Diri di Fakultas Teknik | |
Line 28: | Line 29: | ||
- Badan Pengurus Sosma IMM FTUI (2018) | - Badan Pengurus Sosma IMM FTUI (2018) | ||
− | - Pergerakan MADK | + | - Pergerakan MADK DTM (2018) |
- Volunteer Kakak Asuh DTM (2018) | - Volunteer Kakak Asuh DTM (2018) | ||
Line 37: | Line 38: | ||
- Steering Committee SSBM (2019) | - Steering Committee SSBM (2019) | ||
+ | |||
+ | == Hiburan Minggu 1 == | ||
+ | |||
+ | Bahasa pemograman adalah bahasa yang dipakai dalam perangkat pintar elektronik guna sebagai acuan dasar komunikasi perangkat dalam menjalankan operasionalnya dalam bentuk ''coding''. Bahasa pemograman yang pernah saya baca adalah Python, namun yang saya baca hanya pengenalan dasar dari Python tersebut. | ||
+ | |||
+ | Python adalah bahasa pemrograman interpretatif multiguna yang memakai filosofi perancangan dengan fokus kepada tingkat keterbacaan kode. Sebagai bahasa pemrograman, Python menggabungkan kemampuan, kapabilitas dan sintaksis kode serta fungsi pustaka yang berkualitas tinggi. | ||
+ | |||
+ | Fitur dalam bahasa pemograman Python secara general : | ||
+ | |||
+ | 1. Berorientasi kepada objek. | ||
+ | |||
+ | 2. Relatif mudah dikembangkan dengan menciptakan modul-modul baru. Asalnya Modul tersebut merupakan kombinasi dari modul lama yang di integrasi. | ||
+ | |||
+ | 3. Memiliki tata bahasa yang relatif mudah dipelajari oleh manusia. | ||
+ | |||
+ | 4. Didukung sistem pengelolaan memori secara otomatis sehingga membutuhkan kinerja saat ''coding''. | ||
+ | |||
+ | 5. Python juga memiliki banyak fasilitas pendukung sehingga ketika mengoperasikannya, terhitung mudah dan cepat. | ||
+ | |||
+ | == Hiburan Minggu 2 == | ||
+ | |||
+ | Pada minggu ke-2 kelas Metode Numerik, membahas apa itu angka eksak dan angka numerik?, lintas apakah bagaimana eksistensinya?, angka eksak mulai dari 0,1,2,3,4,5...dst itu tentu ada, namun itu hanya sebuah perjanjian / kesepakatan pembatasan nilai untuk berkomunikasi verbal agar memudahkan kita manusia untuk bertukar informasi dalam kehidupan nyata. Pada dasarnya komputer hanya mengenal 2 angka, yaitu "0" dan "1", dimana 0 yang berarti tidak bernilai dan 1 yang artinya bernilai, seperti layaknya iya dan tidak. Komputer bekerja berdasarkan perintah, dan perintah itu berisi kombinasi rangkaian angka 0 dan 1 yang menjadi modul dasar komputer untuk bekerja. Loncatan-loncatan elektron listrik yang biasa disebut ''pulse'' merupakan cara komputer bekerja mengirim sinyal untuk melakukan perintah operasional. | ||
+ | |||
+ | Angka eksak merupakan hasil pendekatan perhitungan dari angka numerik, karena pada dasarnya secara keseluruhan nilai yang sebenarnya didapat secara akurat hanya bisa di hitung dengan angka numerik. | ||
+ | |||
+ | Berikut merupakan soal yang diberikan. | ||
+ | |||
+ | [[File:29244.png]] | ||
+ | |||
+ | |||
+ | Dalam mengerjakan soal diatas dengan x=1 tidak bisa mendapatkan hasil yang benar dikarenakan 0/0. Oleh sebab itu, saya gunakan limit pendekatan x=1. Saya menambahkan fungsi hingga perbedaan 1/999999 yang mendekati angka nol, sehingga hasil pendekatan dari perhitungan tidak menjauhi hasil sebenarnya dalam eksak. | ||
+ | |||
+ | |||
+ | [[File:Metode Numerik1.jpg]] | ||
+ | |||
+ | Jadi hasilnya secara numerik mendekati angka 2, dan dapat dianggap secara eksak hasilnya adalah 2. Namun, dosen kami Bapak Dr. Ir. Ahmad Indra Siswantara menitip pesan agar tidak lupa diri terhadap yang punya kehidupan kita, walau kita sudah sejauh ini mengerti akan teknologi. Ditengah maraknya perkembangan teknologi yang pesat, kadang kita melunturkan sisi lain dari kehidupan kita, yaitu agama. Dimana hubungan kita pribadi dengan Tuhan YME merupakan dasar acuan kehidupan kita sehari-hari. | ||
+ | |||
+ | == Hiburan Minggu 3 == | ||
+ | |||
+ | [[File:80092.png]] | ||
+ | |||
+ | Diberikan persamaan seperti diatas, carilah nilai dari x pada persamaan tersebut! | ||
+ | |||
+ | [[File:Hiburan 3.JPG]] | ||
+ | |||
+ | Python Script : | ||
+ | |||
+ | def f(x): | ||
+ | return 8*x**3 + 2*x**2 + x - 1 | ||
+ | def fprime(x): | ||
+ | return 24*x**2 + 4*x +1 | ||
+ | |||
+ | ep = 0.001 | ||
+ | |||
+ | gu = -10 | ||
+ | i = 0 | ||
+ | |||
+ | print('Diberikan fungsi sebagai berikut:' | ||
+ | '8*x**3 + 2*x**2 + x - 1 = 0' | ||
+ | 'Carilah nilai x dari persamaan diatas') | ||
+ | |||
+ | print('Hasil perhitungan oleh Python 3.7') | ||
+ | |||
+ | while abs(f(gu)) >= ep: | ||
+ | gu = gu - (f(gu)/fprime(gu)) | ||
+ | i += 1 | ||
+ | print(' ' + str(i) + ' ' + str(round(gu,7))) | ||
+ | |||
+ | print('Hasil pendekatannya adalah ' + str(round(gu,2)) + | ||
+ | '| gagal untuk menghitung: ' + str(i) + ' kali' ) | ||
+ | |||
+ | == Hiburan Minggu 4 == | ||
+ | |||
+ | Pada hiburan minggu ke-4 & ke-5, kami diajarkan untuk menggunakan matriks dalam menyelesaikan suatu persoalan yang menggunakan persamaan. Dikerjakan dalam Python dengan memasukan modul pengerjaan. | ||
+ | |||
+ | [[File:PR sesi 4.jpg]] | ||
+ | |||
+ | Secara teori, digunakan hukum kontinuitas massa sehingga didapati rumus Q*p=Q*p dan didapatakan 4 persamaan dengan 4 variabel | ||
+ | |||
+ | 6C1 - 4C2 = 50 | ||
+ | |||
+ | -2C1 - 1C3 + 4C4 = 50 | ||
+ | |||
+ | 7C2 - 3C3 - 4C4 = 0 | ||
+ | |||
+ | -4C1 + 4C3 = 0 | ||
+ | |||
+ | Kemudian, kita munculkan seakan-akan ada variabel lain, walau bernilai 0 | ||
+ | |||
+ | 6C1 - 4C2 + 0C3 + 0C4 = 50 | ||
+ | |||
+ | -2C1 + 0C2 - 1C3 + 4C4 = 50 | ||
+ | |||
+ | 0C1 + 7C2 - 3C3 - 4C4 = 0 | ||
+ | |||
+ | -4C1 + 0C2 + 4C3 + 0C4 = 0 | ||
+ | |||
+ | Didapat sususan matriksnya seperti dibawah : | ||
+ | |||
+ | A = 6 -4 0 0 B = 50 | ||
+ | -2 0 -1 4 50 | ||
+ | 0 7 -3 -4 0 | ||
+ | -4 0 4 0 0 | ||
+ | |||
+ | Lalu, matriks ini dimasukkan kedalam untuk dicari hasil perhitungannya | ||
+ | |||
+ | [[File:Capture.JPG]] | ||
+ | |||
+ | Python Script : | ||
+ | |||
+ | import numpy as np | ||
+ | |||
+ | #1. define matrix | ||
+ | |||
+ | A=np.array ([[6,-4,0,0], [-2,0,-1,4], [0,7,-3,-4], [-4,0,4,0]],float) | ||
+ | B=np.array ([50,50,0,0],float) | ||
+ | |||
+ | n=len(A) | ||
+ | |||
+ | |||
+ | #2. eliminasi gauss | ||
+ | |||
+ | for k in range (0,n-1): | ||
+ | for i in range (k+1, n): | ||
+ | if A[i,k]!=0 : | ||
+ | lam= A[i,k]/A[k,k] | ||
+ | A[i,k:n]=A[i, k:n]-(A[k,k:n]*lam) | ||
+ | B[i]=B[i]-(B[k]*lam) | ||
+ | |||
+ | print ('matrix A :', '\n', A) | ||
+ | print ('matrix B :', '\n', B) | ||
+ | |||
+ | #3. back substitution | ||
+ | x=np.zeros(n,float) | ||
+ | for m in range (n-1, -1, -1): | ||
+ | x[m]=(B[m]-np.dot(A[m, m+1:n], x[m+1:n]))/A[m,m] | ||
+ | print ('nilai X', m+1, '=', x[m]) | ||
+ | |||
+ | |||
+ | == Hiburan Minggu 5 == | ||
+ | |||
+ | Pada minggu kelima, kami diajarkan cara penggunaan turunan menggunakan Python dengan Metode Runge Kutta orde 4, kali ini diajarkan dengan menggunakan excel terlebih dahulu untuk mempermudah pemahaman terkait pendekatan metode ini terhadap turunan yang berlaku, berikut merupakan penjelasan singkat dari metode ini: | ||
+ | |||
+ | 1. Metode Runge-Kutta adalah alternatif lain dari metode deret Taylor yang tidak membutuhkan perhitungan turunan. | ||
+ | |||
+ | 2. Metode ini menawarkan penyelesaian persamaan diferensial dengan pertumbuhan ''truncation error'' yang jauh lebih kecil. | ||
+ | |||
+ | 3. ''Truncation error'' adalah kesalahan / penyimpangan nilai yang timbul akibat pemotongan suku pada suatu deret atau rumus dalam approksimasi. | ||
+ | |||
+ | [[File:Runge-kutta1.JPG]] | ||
+ | |||
+ | |||
+ | DIberikan contoh soal seperti dibawah ini: | ||
+ | |||
+ | |||
+ | [[File:RungeKuts2.png]] | ||
+ | |||
+ | Jawaban dalam excel yang telah dibuat: | ||
+ | |||
+ | |||
+ | [[File:RungeKuts3.JPG]] | ||
+ | |||
+ | == Hiburan Minggu 6 (Quis) == | ||
+ | |||
+ | Pada hiburan Minggu ke-6 kami dikelas diminta untuk mengerjakan quis dengan soal pertama No.6 Halaman 55 & soal kedua No.1 Halaman 263 dari buku Jaan Kiusalaas - Numerical Methods in Engineering. | ||
+ | |||
+ | Berikut jawaban dari tiap kuis : | ||
+ | |||
+ | '''Nomor 1 (Soal & Jawaban)''' | ||
+ | |||
+ | [[File:Soal Quis 1.JPG]] | ||
+ | |||
+ | [[File:Quiz Soal 1.JPG]] | ||
+ | |||
+ | Python Script : | ||
+ | import numpy as np | ||
+ | |||
+ | #1. define matrix | ||
+ | |||
+ | A=np.array ([[1,2,0,-2,0], [0,1,0,2,-1], [0,0,2,1,2], [0,0,0,-1,1], [0,1,-1,1,-1]],float) | ||
+ | B=np.array ([1,1,-4,-2,-1],float) | ||
+ | |||
+ | n=len(A) | ||
+ | |||
+ | |||
+ | #2. eliminasi gauss | ||
+ | |||
+ | for k in range (0,n-1): | ||
+ | for i in range (k+1, n): | ||
+ | if A[i,k]!=0 : | ||
+ | lam= A[i,k]/A[k,k] | ||
+ | A[i,k:n]=A[i, k:n]-(A[k,k:n]*lam) | ||
+ | B[i]=B[i]-(B[k]*lam) | ||
+ | |||
+ | print ('matrix A :', '\n', A) | ||
+ | print ('matrix B :', '\n', B) | ||
+ | |||
+ | #3. back substitution | ||
+ | x=np.zeros(n,float) | ||
+ | for m in range (n-1, -1, -1): | ||
+ | x[m]=(B[m]-np.dot(A[m, m+1:n], x[m+1:n]))/A[m,m] | ||
+ | print ('nilai X', m+1, '=', x[m]) | ||
+ | |||
+ | |||
+ | '''Nomor 2 (Soal dan Jawaban)''' | ||
+ | |||
+ | [[File:Soal Quis 2.JPG]] | ||
+ | |||
+ | [[File:Quiz Soal 2.JPG]] | ||
+ | |||
+ | Python Script : | ||
+ | import numpy as np | ||
+ | |||
+ | |||
+ | def diff_y (x,y): | ||
+ | fungsi = x**2 - 4*y | ||
+ | return (fungsi) | ||
+ | x = 0 | ||
+ | y = 1 | ||
+ | h = 0.01 | ||
+ | step_size = np.arange (0,0.03,h) | ||
+ | |||
+ | for t in step_size: | ||
+ | k1 = diff_y (x,y) | ||
+ | k2 = diff_y ((x+0.5*h), (y+0.5*k1*h)) | ||
+ | |||
+ | y = y + k1*h | ||
+ | |||
+ | print ('maka y(0.03) adalah', y) | ||
+ | |||
+ | == Ujian Tengah Semester == | ||
+ | |||
+ | '''Jawaban Soal Pertama''' | ||
+ | |||
+ | [[File:Jawaban UTS Nomor 1.JPG]] | ||
+ | |||
+ | |||
+ | '''Script Python Jawaban No.1''' | ||
+ | |||
+ | import math | ||
+ | |||
+ | #1. Pertanyaan untuk fungsi | ||
+ | print('Diberikan fungsi sin teta = m4/(m1+m2+m3)') | ||
+ | print('Nilai m1?') | ||
+ | m1=eval(input()) | ||
+ | print('Nilai m2?') | ||
+ | m2=eval(input()) | ||
+ | print('Nilai m3?') | ||
+ | |||
+ | m3=eval(input()) | ||
+ | print('Nilai m4?') | ||
+ | m4=eval(input()) | ||
+ | |||
+ | #2. Menentukan nilai a | ||
+ | a = 0 | ||
+ | |||
+ | #3. Menentukan fungsi sin teta | ||
+ | x = m4 | ||
+ | y = (m1+m2+m3) | ||
+ | alfa = m4 / (m1+m2+m3) | ||
+ | |||
+ | #4. Mendapatkan hasil sin teta | ||
+ | print('Jadi, hasil sin teta adalah', alfa) | ||
+ | |||
+ | sudutalfa=math.asin(alfa) | ||
+ | sudutalfa2=math.degrees(sudutalfa) | ||
+ | print('jadi nilai sudut alfa adalah',sudutalfa2) | ||
+ | |||
+ | |||
+ | '''Jawaban Soal Kedua''' | ||
+ | |||
+ | [[File:Jawaban UTS Nomor 2 (3).JPG]] | ||
+ | |||
+ | |||
+ | '''Script Python Jawaban No.2''' | ||
+ | |||
+ | import numpy as np | ||
+ | |||
+ | print('Berapa gaya percepatan mobil?') | ||
+ | a = eval(input()) | ||
+ | print('Berapa gaya gesek jalan terhadap mobil?') | ||
+ | b = eval(input()) | ||
+ | print('Berapa gaya gesek udara terhadap mobil?') | ||
+ | c = eval(input()) | ||
+ | def diff_v (t,v): | ||
+ | fungsi = a - b -c | ||
+ | return (fungsi) | ||
+ | |||
+ | v = 0 | ||
+ | |||
+ | h = 1 | ||
+ | step_size = np.arange (0,10,h) | ||
+ | |||
+ | for t in step_size: | ||
+ | k1 = diff_v (t,v) | ||
+ | k2 = diff_v ((t+0.5*h), (v+0.5*k1*h)) | ||
+ | k3 = diff_v ((t+0.5*h), (v+0.5*k2*h)) | ||
+ | k4 = diff_v ((t+h), (v+k1*h)) | ||
+ | |||
+ | v = v + 1/6*(k1+2*k2+2*k3+k4)*h | ||
+ | |||
+ | print ('maka v setelah 10 detik adalah', v) | ||
+ | |||
+ | == Video Pembahasan UTS == | ||
+ | |||
+ | [[UTS No.1]] | ||
+ | |||
+ | [[UTS No.2]] |
Latest revision as of 11:26, 26 July 2021
Contents
Data Diri
Nama : Geraldo A. S.
NPM : 1706022962
Jurusan : Teknik Mesin S1 Paralel
Angkatan: 2017
Biografi
Perkenalkan nama saya Geraldo Andreas Sitorus. Memulai pendidikan SD di SDN Cilandak Barat 04 Pagi lalu melanjutkan pendidikan selanjutnya di SMP Negeri 68 Jakarta kemudian bersekolah di SMA Negeri 34 Jakarta, dan sekarang masih menjadi mahasiswa di Universitas Indonesia dengan program studi Teknik Mesin.
Riwayat Diri
Pengalaman Diri di Fakultas Teknik
- Staff K3 Dongkrak Seni FTUI (2017)
- Staff K3 Freshmen Fair (2017)
- Duta Kersos Departemen Teknik Mesin (2018)
- PJ Tarik Tambang Teknik Cup (2018)
- Badan Pengurus Sosma IMM FTUI (2018)
- Pergerakan MADK DTM (2018)
- Volunteer Kakak Asuh DTM (2018)
- Vice Project Officer PSB Genap Mesin (2018)
- Wakil Kepala Bidang Sosma IMM FTUI (2019)
- Steering Committee SSBM (2019)
Hiburan Minggu 1
Bahasa pemograman adalah bahasa yang dipakai dalam perangkat pintar elektronik guna sebagai acuan dasar komunikasi perangkat dalam menjalankan operasionalnya dalam bentuk coding. Bahasa pemograman yang pernah saya baca adalah Python, namun yang saya baca hanya pengenalan dasar dari Python tersebut.
Python adalah bahasa pemrograman interpretatif multiguna yang memakai filosofi perancangan dengan fokus kepada tingkat keterbacaan kode. Sebagai bahasa pemrograman, Python menggabungkan kemampuan, kapabilitas dan sintaksis kode serta fungsi pustaka yang berkualitas tinggi.
Fitur dalam bahasa pemograman Python secara general :
1. Berorientasi kepada objek.
2. Relatif mudah dikembangkan dengan menciptakan modul-modul baru. Asalnya Modul tersebut merupakan kombinasi dari modul lama yang di integrasi.
3. Memiliki tata bahasa yang relatif mudah dipelajari oleh manusia.
4. Didukung sistem pengelolaan memori secara otomatis sehingga membutuhkan kinerja saat coding.
5. Python juga memiliki banyak fasilitas pendukung sehingga ketika mengoperasikannya, terhitung mudah dan cepat.
Hiburan Minggu 2
Pada minggu ke-2 kelas Metode Numerik, membahas apa itu angka eksak dan angka numerik?, lintas apakah bagaimana eksistensinya?, angka eksak mulai dari 0,1,2,3,4,5...dst itu tentu ada, namun itu hanya sebuah perjanjian / kesepakatan pembatasan nilai untuk berkomunikasi verbal agar memudahkan kita manusia untuk bertukar informasi dalam kehidupan nyata. Pada dasarnya komputer hanya mengenal 2 angka, yaitu "0" dan "1", dimana 0 yang berarti tidak bernilai dan 1 yang artinya bernilai, seperti layaknya iya dan tidak. Komputer bekerja berdasarkan perintah, dan perintah itu berisi kombinasi rangkaian angka 0 dan 1 yang menjadi modul dasar komputer untuk bekerja. Loncatan-loncatan elektron listrik yang biasa disebut pulse merupakan cara komputer bekerja mengirim sinyal untuk melakukan perintah operasional.
Angka eksak merupakan hasil pendekatan perhitungan dari angka numerik, karena pada dasarnya secara keseluruhan nilai yang sebenarnya didapat secara akurat hanya bisa di hitung dengan angka numerik.
Berikut merupakan soal yang diberikan.
Dalam mengerjakan soal diatas dengan x=1 tidak bisa mendapatkan hasil yang benar dikarenakan 0/0. Oleh sebab itu, saya gunakan limit pendekatan x=1. Saya menambahkan fungsi hingga perbedaan 1/999999 yang mendekati angka nol, sehingga hasil pendekatan dari perhitungan tidak menjauhi hasil sebenarnya dalam eksak.
Jadi hasilnya secara numerik mendekati angka 2, dan dapat dianggap secara eksak hasilnya adalah 2. Namun, dosen kami Bapak Dr. Ir. Ahmad Indra Siswantara menitip pesan agar tidak lupa diri terhadap yang punya kehidupan kita, walau kita sudah sejauh ini mengerti akan teknologi. Ditengah maraknya perkembangan teknologi yang pesat, kadang kita melunturkan sisi lain dari kehidupan kita, yaitu agama. Dimana hubungan kita pribadi dengan Tuhan YME merupakan dasar acuan kehidupan kita sehari-hari.
Hiburan Minggu 3
Diberikan persamaan seperti diatas, carilah nilai dari x pada persamaan tersebut!
Python Script :
def f(x): return 8*x**3 + 2*x**2 + x - 1 def fprime(x): return 24*x**2 + 4*x +1 ep = 0.001 gu = -10 i = 0 print('Diberikan fungsi sebagai berikut:' '8*x**3 + 2*x**2 + x - 1 = 0' 'Carilah nilai x dari persamaan diatas') print('Hasil perhitungan oleh Python 3.7') while abs(f(gu)) >= ep: gu = gu - (f(gu)/fprime(gu)) i += 1 print(' ' + str(i) + ' ' + str(round(gu,7))) print('Hasil pendekatannya adalah ' + str(round(gu,2)) + '| gagal untuk menghitung: ' + str(i) + ' kali' )
Hiburan Minggu 4
Pada hiburan minggu ke-4 & ke-5, kami diajarkan untuk menggunakan matriks dalam menyelesaikan suatu persoalan yang menggunakan persamaan. Dikerjakan dalam Python dengan memasukan modul pengerjaan.
Secara teori, digunakan hukum kontinuitas massa sehingga didapati rumus Q*p=Q*p dan didapatakan 4 persamaan dengan 4 variabel
6C1 - 4C2 = 50
-2C1 - 1C3 + 4C4 = 50
7C2 - 3C3 - 4C4 = 0
-4C1 + 4C3 = 0
Kemudian, kita munculkan seakan-akan ada variabel lain, walau bernilai 0
6C1 - 4C2 + 0C3 + 0C4 = 50
-2C1 + 0C2 - 1C3 + 4C4 = 50
0C1 + 7C2 - 3C3 - 4C4 = 0
-4C1 + 0C2 + 4C3 + 0C4 = 0
Didapat sususan matriksnya seperti dibawah :
A = 6 -4 0 0 B = 50 -2 0 -1 4 50 0 7 -3 -4 0 -4 0 4 0 0
Lalu, matriks ini dimasukkan kedalam untuk dicari hasil perhitungannya
Python Script :
import numpy as np #1. define matrix A=np.array ([[6,-4,0,0], [-2,0,-1,4], [0,7,-3,-4], [-4,0,4,0]],float) B=np.array ([50,50,0,0],float) n=len(A) #2. eliminasi gauss for k in range (0,n-1): for i in range (k+1, n): if A[i,k]!=0 : lam= A[i,k]/A[k,k] A[i,k:n]=A[i, k:n]-(A[k,k:n]*lam) B[i]=B[i]-(B[k]*lam) print ('matrix A :', '\n', A) print ('matrix B :', '\n', B) #3. back substitution x=np.zeros(n,float) for m in range (n-1, -1, -1): x[m]=(B[m]-np.dot(A[m, m+1:n], x[m+1:n]))/A[m,m] print ('nilai X', m+1, '=', x[m])
Hiburan Minggu 5
Pada minggu kelima, kami diajarkan cara penggunaan turunan menggunakan Python dengan Metode Runge Kutta orde 4, kali ini diajarkan dengan menggunakan excel terlebih dahulu untuk mempermudah pemahaman terkait pendekatan metode ini terhadap turunan yang berlaku, berikut merupakan penjelasan singkat dari metode ini:
1. Metode Runge-Kutta adalah alternatif lain dari metode deret Taylor yang tidak membutuhkan perhitungan turunan.
2. Metode ini menawarkan penyelesaian persamaan diferensial dengan pertumbuhan truncation error yang jauh lebih kecil.
3. Truncation error adalah kesalahan / penyimpangan nilai yang timbul akibat pemotongan suku pada suatu deret atau rumus dalam approksimasi.
DIberikan contoh soal seperti dibawah ini:
Jawaban dalam excel yang telah dibuat:
Hiburan Minggu 6 (Quis)
Pada hiburan Minggu ke-6 kami dikelas diminta untuk mengerjakan quis dengan soal pertama No.6 Halaman 55 & soal kedua No.1 Halaman 263 dari buku Jaan Kiusalaas - Numerical Methods in Engineering.
Berikut jawaban dari tiap kuis :
Nomor 1 (Soal & Jawaban)
Python Script :
import numpy as np #1. define matrix A=np.array ([[1,2,0,-2,0], [0,1,0,2,-1], [0,0,2,1,2], [0,0,0,-1,1], [0,1,-1,1,-1]],float) B=np.array ([1,1,-4,-2,-1],float) n=len(A) #2. eliminasi gauss for k in range (0,n-1): for i in range (k+1, n): if A[i,k]!=0 : lam= A[i,k]/A[k,k] A[i,k:n]=A[i, k:n]-(A[k,k:n]*lam) B[i]=B[i]-(B[k]*lam) print ('matrix A :', '\n', A) print ('matrix B :', '\n', B) #3. back substitution x=np.zeros(n,float) for m in range (n-1, -1, -1): x[m]=(B[m]-np.dot(A[m, m+1:n], x[m+1:n]))/A[m,m] print ('nilai X', m+1, '=', x[m])
Nomor 2 (Soal dan Jawaban)
Python Script :
import numpy as np def diff_y (x,y): fungsi = x**2 - 4*y return (fungsi) x = 0 y = 1 h = 0.01 step_size = np.arange (0,0.03,h) for t in step_size: k1 = diff_y (x,y) k2 = diff_y ((x+0.5*h), (y+0.5*k1*h)) y = y + k1*h print ('maka y(0.03) adalah', y)
Ujian Tengah Semester
Jawaban Soal Pertama
Script Python Jawaban No.1
import math #1. Pertanyaan untuk fungsi print('Diberikan fungsi sin teta = m4/(m1+m2+m3)') print('Nilai m1?') m1=eval(input()) print('Nilai m2?') m2=eval(input()) print('Nilai m3?') m3=eval(input()) print('Nilai m4?') m4=eval(input()) #2. Menentukan nilai a a = 0 #3. Menentukan fungsi sin teta x = m4 y = (m1+m2+m3) alfa = m4 / (m1+m2+m3) #4. Mendapatkan hasil sin teta print('Jadi, hasil sin teta adalah', alfa) sudutalfa=math.asin(alfa) sudutalfa2=math.degrees(sudutalfa) print('jadi nilai sudut alfa adalah',sudutalfa2)
Jawaban Soal Kedua
Script Python Jawaban No.2
import numpy as np print('Berapa gaya percepatan mobil?') a = eval(input()) print('Berapa gaya gesek jalan terhadap mobil?') b = eval(input()) print('Berapa gaya gesek udara terhadap mobil?') c = eval(input()) def diff_v (t,v): fungsi = a - b -c return (fungsi) v = 0 h = 1 step_size = np.arange (0,10,h) for t in step_size: k1 = diff_v (t,v) k2 = diff_v ((t+0.5*h), (v+0.5*k1*h)) k3 = diff_v ((t+0.5*h), (v+0.5*k2*h)) k4 = diff_v ((t+h), (v+k1*h)) v = v + 1/6*(k1+2*k2+2*k3+k4)*h print ('maka v setelah 10 detik adalah', v)