Tugas 2 Praktikum Metode Numerik

Tugas 2 Praktikum Metode Numerik

Semester Genap Tahun Ajaran 2023/2024

Kembali ke Metode Numerik

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 adalah:

    Nama Lengkap_NPM_Kelas SIAK_Tugas2PrakMetnum.ipynb

    Contoh penamaan yang benar:

    Luthfi Athallah Herdita Wiryaman_2206826980_Kelas G_Tugas2PrakMetnum.ipynb

  5. Apabila ada yang ingin direvisi setelah pengumpulan, lakukan pengumpulan ulang di Google Forms yang sama, tambahkan keterangan bahwa ada revisi, dan tambahkan kata “revisi” pada bagian akhir nama file, contohnya menjadi

    Luthfi Athallah Herdita Wiryaman_2206826980_Kelas G_Tugas2PrakMetnum_revisi.ipynb

    Luthfi Athallah Herdita Wiryaman_2206826980_Kelas G_Tugas2PrakMetnum_revisi2.ipynb

    Luthfi Athallah Herdita Wiryaman_2206826980_Kelas G_Tugas2PrakMetnum_revisi3.ipynb

    (Revisi boleh dilakukan berkali-kali.)

  6. 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/AaWvGqEmY1nyx2d48

    • Kelas B: https://forms.gle/f433d9oJozgkdKZv5

    • Kelas C:https://forms.gle/iQbibikmgEacst8Z8

    • Kelas D: https://forms.gle/8F5D9hha2yEstd6z8

    • Kelas E: https://forms.gle/xz9fpedj9JLXHJH37

    • Kelas F: https://forms.gle/Ho7kbabuJUopkAP78

  7. Durasi pengerjaan Tugas 2 ini adalah 2 (dua) minggu, dan tenggat waktu (deadline) pengumpulan Tugas 2 ini adalah:

    Rabu, 22 Mei 2024, pukul 23.59 WIB.

    (sebelumnya ada salah ketik yaitu Minggu 19 Mei, jadinya Rabu 22 Mei)

    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.

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

  9. 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).

  10. Narahubung untuk Tugas 2 Praktikum Metode Numerik adalah:

    • Zaki - LINE: linenyazaki

    • Pandu - LINE: pandyadaffa

    • Dahut - LINE: narendrahutapea

    • Dani - LINE: 123_dani

Soal Tugas 2 Praktikum Metode Numerik

Ketentuan Soal

Renza sedang mengendarai mobil bersama Davin dan Icha. Saat memasuki jalan tol, Davin mulai mencatat data mengenai jarak yang ditempuh mobilnya tiap beberapa satuan waktu, sedangkan Icha mencatat data mengenai kecepatan mobilnya pada waktu yang sama dengan Davin. Data mereka jika disajikan pada tabel menjadi seperti berikut.

\[\begin{array}{|c|c|c|c|c|c|c|c|} \hline \text{Waktu (jam)}&0&0.2&0.3&0.5&0.7&1.1&1.3&1.7&1.9&2.3&2.9\\ \hline \text{Jarak (km)}&0&2.32&2.94&5.32&8.54&10.87&14.08&16.78&21.78&25.88&32.98\\ \hline \text{Kecepatan (km/jam)}&2.13&0.59&0.74&1.62&1.44&1.3&1.19&1.85&2.35&0.25&3.36\\ \hline \end{array}\]

Setelah Renza mengendarai mobil dan sampai, ia memeriksa catatan yang dibuat. Davin dan Icha masing-masing mencatat pada secarik kertas dengan menggunakan pulpen tinta. Sayangnya, ketika Renza memeriksa catatan Davin, kertas itu tertiup angin dan jatuh ke saluran air yang menyebabkan tintanya pudar dan banyak data yang tidak terbaca. Begitu catatan itu kering, terlihat nilai-nilai pada tabel ada yang hilang seperti tabel dibawah ini.

\[\begin{array}{|c|c|c|c|c|c|c|c|} \hline \text{Waktu (jam)}&0&0.2&0.3&0.5&0.7&1.1&1.3&1.7&1.9&2.3&2.9\\ \hline \text{Jarak (km)}&0&...&2.94&...&8.54&...&14.08&...&21.78&...&32.98\\ \hline \text{Kecepatan (km/jam)}&2.13&0.59&0.74&1.62&1.44&1.3&1.19&1.85&2.35&0.25&3.36\\ \hline \end{array}\]

Peran kalian adalah bantu Renza untuk mengembalikan nilai-nilai yang hilang tersebut menjadi keadaan semula dengan interpolasi numerik.

