Ketika kita memiliki model numerik yang mewakili sistem fisik nyata, dan yang menunjukkan kekacauan (misalnya model dinamika fluida, model iklim), bagaimana kita bisa tahu bahwa model itu berkinerja sebagaimana mestinya? Kami tidak dapat membandingkan dua set output model secara langsung, karena bahkan perubahan kecil dalam kondisi awal akan secara dramatis mengubah output dari simulasi individu. Kita tidak dapat membandingkan keluaran model secara langsung dengan pengamatan, baik karena kita tidak pernah dapat mengetahui dengan cukup detail kondisi awal pengamatan, dan perkiraan numerik akan menyebabkan perbedaan kecil yang akan menyebar melalui sistem.
Pertanyaan ini sebagian diilhami oleh pertanyaan David Ketcheson tentang unit test kode ilmiah : Saya sangat tertarik pada bagaimana uji regresi untuk model seperti itu dapat diimplementasikan. Jika perubahan kondisi awal kecil dapat menyebabkan perubahan output besar (yang mungkin masih merupakan representasi realitas yang memadai), maka bagaimana kita dapat memisahkan perubahan tersebut dari perubahan yang disebabkan oleh parameter modifikasi, atau menerapkan rutinitas numerik baru?
Jika kode Anda dapat berjalan di rezim non-chaotic dari masalah mendasar Anda, terutama rezim non-chaotic di mana Anda dapat menggunakan metode solusi yang dibuat, Anda harus menulis tes regresi yang berjalan di rezim ini bahkan jika mereka tidak menarik bagi Anda . Jika tes ini gagal, maka Anda segera tahu bahwa ada yang salah dalam perubahan kode terbaru Anda. Kemudian Anda dapat beralih ke masalah yang lebih relevan secara fisik.
sumber
Pertama, saya akan fokus pada kalimat terakhir Anda, ketika Anda menyentuh beberapa hal berbeda dalam pertanyaan Anda, tetapi saya merasa itu cukup menangkap apa yang Anda minta. Jika Anda mengubah rutinitas numerik, Anda tidak boleh mengubah kondisi awal atau parameter sistem hingga Anda memvalidasi rutin baru dari yang lama. Pada tingkat terlemah saya melihat ini sebagai membandingkan beberapa waktu nilai rata-rata atas solusi Anda, dan mereka sedang dalam persetujuan (bahkan jika perilaku sementara menyimpang satu sama lain dalam kekacauan). Pada level terkuat, Anda akan mengharapkan dua rutinitas untuk mereproduksi perilaku transien penuh. Yang mana dari yang Anda inginkan, dan yang dapat diterima tergantung pada pertanyaan apa yang Anda tanyakan dan kesimpulan apa yang Anda ambil dari solusi.
Sejauh mengatakan apakah model "melakukan sebagaimana mestinya", itu adalah pertanyaan yang sama sekali berbeda. Ini tidak ada hubungannya dengan rutinitas numerik yang Anda pilih. Bagaimana Anda membangun model Anda, mulai dari asumsi yang disederhanakan hingga pengukuran / perhitungan parameter, Anda harus mendasarkan semua keputusan Anda pada fisika masalah, dan semoga pekerjaan sebelumnya dilakukan pada kasus yang sama. Anda mungkin dapat memvalidasi model dengan case sederhana yang direproduksi dalam pengaturan lab, tetapi ada kalanya bahkan itu non-sepele. Jika Anda tidak dapat menentukan parameter sistem yang penting dalam urutan besarnya, Anda tidak bisa mengharapkan orang mempercayai detail kecil yang Anda hitung dalam perilaku lokal sementara.
sumber