TUGAS 2 Praktikum Metode Numerik: Ekstrapolasi dan Integrasi

Assignment

Online dan Offline di Departemen Matematika
Authors

Laboratorium Komputasi Matematika

Departemen Matematika FMIPA UI

Published

May 2, 2025

Petunjuk Umum:

  1. Kerjakan secara Individu

  2. 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.

  3. 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.

  4. 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

  5. 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):

  1. Durasi pengerjaan Tugas 2 ini adalah 9 (sembilan) hari, dan tenggat waktu (deadline) pengumpulan Tugas 2 ini adalah Sabtu, 10 Mei 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.

  2. Sesuai standar Universitas Indonesia, plagiarisme dilarang keras dan bisa menyebabkan nilai tugas praktikum menjadi nol untuk semua pihak yang terlibat, tanpa peringatan apapun.

  3. 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 1 Praktikum Metode Numerik adalah:

    • 📞 Fasya (LINE: ifasyai)

Diferensiasi Numerik

Buatlah suatu program dengan nama turunkan() yaitu program yang menerima sembarang input berupa fungsi \(f(x)\), titik evaluasi fungsi \(x_0\), dan stepsize \(h\) untuk dilakukan diferensiasi numerik.

Isi program tersebut meliputi: 1. Input fungsi yang bisa ditetapkan pengguna sesuka hati. 2. Input nilai \(x_0\) dan stepsize \(h\) yang ditetapkan bersamaan dengan fungsi. 3. Kondisi untuk mengulang program berkali-kali. 4. Handling error yang mungkin dapat terjadi.

Output program berupa tabel yang berisi nilai eksak turunan fungsi, hasil diferensiasi numerik Metode Forward-Backward, Three-Point, dan Five-Point (Three point dan five point termasuk juga).

Lalu, menurut anda berdasarkan fungsi-fungsi yang telah anda gunakan sebagai output (minimal 5 fungsi), metode mana yang terbaik dalam mengaproksimasi nilai turunan dari fungsi-fungsi tersebut, jelaskan pada cell markdown!

Contoh Output sebagai berikut.

turunkan()
===========================================================================
Program ini akan mencari nilai turunan dari fungsi yang diberikan
Masukkan fungsi yang ingin diaproksimasi nilai turunannya.
Turunan eksaknya adalah:
⎛   2       ⎞                    2                2          
⎝tan (x) + 1⎠⋅sin(x)⋅cos(x) - sin (x)⋅tan(x) + cos (x)⋅tan(x)
+-------+-------+------------------------+------------------------+-----------------------+-----------------------+-----------------------+
|       | Eksak |     F/B Difference     |  Three-Point Endpoint  | Three-Point Midpoint  |  Five-Point Endpoint  |  Five-Point Midpoint  |
+-------+-------+------------------------+------------------------+-----------------------+-----------------------+-----------------------+
|  (x)  |  2.0  | -9.999778782798785e-07 | 1.1102230246251565e-10 | 5.551115123125783e-11 | 6.661338147750939e-10 | 5.551115123125783e-11 |
| Error |   -   |   2.0000009999778783   |   1.9999999998889777   |  1.9999999999444888   |  1.9999999993338662   |  1.9999999999444888   |
+-------+-------+------------------------+------------------------+-----------------------+-----------------------+-----------------------+
tung-tung-tung-tung jalankan program...
===========================================================================
Masukkan fungsi yang ingin diaproksimasi nilai turunannya.
Turunan eksaknya adalah:
          ⎛ 2⎞        
      -sin⎝x ⎠    ⎛ 2⎞
-2⋅x⋅ℯ        ⋅cos⎝x ⎠
+-------+---------------------+-----------------------+------------------------+------------------------+-----------------------+-----------------------+
|       |        Eksak        |    F/B Difference     |  Three-Point Endpoint  |  Three-Point Midpoint  |  Five-Point Endpoint  |  Five-Point Midpoint  |
+-------+---------------------+-----------------------+------------------------+------------------------+-----------------------+-----------------------+
|  (x)  | -0.5462056901443965 |  -0.5462064225358887  |  -0.5462056902882928   |  -0.5462056901217593   |  -0.5462056909359229  |  -0.5462056900940038  |
| Error |          -          | 7.323914922308106e-07 | 1.4389633928857393e-10 | 2.2637114405199554e-11 | 7.915263999791478e-10 | 5.039269002082847e-11 |
+-------+---------------------+-----------------------+------------------------+------------------------+-----------------------+-----------------------+
Sayonara...
===========================================================================

Ekstrapolasi Numerik

Diberikan suatu fungsi \(f(x)\) yang ingin dicari nilai turunannya menggunakan Metode Ekstrapolasi Richardson untuk \(h\) pangkat genap.

Buatlah suatu program yang dinamakan PrintAll() yang menerima input berupa sembarang fungsi \(f(x)\), nilai evaluasi turunan \(x_0\) dan \(h\)!