Bandingkan nilai-nilai yang kalian peroleh dengan nilai sebelumnya lalu analisis seberapa besar error/galat relatif antara interpolasi kalian dengan nilai sebelumnya.

Tugas Interpolasi Numerik

  • [20] Carilah polinomial hasil interpolasi menggunakan tiga metode interpolasi berikut:

    • interpolasi Lagrange,
    • Newton Forward atau Backward Divided Difference (gunakan salah satu saja),
    • Interpolasi Hermite (boleh menggunakan Hermite Lagrange atau Hermite Divide Difference)

    untuk mengembalikan nilai yang hilang di atas. Lalu nyatakan masing-masing polinomial interpolasi yang diperoleh dalam bentuk yang sudah disederhanakan/simplified.

  • [10] Buat tabel perbandingan antara nilai interpolasi kalian dan nilai aslinya, disertai nilai galat relatif yang diperoleh.

  • [5] Aproksimasikan titik-titik jarak yang tidak ada pada tabel, seperti pada jam \(0.1, 0.4, 0.6, 0.8\), dan seterusnya (dalam interval waktu \([0,2.9]\)) menggunakan interpolasi numerik. Buat tabel sedemikian sehingga Renza dapat mengetahui jarak yang telah ditempuh Renza pada waktu yang tidak terdata tersebut.

Tugas Diferensiasi Numerik

Saat ini kalian membantu Renza untuk aproksimasikan nilai yang hilang sebelumnya ditemani secangkir kopi. Ketika kalian membantu, ada tetesan kopi yang mengenai data kecepatan pada kertas milik Icha. Beberapa data di kertas tersebut hilang sedemikian sehingga tabel baru menjadi seperti berikut ini.

\[\begin{array}{|c|c|c|c|c|c|c|c|} \hline \text{Waktu (jam)}&0&0.2&0.3&0.5&0.7&1.1&1.3&1.7&1.9&2.3&2.9\\ \hline \text{Jarak (km)}&0&2.32&2.94&5.32&8.54&10.87&14.08&16.78&21.78&25.88&32.98\\ \hline \text{Kecepatan (km/jam)}&2.13&...&0.74&...&1.44&...&1.19&...&2.35&...&3.36\\ \hline \end{array}\]

Untungnya Renza ingat pada mata kuliah Fisika Dasar bahwa kecepatan pada satu titik waktu merupakan turunan dari fungsi jarak terhadap waktu. Dengan menggunakan hasil interpolasi sebelumnya, bantu Renza untuk mencari data kecepatan yang hilang menggunakan diferensiasi numerik.

  • [20] Manfaatkan polinomial interpolasi yang sudah kalian peroleh sebelumnya (dibebaskan menggunakan hasil polinomial dari metode interpolasi yang mana saja) untuk mengaproksimasikan nilai kecepatan dengan diferensiasi numerik untuk mengembalikan nilai yang hilang karena tetesan kopi di atas. Gunakan metode three point dan five point dengan \(h=0.05\); antara midpoint atau endpoint itu kalian pilih yang paling sesuai.

  • [10] Buat tabel perbandingan antara nilai diferensiasi numerik kalian dan nilai asli, disertai nilai galat relatif yang diperoleh.

  • [5] Aproksimasikan titik-titik kecepatan yang tidak ada pada tabel, seperti pada jam \(0.1, 0.4, 0.6, 0.8\), dan seterusnya (dalam interval waktu \([0,2.9]\)) menggunakan diferensiasi numerik. Buat tabel sedemikian sehingga Renza dapat mengetahui berapa kecepatannya pada waktu yang tidak terdata tersebut.

Kerapian Program

  • [10] Keseluruhan program interpolasi dan diferensiasi numerik dikemas di dalam satu subprogram atau fungsi (function) yang bisa menerima sembarang array data waktu, jarak, dan kecepatan, dan nilai \(h\).

  • [10] 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.

Bonus

Ketentuan berikut tidak wajib kalian buat, namun apabila dikerjakan akan menjadi nilai tambah apabila terdapat kekurangan pada program yang telah kalian buat.

  • Pilih salah satu metode interpolasi, berikan penjelasan keterangan kalian dan paparkan dengan grafik (plot) waktu-jarak sehingga Renza, Davin dan Icha dapat membaca secara visualisasi.

  • Pilih salah satu metode diferensiasi numerik, berikan penjelasan keterangan kalian dan paparkan dengan grafik (plot) waktu-kecepatan sehingga Renza, Davin dan Icha dapat membaca secara visualisasi.

  • Terapkan metode ekstrapolasi Richardson untuk metode diferensiasi numerik three point. Tambahkan hasilnya sebagai kolom baru di tabel three point yang kalian buat.

  • Terapkan metode ekstrapolasi Richardson untuk metode diferensiasi numerik yang five point. Tambahkan hasilnya sebagai kolom baru di tabel five point yang kalian buat.

