Dalam numerik, sangat penting untuk dapat mengidentifikasi skema yang tidak stabil dan meningkatkan stabilitasnya. Bagaimana cara mengidentifikasi perhitungan floating point yang tidak stabil?
Saya sedang mengerjakan simulasi yang sangat kompleks di mana banyak skema numerik bekerja bersama dan saya mencari metode untuk mengidentifikasi bagian-bagian yang lemah. Saya sedang mengerjakan model fisik yang melibatkan persamaan diferensial. Pandangan mata burung dari keseluruhan proses adalah:
(Langkah awal) Kumpulkan pengamatan fisik P .
Tentukan parameter awal simulasi. Ini menggunakan algoritma pengoptimalan, di mana kita berjalan di ruang parameter dan mencari parameter C sedemikian sehingga beberapa fungsi kesalahan E (F (C), P) diminimalkan, di mana F adalah beberapa kuantitas yang diturunkan dari parameter.
Pasang C di mesin simulasi. Ini adalah skema Euler dari EDP, sehingga pada setiap langkah waktu, kami menghitung istilah yang menggerakkan dinamika (masing-masingnya adalah fungsi kompleks, berpotensi tunduk pada ketidakstabilan) dan memberi makan skema Euler dengan istilah dinamis ini untuk menghitung selanjutnya negara. Ini berlangsung selama ribuan poin waktu.
Pada akhir simulasi, kami menghitung beberapa fungsi Proof (S) dari keadaan akhir S dan membandingkan dengan beberapa jumlah yang diperlukan (P) yang disimpulkan dari jumlah yang diamati. Ini bukan bukti formal dari hasilnya, lebih merupakan pemeriksaan yang masuk akal.
Juga, saya melihat menara operasi yang kompleks (perhitungan istilah dinamis, dalam skema Euler, dalam Bukti ). Dan ingin mengenali "bagian buruk" dan memperbaikinya.
Saya berspekulasi bahwa menggunakan implementasi perangkat lunak angka floating point dengan presisi berkurang akan memperbesar ketidakstabilan skema numerik, sehingga memudahkan perbandingan antara implementasi yang berbeda. Apakah ini teknik umum untuk menyelidiki pertanyaan ini? Apakah mungkin menggunakan mesin virtual, seperti Bochs, untuk mencapai ini tanpa mengubah program?
Untuk menangani pertanyaan stabilitas dengan tepat, kadang-kadang dapat diterima untuk menargetkan input tipikal dari prosedur numerik, sehingga dapat disesuaikan untuk melakukannya dengan baik pada input tersebut dan mungkin kurang baik pada input lain yang valid, namun tidak mungkin. Diberikan sampel input tipikal, dimungkinkan untuk mengintip beberapa hasil antara dan menyiapkan profil statistik untuk mereka. Sekali lagi, apakah ini teknik umum untuk mempelajari masalah stabilitas? Apakah mesin virtual bermanfaat untuk ini?