Model matematis untuk sistem dinamis

Simulasi Peristiwa Diskret dengan Python

Diogo Costa (PhD, MSc)

Adjunct Professor, University of Saskatchewan, Canada & CEO of ImpactBLUE-Scientific

Apa itu model matematis?

Deskripsi sistem alam atau buatan manusia dengan konsep dan bahasa matematika.

Model dapat diklasifikasikan sebagai:

  • Dinamis vs. non-dinamis
  • Diskret vs. kontinu
  • Deterministik vs. probabilistik (stokastik)
  • Linear vs. nonlinier
  • Lainnya

Model matematis bisa sederhana atau kompleks.

  • Pendekatan digital atas realitas
  • Mustahil memuat semua proses

George Box: "Semua model salah, tetapi beberapa bermanfaat."

Foto sungai mengalir deras di area berbatu.

Simulasi Peristiwa Diskret dengan Python

Contoh: model untuk memprediksi proses alami

Model aliran sungai

Plot aliran sungai teramati dan hasil simulasi dari waktu ke waktu di Stasiun Hidrologi Goaya, Tiongkok. Model menangkap catatan aliran teramati. Aliran sangat bervariasi dari waktu ke waktu pada model dan observasi.

  • Model ini memprediksi debit di Stasiun Hidrologi Goaya, Tiongkok.

  • Prediksi berbasis informasi curah hujan sebagai input model.

Contoh lain

  • Prakiraan cuaca
  • Prakiraan gelombang samudra
  • Kualitas air danau
  • Banjir perkotaan
  • dan banyak aplikasi lain
1 Chen, C., He, W., Zhou, H. et al. A comparative study among machine learning and numerical models for simulating groundwater dynamics in the Heihe River Basin, northwestern China. Sci Rep 10, 3904 (2020). https://doi.org/10.1038/s41598-020-60698-9
Simulasi Peristiwa Diskret dengan Python

Contoh: model untuk memprediksi aktivitas manusia

Memprediksi inflasi

Plot catatan inflasi Inggris (2002-2021) dan prakiraan (2022) oleh BNP Paribas. Prakiraan menunjukkan inflasi 7% pada 2022.

  • Prediksi inflasi sangat penting untuk mencegah krisis ekonomi

Contoh lain

  • Rantai pasok
  • Manufaktur
  • Logistik
  • Prakiraan ekonomi
  • Transportasi
  • Lainnya
1 https://www.ft.com/content/218d35ab-b044-467a-bb62-0d17547a4350
Simulasi Peristiwa Diskret dengan Python

Komponen dan struktur kode umum

  • 3 komponen utama
  • Data masukan dan parameter model
# Define model parameters
processes = {"process_1": 5,
             "process_2": 2,
             "process_3": 3}
  • Konfigurasi run
# Simulation period
simulation_time = 365

# Run model
discrete_model(processes, simulation_time)
  • Mesin model
def discrete_model(processes, simulation_time):

  # 1) Run end-condition
  while (time < simulation_time):
      process_names = list(processes.keys())

# 2) Loop over all processes for p in range(len(process_names)): process_name_p = process_names[p]
# 3) Account for effect of each process time += processes[process_name_p]
Simulasi Peristiwa Diskret dengan Python

Output model

Contoh output model peristiwa-diskret untuk aktivitas manufaktur

=> START OF SIMULATION  (Time = 0 days) 
Time =    6.00 days  |  Process Complete: Transport of raw material
Time =    9.00 days  |  Process Complete: Building components
Time =   11.00 days  |  Process Complete: Assembling parts
Time =   14.00 days  |  Process Complete: Selling product
=> COMPLETED: Supply-Chain cycle #1 | Time = 15.5 days
Time =   21.50 days  |  Process Complete: Transport raw material
Time =   24.50 days  | Process Complete: Building components
Time =   26.50 days  |  Process Complete: Assembling parts
Time =   29.50 days  |  Process Complete: Selling product
=> COMPLETED: Supply-Chain cycle #2 | Time = 31.0 days
Simulasi Peristiwa Diskret dengan Python

Visualisasi hasil model

  • Visualisasi hasil model: membantu mengenali pola dan titik balik sistem.

  • Visualisasi harus sesuai dengan tujuan simulasi.

  • Banyak paket visualisasi berguna: matplotlib, seaborn, plotly.

Logo pustaka Matplotlib. Logo pustaka Seaborn. Logo pustaka Plotly.

Contoh

  • Plot garis atau sebar 2D dari data termodel (y) vs. nilai waktu (x)
plt.plot(x, y, color='green', marker='o', 
         markersize=12, linestyle='dashed', 
         linewidth=2)
  • Histogram untuk mengelompokkan data di x dan menghitung jumlah nilai per bin
plt.hist(x, 50, density=True, 
         facecolor='g', alpha=0.75)
Simulasi Peristiwa Diskret dengan Python

Ayo berlatih!

Simulasi Peristiwa Diskret dengan Python

Preparing Video For Download...