import numpy as np
from numpy import sin, log, sqrt, pi, exp, cos
from tabulate import tabulate
TUGAS 3 Praktikum Metode Numerik: Sistem Persamaan Linear
Assignment
Petunjuk Umum:
Kerjakan secara Individu
Kerjakan tugas ini menggunakan bahasa pemrograman Python dengan file format berupa interactive Python notebook (yaitu file berbentuk .ipynb BUKAN .py), yang bisa dibuat misalnya menggunakan Jupyter Notebook atau Google Colaboratory.
Harap sertakan penjelasan untuk setiap variabel yang digunakan dan setiap proses secara singkat di samping potongan kode (dengan comment, โ#โ). Selain itu, sertakan juga penjelasan program (yang bisa mencakupi idenya apa, bagaimana cara eksekusi program, atau tentang algoritma program yang digunakan) pada cell di sebelah (atas/bawah) program.
Format nama file untuk Tugas 2 ini adalah:
Nama Lengkap_NPM_Kelas SIAK_Tugas2PrakMetnum.ipynb
Contoh penamaan yang benar:
Luthfi Athallah Herdita Wiryaman_2206826980_Kelas G_Tugas1PrakMetnum_OnSite.ipynb
Luthfi Athallah Herdita Wiryaman_2206826980_Kelas G_Tugas1PrakMetnum_OnSite_revisi1.ipynb
Pengumpulan tugas dilakukan ke Google Forms berikut ini, sesuai dengan kelas Anda di SIAK NG (link akan selalu sama untuk semua tugas praktikum metode numerik):
- Kelas A: https://forms.gle/3xguPQVR2HJGbi456
- Kelas B: https://forms.gle/XfxJAUyAdwDLgMwj6
- Kelas C: https://forms.gle/ihiKuSjU65fpxEZ67
- Kelas D: https://forms.gle/15BVmErcputb5NrX8
- Kelas E: https://forms.gle/MydWb7kku6iyvdNNA
- Kelas F: https://forms.gle/RuKXWpwQeu7Jbt5YA
Tenggat waktu pengerjaan Tugas 3 ini adalah Sabtu, 7 Juni 2025 pukul 23.59 WIB. Mohon manfaatkan waktu Anda dengan baik (seperti mencicil pengerjaan, bahkan sudah selesai dari jauh-jauh hari) agar mengumpulkan tugas sebelum deadline. Keterlambatan pengumpulan bisa dikenakan pengurangan nilai atau bahkan dianggap tidak mengumpulkan, tergantung kesepakatan dari dosen. Meskipun demikian, lebih baik terlambat mengumpulkan daripada tidak mengumpulkan sama sekali.
Sesuai standar Universitas Indonesia, plagiarisme dilarang keras dan bisa menyebabkan nilai tugas praktikum menjadi nol untuk semua pihak yang terlibat, tanpa peringatan apapun.
Module atau package Python yang boleh digunakan (di-import) untuk Tugas 2 ini hanyalah numpy, tabulate, matplotlib, dan sympy. Apabila Anda berniat ingin menggunakan module lain, harap konfirmasikan ke narahubung terlebih dahulu (bisa saja diperbolehkan). Narahubung untuk Tugas 3 Praktikum Metode Numerik adalah:
- ๐ Fasya (LINE: ifasyai)
Sistem Persamaan Linier
Bentuk umum dari suatu sistem persamaan linier (SPL) diberikan oleh : \[\boldsymbol{Ax} = \boldsymbol{b}\]
Misalkan \(a_{i,j}\) menyatakan nilai dari baris ke \(i\) dan kolom ke \(j\) pada \(\boldsymbol{A}\), dan \(b_i\) menyatakan nilai dari baris ke \(i\) pada \(\boldsymbol{b}\). Jika didefinisikan \(a_{i,j}\) dan \(b_i\) sebagai berikut: \[a_{i,j} = \frac{(k+1)^{n(i + j - 1)}}{i + j - 1}, \quad i,j = 1,2,...,n \]
\[ b_i = \frac{1}{(i+1)^2} (k+1)^{n(i + 1)}(\ln((k+1)^{n(i +1)}) - 1), \quad i = 1,2,...,n \]
dengan \(k = \text{NPM} \mod 4\) dan \(n\) adalah banyak persamaan pada sistem
Soal
Buatlah suatu program untuk menyelesaikan SPL tersebut secara iteratif menggunakan Gauss-Seidel dengan vektor tebakan awal adalah vektor 0. Input yang diterima program berupa : 1. NPM (integer) 2. Ukuran matriks (integer) 3. Toleransi error (float) 4. Batas iterasi (integer)
Output program berupa matriks diperbesar yang diperoleh, serta tabel yang menampilkan hasil yang didapat setiap iterasi serta nilai error untuk setiap iterasi
Bonus
Ketentuan berikut tidak harus dikerjakan, tetapi dapat menjadi nilai tambah
Program Anda bisa berjalan berulang kali (dengan beberapa kali input dan output) sesuai permintaan user, tanpa harus berhenti dan di-run ulang secara manual terlebih dahulu.
Contoh Output
program()
Masukkan banyak variabel yang ingin diselesaikan dengan SPL: 3
Masukkan NPM Anda:2206026867
maka, nilai k yang digunakan = 3
Matriks diperbesar yang didapat adalah:
[[6.40000000e+01 2.04800000e+03 8.73813333e+04 7.49339255e+03]
[2.04800000e+03 8.73813333e+04 4.19430400e+06 3.34281638e+05]
[8.73813333e+04 4.19430400e+06 2.14748365e+08 1.63950440e+07]]
Akan digunakan metode Gauss-Seidel untuk menyelesaikan SPL
Masukkan besar toleransi error untuk metode Gauss-Seidel: 10**-7
Masukkan banyaknya iterasi maksimal untuk metode Gauss-Seidel: 100
Tabel hasil iterasi Gauss Seidel dari matriks diperbesar tersebut adalah
โโโโโโโโโโโโโคโโโโโโโโโโโคโโโโโโโโโโคโโโโโโโโโโโโโคโโโโโโโโโโโโโ
โ iterasi โ x1 โ x2 โ x3 โ error โ
โโโโโโโโโโโโโชโโโโโโโโโโโชโโโโโโโโโโชโโโโโโโโโโโโโชโโโโโโโโโโโโโก
โ 0 โ 0 โ 0 โ 0 โ nan โ
โ 1 โ 117.084 โ 1.08139 โ 0.00758282 โ 117.084 โ
โ 2 โ 72.1268 โ 1.7711 โ 0.0124051 โ 44.9575 โ
โ 3 โ 43.4719 โ 2.21123 โ 0.0154684 โ 28.6549 โ
โ 4 โ 25.2052 โ 2.49232 โ 0.0174113 โ 18.2667 โ
โ 5 โ 13.5579 โ 2.67205 โ 0.0186403 โ 11.6473 โ
โ 6 โ 6.12864 โ 2.78718 โ 0.0194146 โ 7.42927 โ
โ 7 โ 1.38723 โ 2.86114 โ 0.0198993 โ 4.74141 โ
โ 8 โ -1.64134 โ 2.90885 โ 0.0201997 โ 3.02857 โ
โ 9 โ -3.57835 โ 2.93983 โ 0.0203828 โ 1.93701 โ
โ 10 โ -4.81969 โ 2.96013 โ 0.0204914 โ 1.24134 โ
โ 11 โ -5.61762 โ 2.97363 โ 0.0205525 โ 0.797922 โ
โ 12 โ -6.13286 โ 2.98277 โ 0.0205837 โ 0.515246 โ
โ 13 โ -6.46786 โ 2.98912 โ 0.0205958 โ 0.334995 โ
โ 14 โ -6.68787 โ 2.9937 โ 0.020596 โ 0.220012 โ
โ 15 โ -6.83449 โ 2.99712 โ 0.0205888 โ 0.146619 โ
โ 16 โ -6.93422 โ 2.99981 โ 0.0205769 โ 0.0997309 โ
โ 17 โ -7.00395 โ 3.00201 โ 0.0205622 โ 0.0697331 โ
โ 18 โ -7.05445 โ 3.0039 โ 0.0205459 โ 0.0505002 โ
โ 19 โ -7.09258 โ 3.00558 โ 0.0205286 โ 0.0381289 โ
โ 20 โ -7.12271 โ 3.00712 โ 0.0205109 โ 0.0301321 โ
โ 21 โ -7.14764 โ 3.00855 โ 0.020493 โ 0.0249248 โ
โ 22 โ -7.16913 โ 3.00991 โ 0.0204752 โ 0.0214972 โ
โ 23 โ -7.18834 โ 3.01122 โ 0.0204574 โ 0.0192057 โ
โ 24 โ -7.20598 โ 3.01248 โ 0.0204399 โ 0.0176401 โ
โ 25 โ -7.22252 โ 3.01371 โ 0.0204227 โ 0.0165391 โ
โ 26 โ -7.23826 โ 3.01491 โ 0.0204057 โ 0.0157361 โ
โ 27 โ -7.25338 โ 3.01608 โ 0.020389 โ 0.015125 โ
โ 28 โ -7.26802 โ 3.01722 โ 0.0203727 โ 0.014638 โ
โ 29 โ -7.28225 โ 3.01834 โ 0.0203566 โ 0.0142319 โ
โ 30 โ -7.29613 โ 3.01944 โ 0.0203408 โ 0.0138793 โ
โ 31 โ -7.30969 โ 3.02051 โ 0.0203253 โ 0.0135626 โ
โ 32 โ -7.32296 โ 3.02157 โ 0.0203101 โ 0.0132704 โ
โ 33 โ -7.33596 โ 3.0226 โ 0.0202952 โ 0.0129957 โ
โ 34 โ -7.34869 โ 3.02361 โ 0.0202806 โ 0.0127337 โ
โ 35 โ -7.36117 โ 3.02461 โ 0.0202663 โ 0.0124815 โ
โ 36 โ -7.37341 โ 3.02558 โ 0.0202522 โ 0.0122373 โ
โ 37 โ -7.38541 โ 3.02654 โ 0.0202384 โ 0.0119996 โ
โ 38 โ -7.39718 โ 3.02748 โ 0.0202249 โ 0.0117677 โ
โ 39 โ -7.40872 โ 3.0284 โ 0.0202116 โ 0.0115411 โ
โ 40 โ -7.42004 โ 3.0293 โ 0.0201986 โ 0.0113193 โ
โ 41 โ -7.43114 โ 3.03019 โ 0.0201858 โ 0.0111021 โ
โ 42 โ -7.44203 โ 3.03105 โ 0.0201733 โ 0.0108892 โ
โ 43 โ -7.45271 โ 3.03191 โ 0.020161 โ 0.0106806 โ
โ 44 โ -7.46319 โ 3.03274 โ 0.0201489 โ 0.010476 โ
โ 45 โ -7.47346 โ 3.03356 โ 0.0201371 โ 0.0102754 โ
โ 46 โ -7.48354 โ 3.03436 โ 0.0201255 โ 0.0100786 โ
โ 47 โ -7.49343 โ 3.03515 โ 0.0201141 โ 0.00988566 โ
โ 48 โ -7.50312 โ 3.03593 โ 0.020103 โ 0.00969642 โ
โ 49 โ -7.51263 โ 3.03668 โ 0.020092 โ 0.0095108 โ
โ 50 โ -7.52196 โ 3.03743 โ 0.0200813 โ 0.00932875 โ
โ 51 โ -7.53111 โ 3.03816 โ 0.0200708 โ 0.00915018 โ
โ 52 โ -7.54009 โ 3.03887 โ 0.0200604 โ 0.00897503 โ
โ 53 โ -7.54889 โ 3.03958 โ 0.0200503 โ 0.00880323 โ
โ 54 โ -7.55752 โ 3.04026 โ 0.0200404 โ 0.00863473 โ
โ 55 โ -7.56599 โ 3.04094 โ 0.0200306 โ 0.00846945 โ
โ 56 โ -7.5743 โ 3.0416 โ 0.0200211 โ 0.00830734 โ
โ 57 โ -7.58245 โ 3.04225 โ 0.0200117 โ 0.00814832 โ
โ 58 โ -7.59044 โ 3.04289 โ 0.0200025 โ 0.00799236 โ
โ 59 โ -7.59828 โ 3.04351 โ 0.0199935 โ 0.00783937 โ
โ 60 โ -7.60597 โ 3.04413 โ 0.0199846 โ 0.00768932 โ
โ 61 โ -7.61351 โ 3.04473 โ 0.0199759 โ 0.00754214 โ
โ 62 โ -7.62091 โ 3.04532 โ 0.0199674 โ 0.00739777 โ
โ 63 โ -7.62817 โ 3.0459 โ 0.0199591 โ 0.00725617 โ
โ 64 โ -7.63528 โ 3.04647 โ 0.0199509 โ 0.00711728 โ
โ 65 โ -7.64227 โ 3.04702 โ 0.0199429 โ 0.00698105 โ
โ 66 โ -7.64911 โ 3.04757 โ 0.019935 โ 0.00684742 โ
โ 67 โ -7.65583 โ 3.0481 โ 0.0199273 โ 0.00671636 โ
โ 68 โ -7.66242 โ 3.04863 โ 0.0199197 โ 0.0065878 โ
โ 69 โ -7.66888 โ 3.04914 โ 0.0199122 โ 0.0064617 โ
โ 70 โ -7.67522 โ 3.04965 โ 0.0199049 โ 0.00633802 โ
โ 71 โ -7.68143 โ 3.05015 โ 0.0198978 โ 0.0062167 โ
โ 72 โ -7.68753 โ 3.05063 โ 0.0198908 โ 0.00609771 โ
โ 73 โ -7.69351 โ 3.05111 โ 0.0198839 โ 0.00598099 โ
โ 74 โ -7.69938 โ 3.05158 โ 0.0198771 โ 0.00586651 โ
โ 75 โ -7.70513 โ 3.05204 โ 0.0198705 โ 0.00575422 โ
โ 76 โ -7.71078 โ 3.05249 โ 0.019864 โ 0.00564407 โ
โ 77 โ -7.71631 โ 3.05293 โ 0.0198577 โ 0.00553604 โ
โ 78 โ -7.72174 โ 3.05336 โ 0.0198514 โ 0.00543007 โ
โ 79 โ -7.72707 โ 3.05379 โ 0.0198453 โ 0.00532614 โ
โ 80 โ -7.73229 โ 3.0542 โ 0.0198393 โ 0.00522419 โ
โ 81 โ -7.73742 โ 3.05461 โ 0.0198334 โ 0.00512419 โ
โ 82 โ -7.74244 โ 3.05501 โ 0.0198276 โ 0.00502611 โ
โ 83 โ -7.74737 โ 3.0554 โ 0.0198219 โ 0.00492991 โ
โ 84 โ -7.75221 โ 3.05579 โ 0.0198164 โ 0.00483554 โ
โ 85 โ -7.75695 โ 3.05617 โ 0.0198109 โ 0.00474298 โ
โ 86 โ -7.7616 โ 3.05654 โ 0.0198055 โ 0.0046522 โ
โ 87 โ -7.76617 โ 3.0569 โ 0.0198003 โ 0.00456315 โ
โ 88 โ -7.77064 โ 3.05726 โ 0.0197951 โ 0.00447581 โ
โ 89 โ -7.77503 โ 3.05761 โ 0.0197901 โ 0.00439013 โ
โ 90 โ -7.77934 โ 3.05795 โ 0.0197851 โ 0.0043061 โ
โ 91 โ -7.78356 โ 3.05829 โ 0.0197803 โ 0.00422368 โ
โ 92 โ -7.78771 โ 3.05862 โ 0.0197755 โ 0.00414283 โ
โ 93 โ -7.79177 โ 3.05894 โ 0.0197708 โ 0.00406354 โ
โ 94 โ -7.79576 โ 3.05926 โ 0.0197663 โ 0.00398576 โ
โ 95 โ -7.79966 โ 3.05957 โ 0.0197618 โ 0.00390946 โ
โ 96 โ -7.8035 โ 3.05988 โ 0.0197573 โ 0.00383463 โ
โ 97 โ -7.80726 โ 3.06018 โ 0.019753 โ 0.00376123 โ
โ 98 โ -7.81095 โ 3.06047 โ 0.0197488 โ 0.00368924 โ
โ 99 โ -7.81457 โ 3.06076 โ 0.0197446 โ 0.00361862 โ
โ 100 โ -7.81812 โ 3.06105 โ 0.0197405 โ 0.00354936 โ
โโโโโโโโโโโโโงโโโโโโโโโโโงโโโโโโโโโโงโโโโโโโโโโโโโงโโโโโโโโโโโโโ
Didapatkan nilai x1, x2, ...., xn = [np.float64(-7.8181177629432455), np.float64(3.0610456632726963), np.float64(0.019740524872688004)]
Apakah Anda ingin menggunakan program ini lagi? (y/n):n
Terima kasih telah menggunakan program ini. (ร-ร)