Contoh Output Program (disclaimer: contoh input berbeda dengan soal, dalam pengerjaan tetap pakai input soal)

Masukkan list nilai x : [0,3,7,13,19,29]
Masukkan list nilai jarak di titik-titik tersebut : [0, 0.294, 0.854, 1.408, 2.178, 3.298]
Masukkan list nilai kecepatan di titik-titik tersebut : [0.213, 0.74, 0.144, 0.119, 0.235, 0.336]
Masukkan list nilai x yang dicari: [2,5,11,17,23]

 Interpolasi dengan metode interpolasi lagrange, forward/backward NDD, dan hermite lagrange
|   s |   jarak_asli |   jarak_lagrange |   error_lagrange |   jarak_FDD |   error_FDD |   jarak_BDD |   error_BDD |   jarak_Hermite_lagrange |   error_Hermite_lagrange |
|-----+--------------+------------------+------------------+-------------+-------------+-------------+-------------+--------------------------+--------------------------|
|   0 |        0     |         0        |        0         |    0        |   0         |    0        |   0         |                 0        |                 0        |
|   2 |        0.232 |         0.161997 |        0.0700026 |    0.161997 |   0.0700026 |    0.161997 |   0.0700026 |                -0.447941 |                 0.679941 |
|   3 |        0.294 |         0.294    |        0         |    0.294    |   0         |    0.294    |   0         |                 0.294    |                 0        |
|   5 |        0.532 |         0.584952 |        0.0529515 |    0.584952 |   0.0529515 |    0.584952 |   0.0529515 |                 0.919111 |                 0.387111 |
|   7 |        0.854 |         0.854    |        0         |    0.854    |   0         |    0.854    |   0         |                 0.854    |                 0        |
|  11 |        1.087 |         1.24738  |        0.160381  |    1.24738  |   0.160381  |    1.24738  |   0.160381  |                 1.55804  |                 0.471036 |

(Masukkan analisis kalian)

messageImage_1714893770910.jpg

messageImage_1714894006076.jpg
Masukkan besar step size (h) taknol, boleh negatif : 2

karena error paling bagus didapat menggunakan metode lagrange, maka akan digunakan polinomial lagrange
  ⎛                       4                         3                        2
x⋅⎝- 3.27025137596826e-6⋅x  + 0.000206488546994446⋅x  - 0.00434128668896137⋅x

                                            ⎞
 + 0.0349970174751141⋅x + 0.0267702273679134⎠

Ekstrapolasi dengan metode TPEP, FPEP, dan Richardson
|   s |   kecepatan_asli |   Kecepatan_ekstrapolasi_TPEP |   error_TPEP |   Kecepatan_ekstrapolasi_FPEP |   error_FPEP |   Kecepatan_ekstrapolasi_Richardson |   error_Richardson |
|-----+------------------+-------------------------------+--------------+-------------------------------+--------------+-------------------------------------+--------------------|
|   0 |            0.213 |                     0.213     |  0           |                     0.213     |    0         |                           0.213     |          0         |
|   2 |            0.59  |                     0.135961  |  0.454039    |                     0.122265  |    0.467735  |                           0.125652  |          0.464348  |
|   3 |            0.74  |                     0.74      |  0           |                     0.74      |    0         |                           0.74      |          0         |
|   5 |            0.162 |                     0.147147  |  0.0148533   |                     0.145424  |    0.0165756 |                           0.145524  |          0.0164758 |
|   7 |            0.144 |                     0.144     |  0           |                     0.144     |    0         |                           0.144     |          0         |
|  11 |            0.13  |                     0.0739207 |  0.0560793   |                     0.0820196 |    0.0479804 |                           0.0790754 |          0.0509246 |
|  13 |            0.119 |                     0.119     |  0           |                     0.119     |    0         |                           0.119     |          0         |
|  17 |            0.185 |                     0.147185  |  0.0378147   |                     0.146269  |    0.0387314 |                           0.14499   |          0.0400103 |
|  19 |            0.235 |                     0.235     |  0           |                     0.235     |    0         |                           0.235     |          0         |
|  23 |            0.25  |                     0.250668  |  0.000668219 |                     0.221899  |    0.0281006 |                           0.226995  |          0.0230051 |
|  29 |            0.336 |                     0.336     |  0           |                     0.336     |    0         |                           0.336     |          0         |
(masukkan analisis kalian)

```messageImage_1714893877266.jpg

messageImage_1714891896962.jpg