Output fungsi berupa tabel yang berisi perbandingan hasil ekstrapolasi menggunakan metode-metode turunan Numerik hingga \(O(h^{16})\). Tambahan nilai jika anda membuat program dapat ditambahkan suku \(O(h^{2j})\) berikutnya.

Berikut contoh output menggunakan fungsi \(f(x) = x^2\) sebagai berikut

PrintAll(f, 2, 0.01)
Metode Forward-Backward Difference
|   O(h^2) | O(h^4)             | O(h^6)             | O(h^8)             | O(h^10)            | O(h^12)           | O(h^14)           | O(h^16)           |
|----------+--------------------+--------------------+--------------------+--------------------+-------------------+-------------------+-------------------|
|  4.005   |                    |                    |                    |                    |                   |                   |                   |
|  4.0025  | 4.001666666666696  |                    |                    |                    |                   |                   |                   |
|  4.00125 | 4.000833333333749  | 4.000777777778219  |                    |                    |                   |                   |                   |
|  4.00062 | 4.000416666665292  | 4.000388888887395  | 4.000382716047858  |                    |                   |                   |                   |
|  4.00031 | 4.0002083333372225 | 4.0001944444486845 | 4.0001913580290225 | 4.000190607605419  |                   |                   |                   |
|  4.00016 | 4.000104166663239  | 4.000097222218307  | 4.000095679008301  | 4.0000953037964555 | 4.000095210635352 |                   |                   |
|  4.00008 | 4.000052083334064  | 4.00004861111212   | 4.00004783950726   | 4.000047651901373  | 4.00004760532083  | 4.000047593695601 |                   |
|  4.00004 | 4.000026041664266  | 4.000024305552946  | 4.0000239197504195 | 4.000023825947451  | 4.000023802657174 | 4.000023796844558 | 4.000023795392025 |

Metode Three-Point End Point
|   O(h^2) | O(h^4)             | O(h^6)             | O(h^8)             | O(h^10)            | O(h^12)           | O(h^14)           | O(h^16)           |
|----------+--------------------+--------------------+--------------------+--------------------+-------------------+-------------------+-------------------|
|        4 |                    |                    |                    |                    |                   |                   |                   |
|        4 | 4.000000000000152  |                    |                    |                    |                   |                   |                   |
|        4 | 4.000000000000803  | 4.000000000000846  |                    |                    |                   |                   |                   |
|        4 | 3.999999999996836  | 3.999999999996571  | 3.9999999999965032 |                    |                   |                   |                   |
|        4 | 4.000000000009152  | 4.0000000000099725 | 4.000000000010186  | 4.000000000010239  |                   |                   |                   |
|        4 | 3.9999999999892566 | 3.99999999998793   | 3.99999999998758   | 3.9999999999874913 | 3.999999999987469 |                   |                   |
|        4 | 4.0000000000048885 | 4.00000000000593   | 4.000000000006216  | 4.000000000006289  | 4.000000000006308 | 4.000000000006312 |                   |
|        4 | 3.999999999994467  | 3.9999999999937725 | 3.9999999999935794 | 3.9999999999935296 | 3.999999999993517 | 3.999999999993514 | 3.999999999993513 |

Metode Three-Point Mid Point
|   O(h^2) | O(h^4)             | O(h^6)             | O(h^8)             | O(h^10)            | O(h^12)            | O(h^14)            | O(h^16)            |
|----------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------|
|        4 |                    |                    |                    |                    |                    |                    |                    |
|        4 | 3.9999999999999147 |                    |                    |                    |                    |                    |                    |
|        4 | 4.000000000000152  | 4.000000000000168  |                    |                    |                    |                    |                    |
|        4 | 3.9999999999998557 | 3.999999999999836  | 3.999999999999831  |                    |                    |                    |                    |
|        4 | 4.000000000000862  | 4.00000000000093   | 4.000000000000948  | 4.000000000000952  |                    |                    |                    |
|        4 | 4.000000000000625  | 4.000000000000609  | 4.000000000000604  | 4.000000000000602  | 4.000000000000602  |                    |                    |
|        4 | 3.9999999999987303 | 3.9999999999986042 | 3.9999999999985723 | 3.9999999999985643 | 3.9999999999985625 | 3.999999999998562  |                    |
|        4 | 3.999999999995415  | 3.9999999999951936 | 3.9999999999951394 | 3.999999999995126  | 3.9999999999951226 | 3.9999999999951217 | 3.9999999999951217 |

Metode Five-Point End Point
|   O(h^2) | O(h^4)             | O(h^6)             | O(h^8)             | O(h^10)            | O(h^12)            | O(h^14)            | O(h^16)            |
|----------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------|
|        4 |                    |                    |                    |                    |                    |                    |                    |
|        4 | 4.000000000000823  |                    |                    |                    |                    |                    |                    |
|        4 | 4.000000000001218  | 4.000000000001244  |                    |                    |                    |                    |                    |
|        4 | 3.999999999996678  | 3.999999999996376  | 3.9999999999962985 |                    |                    |                    |                    |
|        4 | 4.000000000024309  | 4.0000000000261515 | 4.000000000026624  | 4.000000000026743  |                    |                    |                    |
|        4 | 3.9999999999437823 | 3.9999999999384137 | 3.999999999937021  | 3.9999999999366698 | 3.999999999936582  |                    |                    |
|        4 | 3.9999999999976255 | 4.000000000001215  | 4.000000000002212  | 4.000000000002467  | 4.000000000002531  | 4.000000000002547  |                    |
|        4 | 3.9999999999685723 | 3.9999999999666356 | 3.9999999999660867 | 3.999999999965945  | 3.9999999999659095 | 3.9999999999659006 | 3.9999999999658984 |

Metode Five-Point Mid Point
|   O(h^2) | O(h^4)             | O(h^6)             | O(h^8)             | O(h^10)            | O(h^12)            | O(h^14)            | O(h^16)          |
|----------+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+------------------|
|        4 |                    |                    |                    |                    |                    |                    |                  |
|        4 | 3.9999999999999543 |                    |                    |                    |                    |                    |                  |
|        4 | 4.000000000000221  | 4.000000000000239  |                    |                    |                    |                    |                  |
|        4 | 3.999999999999836  | 3.9999999999998104 | 3.9999999999998037 |                    |                    |                    |                  |
|        4 | 4.000000000001178  | 4.000000000001267  | 4.0000000000012905 | 4.000000000001297  |                    |                    |                  |
|        4 | 4.00000000000181   | 4.000000000001852  | 4.000000000001861  | 4.000000000001863  | 4.000000000001864  |                    |                  |
|        4 | 3.9999999999958886 | 3.999999999995494  | 3.999999999995393  | 3.9999999999953677 | 3.9999999999953615 | 3.9999999999953597 |                  |
|        4 | 3.9999999999960467 | 3.9999999999960574 | 3.9999999999960663 | 3.999999999996069  | 3.99999999999607   | 3.99999999999607   | 3.99999999999607 |

Integrasi Numerik

Soal 1

Diberikan fungsi \[ g(x) = \cfrac{1}{\sigma \sqrt{2\pi}}e^{-\cfrac{(x-\mu)^2}{2\sigma ^ 2}} \text{ , pada interval } -1000 + \mu \leq x \leq 1000 + \mu \]

di mana \(\mu\) adalah digit terakhir NPM dan \(\sigma\) adalah kode kelas anda. Contoh: 2206025123 berarti \(\mu = 3\).

Kode Kelas

  • A = 1

  • B = 2

  • C = 3

  • D = 4

  • E = 5

  • F = 6

Buatlah program IntegrateAll1() dengan parameter yang sesuai menurut anda untuk melakukan integrasi numerik pada fungsi dengan batas tersebut menggunakan Metode Kuadratur Adaptif dengan semua Metode Newton-Cotes yang sudah anda pelajari pada praktikum (Open dan Closed)! Berikan juga hasil output dari setiap metode dalam satu tabel!

Contoh output untuk fungsi \(g(x) = x^3\) dengan batas \([-1, 1]\)

def g(x):
    return x ** 3

IntegrateAll1(g, -1, 1, 0.000001)
Tabel Metode Kuadratur Adaptif menggunakan Closed dan Open Newton-Cotes:
+--------+-----+------------------------+-----+-------------------------+-----+
|   n    |  0  |           1            |  2  |            3            |  4  |
+--------+-----+------------------------+-----+-------------------------+-----+
| closed |     |          0.0           | 0.0 | -1.1102230246251565e-16 | 0.0 |
|  open  | 0.0 | -8.326672684688674e-17 | 0.0 |           0.0           |     |
+--------+-----+------------------------+-----+-------------------------+-----+

Soal 2 dibagi menjadi berdasarkan NPM.

  • Untuk NPM dengan digit terakhir ganjil, diberikan fungsi:

\[ f(x) = \begin{cases} \tan^5(\sin(\cos(x^2)) & -3\leq x\leq 0 \\ -\tan^5(\sin(\cos(x^2)) & 0< x\leq 3 \\ \end{cases} \]

  • Untuk NPM dengan digit terakhir genap, diberikan fungsi:

\[ f(x) = \begin{cases} -\tan^5(\sin(\cos(x^2)) & -3\leq x\leq 0 \\ \tan^5(\sin(\cos(x^2)) & 0< x\leq 3 \\ \end{cases} \]

Buatlah program IntegrateAll2() dengan parameter yang sesuai menurut anda untuk melakukan integrasi numerik pada fungsi dengan batas tersebut menggunakan Metode Kuadratur Adaptif dengan semua Metode Newton-Cotes yang sudah anda pelajari pada praktikum (Open dan Closed)! Berikan juga hasil output dari setiap metode dalam satu tabel!

Contoh output sama persis dengan contoh output pada nomor 1.