Standar ilmiah untuk kesalahan numerik


40

Di bidang penelitian saya, spesifikasi kesalahan eksperimental diterima secara umum dan publikasi yang gagal menyediakannya sangat dikritik. Pada saat yang sama saya sering menemukan bahwa hasil perhitungan numerik disediakan tanpa ada kesalahan numerik, meskipun (atau mungkin karena) metode numerik yang sering dipertanyakan sedang bekerja. Saya berbicara tentang kesalahan yang dihasilkan dari diskritisasi dan ketepatan perhitungan numerik dll. Tentu saja, perkiraan kesalahan ini tidak selalu mudah diperoleh, seperti dalam kasus persamaan hidro-dinamik tetapi sering tampaknya merupakan hasil dari kemalasan sementara saya percaya bahwa spesifikasi estimasi kesalahan numerik harus menjadi standar seperti halnya untuk hasil eksperimen. Karena itu pertanyaan saya:

Jawaban:


26

Pertanyaan Anda adalah tentang Verifikasi model. Anda dapat menemukan banyak sumber daya tentang metode dan standar dengan mencari Verifikasi dan Validasi ( Roache 1997 , 2002 , 2004 , Oberkampf & Trucano 2002 , Salari & Knupp 2000 , Babuska & Oden 2004 ), serta topik yang lebih luas dari Kuantifikasi Ketidakpastian . Daripada menguraikan metode, saya ingin menyoroti komunitas yang mengambil sikap tegas terhadap masalah ini.

Pada tahun 1986, Roache, Ghia, dan White mendirikan Jurnal Pernyataan Kebijakan Editorial Teknik Cairan pada Kontrol Akurasi Numerik yang dibuka dengan

Masalah profesional ada di komunitas dinamika fluida komputasi dan juga di bidang fisika komputasi yang lebih luas. Yaitu, ada kebutuhan untuk standar yang lebih tinggi pada kontrol akurasi numerik.

[...] Masalahnya tentu tidak unik untuk JFE dan bahkan menjadi fokus yang lebih tajam di Konferensi Stanford 1980 -81 AFOSRHTTM-mengenai Arus Turbulent Kompleks. Itu adalah kesimpulan dari Komite Evaluasi konferensi itu bahwa, di sebagian besar pengajuan ke konferensi itu, tidak mungkin untuk mengevaluasi dan membandingkan keakuratan model turbulensi yang berbeda, karena orang tidak dapat membedakan kesalahan pemodelan fisik dari kesalahan numerik yang berkaitan dengan algoritma dan kisi. Ini khususnya kasus untuk metode akurat orde pertama dan metode hybrid.

Mereka menyimpulkan dengan pedoman yang sangat langsung:

Jurnal Teknik Fluida tidak akan menerima untuk publikasi makalah yang melaporkan solusi numerik dari masalah teknik fluida yang gagal untuk mengatasi tugas pengujian kesalahan pemotongan sistematis dan estimasi akurasi.

[...] kita harus memperjelas bahwa perhitungan tunggal dalam jaringan tetap tidak akan dapat diterima , karena tidak mungkin untuk menyimpulkan perkiraan akurasi dari perhitungan seperti itu. Selain itu, editor tidak akan menganggap perjanjian yang masuk akal dengan data eksperimental sebagai bukti akurasi yang memadai, terutama jika ada parameter yang dapat disesuaikan yang terlibat, seperti dalam pemodelan turbulensi.

Versi saat ini berisi seperangkat kriteria yang komprehensif dan mewakili standar yang, menurut pendapat saya, bidang lain harus bercita-cita untuk mencocokkan. Sangat memalukan bahwa bahkan hari ini, kesadaran tentang pentingnya verifikasi model tidak ada di banyak bidang.


1
Poin terakhir tentang parameter merdu mengingatkan saya pada kutipan oleh John von Neumann, "Dengan empat parameter saya dapat memuat seekor gajah, dan dengan lima saya bisa membuatnya menggoyangkan belalainya."
Jed Brown

Ini hanya membahas efek kesalahan diskritisasi, bukan kesalahan pembulatan, yang hampir secara universal diabaikan dalam simulasi fluida karena mereka biasanya kurang berkontribusi terhadap kesalahan total. Tetapi dalam aplikasi yang tidak melibatkan persamaan diferensial atau integral, tidak ada kesalahan diskritisasi. Dalam masalah ini, kesalahan pembulatan dan kesalahan pemotongan iterasi adalah sumber kesalahan dominan.
Arnold Neumaier

Apakah Anda pikir perkiraan posteriori yang ketat dapat menggantikan persyaratan independensi kisi? Seperti yang dikatakan itu agak kabur, berapa banyak yang Anda sempurnakan grid untuk memastikan kemerdekaan? Estimator posteriori yang baik di sisi lain seharusnya tidak meninggalkan ruang untuk ambiguitas.
Reid.Atcheson

2
@ Reid.Atcheson "Yo dawg, saya mendengar Anda menyukai perkiraan kesalahan jadi saya membuat Anda memperkirakan kesalahan untuk perkiraan kesalahan Anda sehingga Anda dapat memperkirakan kesalahan dalam ...", tapi sayangnya, perkiraan kesalahan praktis cenderung tidak datang dengan keras batas kasus terburuk. Batasan apa yang ada sering pesimistis dan bergantung pada asumsi yang tidak berlaku untuk sebagian besar masalah teknik. Bahkan dengan penaksir kesalahan tertinggi, Anda perlu memverifikasi bahwa itu diterapkan dengan benar. Dengan segala cara, gunakan penaksir kesalahan jika ada, tetapi penaksir kesalahan bukan verifikasi yang berdiri sendiri.
Jed Brown

19

Tidak ada standar seperti itu, karena estimasi kesalahan yang andal seringkali harganya jauh lebih mahal dari perkiraan perhitungannya.

Pada dasarnya ada empat jenis perkiraan kesalahan:

(i) Analisis teoritis membuktikan bahwa metode numerik stabil secara numerik. Ini tidak benar-benar memberikan bar kesalahan karena analisis hanya menjamin bahwa kesalahan yang dibuat tidak lebih buruk daripada kesalahan kuantitatif dalam argumen input. Cukup untuk sebagian besar perhitungan ilmiah karena inputnya juga hanya perkiraan, sehingga kesalahan yang dibuat dengan metode yang stabil secara numerik tidak lebih buruk daripada menggunakan input yang sedikit berbeda (tetapi tidak diketahui). Sebagian besar metode numerik yang sangat dihormati disertai dengan analisis numerik yang stabil, meskipun orang hampir tidak menemukan implementasi yang melaporkan atas permintaan apa yang disebut sebagai kesalahan mundur.

(ii) Estimasi kesalahan asimptotik. Ini mengasumsikan bahwa produk dari semua kesalahan (kesalahan input, kesalahan pembulatan atau kesalahan diskritisasi menjadi sumber yang paling umum) dapat diabaikan (dipertanyakan apakah fungsinya sangat nonlinear), dan menggunakan analisis sensitivitas untuk menyebarkan kesalahan input. Bersama dengan analisis stabilitas numerik, ini juga dapat menangkap efek kesalahan pembulatan atau kesalahan diskritisasi. Bilah galat yang dihasilkan sama validnya dengan validitas asumsi yang menjadi dasarnya. Menggunakan alat diferensiasi otomatis, biaya estimasi kesalahan biasanya faktor 1 atau 2 di samping biaya untuk perkiraan. Jadi estimasi kesalahan semacam ini cukup sering dalam praktiknya.

[Sunting] Misalnya, teorema Oettli-Prager memberikan perkiraan kesalahan mundur yang dapat dihitung dengan mudah untuk solusi sistem linear. Analisis sensitivitas mengatakan bahwa kesalahan ini harus dikalikan dengan norma invers matriks, yang dapat diperkirakan menggunakan penduga Hager (dimasukkan ke dalam penduga angka kondisi modern).

(iii) Analisis kesalahan stokastik: (CESTAC, http://www.sciencedirect.com/science/article/pii/0378475488900705) Hal ini dilakukan dengan membebani semua operasi dengan varian stokastik yang sesuai yang mengevaluasi tiga set argumen dan kemudian menambahkan kesalahan pembulatan acak buatan. tiga hasil akhir digunakan untuk menghitung rata-rata dan standar deviasi akar kuadrat dari (jumlah kuadrat penyimpangan dari rata-rata dibagi 2 = 3-1). Ini memberikan perkiraan akurasi yang cukup berguna dari bagian kesalahan pembulatan. Namun ini tidak memperhitungkan kesalahan diskritisasi, yang biasanya merupakan kesalahan yang mendominasi dalam perhitungan ODE dan PDE. Biaya tergantung pada bahasa pemrograman karena overhead dalam menjalankan operasi yang kelebihan beban. Dengan asumsi (yang hampir tidak pernah terjadi) overloading tidak membawa penalti waktu, biaya untuk hasil ditambah perkiraan kesalahan adalah faktor 3 dibandingkan dengan menghitung perkiraan saja.

(iv) Analisis interval: Ini memberikan batasan yang ketat untuk semua sumber kesalahan jika dilakukan dengan benar, tetapi kecuali dalam kasus sederhana itu memerlukan banyak pengalaman (atau perangkat lunak yang mewujudkannya) untuk melakukannya dengan cara yang batas-batasnya tidak terlalu melebih-lebihkan kesalahan sebenarnya . Perangkat lunak interval yang baik tersedia antara lain untuk aljabar linier (misalnya, IntLab http://www.ti3.tu-harburg.de/rump/intlab/ ; biaya faktor sekitar 6 jika dimensi besar) dan optimasi global (mis. , COCONUT http://www.mat.univie.ac.at/~coconut/coconut-environment/; mungkin jauh lebih mahal atau bahkan lebih murah daripada perkiraan optimasi global, tergantung pada fitur masalahnya). Tetapi banyak kelas masalah lain yang mudah ditangani secara akurat (misalnya, menutup lintasan planet-planet besar tata surya selama 10 tahun) benar-benar di luar jangkauan untuk generasi saat ini dari metode interval.


Terima kasih. Saya ingin melihat (ii) di tempat kerja. Bisakah Anda memberikan contoh di mana penulis menggabungkan analisis sensitivitas dan analisis stabilitas numerik untuk menentukan perkiraan kesalahan global.
highsciguy

@highsciguy: lihat edit saya ke (ii)
Arnold Neumaier

Terima kasih. Invers matriks Jacobian?
kelas atas

@highsciguy: tidak mengerti pertanyaan terakhir Anda. Contohnya adalah memecahkan sistem persamaan linear, tidak ada angka Jacobian.
Arnold Neumaier

1
Saya mengabaikan linear. Maka jelas. Apakah ada upaya untuk menggeneralisasi teorema Oettli-Prager ke sistem non-linear?
kelas atas

13

Semacam. Ada batas kesalahan teoretis yang telah diperoleh oleh analis numerik yang biasanya melebih-lebihkan, dan mungkin tidak berguna dalam praktik, karena mereka mungkin melibatkan informasi yang sulit diperoleh untuk masalah dalam praktik. Contoh yang baik adalah batasan kesalahan numerik dalam solusi persamaan biasa, yang dapat Anda temukan di buku Hairer dan Wanner. Buku Nick Higham, Accuracy and Stability of Numerical Algorithms (saya mungkin sedikit tidak suka dengan judulnya) juga memberikan beberapa batasan kesalahan pada operasi numerik umum dan algoritma aljabar linier. Literatur analisis numerik penuh dengan batasan-batasan seperti itu.

Metode analisis interval juga telah digunakan untuk menghitung batas kesalahan; metode ini ketat, dan cenderung memberikan batas kesalahan yang lebih kuat daripada batas kesalahan teoritis, tetapi metode ini mungkin masih terlalu melebih-lebihkan kesalahan dalam perhitungan numerik. Metode-metode ini telah dieksploitasi terbaik (setahu saya) dalam optimasi global, tetapi juga menemukan manfaatnya dalam kuantifikasi ketidakpastian. Arnold Neumaier telah menulis setidaknya satu buku tentang metode analisis interval, dan lebih memenuhi syarat untuk mengomentari topik ini secara rinci. Selain potensi masalah perkiraan berlebihan, metode analisis interval menderita karena membutuhkan infrastruktur komputasi tambahan yang memerlukan perkuatan paket simulasi numerik besar yang ada (seperti PETSc, Trilinos, CLAWPACK / PyClaw, dll. ) untuk memasukkan interval aritmatika dan diferensiasi otomatis (untuk metode berbasis Taylor). Dari apa yang saya lihat, tidak ada banyak aritmatika interval berlisensi dan paket diferensiasi otomatis di luar sana, meskipun ada beberapa. Meskipun begitu, kadang-kadang, perpustakaan ini memiliki fungsi terbatas; sulit untuk menemukan perpustakaan aritmatika interval berlisensi-permisif (berlisensi LGPL, atau BSD) dengan fungsionalitas mirip-BLAS.

Perkiraan kesalahan posteriori dapat diperoleh dengan lebih mudah, tetapi tidak terlalu ketat. Saya paling terbiasa dengan perkiraan ini dari bekerja pada persamaan diferensial biasa, tetapi mereka juga ada untuk banyak metode yang digunakan untuk menghitung solusi untuk persamaan diferensial parsial.

Lebih luas, metode dari kuantifikasi ketidakpastian, seperti penggunaan ekspansi kekacauan polinomial, metode Monte Carlo, atau metode pengambilan sampel lainnya dapat digunakan untuk mengukur ketidakpastian dalam perhitungan karena variasi dalam parameter input. Metode-metode ini harus dapat memberikan semacam "bar kesalahan" heuristik karena variasi dalam parameter, tetapi tidak akan memberikan batasan yang ketat.

Saya percaya bahwa Anda benar tentang spesifikasi kesalahan numerik: sains komputasi harus sama teliti dalam menyajikan hasilnya sebagai ilmu fisika berbasis eksperimen. Ada banyak pekerjaan yang sedang dilakukan di bidang ini (di bawah istilah payung "kuantifikasi ketidakpastian" dan "analisis numerik"), dan harapan saya bahwa bar kesalahan akan dimasukkan ketika membahas sebagian besar hasil komputasi di beberapa titik di masa depan. .


apakah Anda memiliki referensi yang baik dari artikel ikhtisar tentang ekspansi kekacauan polinomial ini? Saya telah melihat istilah itu muncul secara teratur dan ingin belajar lebih banyak tentang mereka. Terima kasih.
GertVdE

2
Dongbin Xiu umumnya menulis makalah yang dapat diakses tentang ekspansi kekacauan polinomial. Inilah salah satu makalah tinjauan umum yang ditulisnya: dam.brown.edu/scicomp/media/report_files/BrownSC-2003-07.pdf
Geoff Oxberry

7

Selain jawaban lain, ada beberapa poin tambahan untuk dipertimbangkan.

  1. Kesalahan diskritisasi numerik, atau setidaknya urutan skema, dapat ditentukan secara analitis. Diskusi tentang kesalahan-kesalahan ini dapat dihilangkan dari kertas jika mereka menggunakan skema yang umum dikenal.
  2. Studi penyempurnaan grid di mana masalah yang sama, biasanya sesuatu yang sederhana, dijalankan pada grid yang semakin halus. Ini dibandingkan dengan solusi yang tepat, atau solusi pada kisi-kisi halus ridiculously, untuk menemukan norma-L, biasanya L2. Kemiringan estimasi kesalahan ini memberikan urutan akurasi.
  3. Dalam masalah di mana skema numerik yang berbeda tersedia tetapi penyempurnaan kisi atau solusi tepat tidak, metode lain yang disebut Richardson Extrapolation akan memberikan batasan pada istilah kesalahan. Ulasan yang baik menggambarkan metode ini dapat ditemukan dalam makalah ini
  4. Terakhir, setiap jurnal menetapkan standar penerimaannya sendiri. Ada yang ketat, ada yang tidak. Sebagai contoh, AIAA menetapkan standarnya di sini . Jurnal lain memiliki informasi yang mirip dengan penulis.

Saya hanya ingin mengomentari poin 2. Saya merasa bahwa dalam memecahkan masalah dunia nyata secara numerik, jauh lebih mungkin untuk melihat norma yang membandingkan perbedaan antara dua penyempurnaan berturut-turut, daripada dengan "kisi yang sangat halus". Jika Anda dapat memecahkan grid yang sangat bagus, mengapa Anda repot dengan yang lebih kasar?
Godric Seer

Studi perbaikan grid tidak praktis pada masalah nyata biasanya. Di situlah titik 3 masuk, jauh lebih mudah untuk menentukan batas kesalahan dengan mengubah urutan skema daripada semakin memperbaiki grid. Sebagai contoh, kami memvalidasi kode kami menggunakan vortex inviscid yang masih non-linear tetapi kami dapat menjalankan solusi "tepat" yang sangat baik untuk memverifikasi akurasi. Tetapi pada swirl combustor penuh, kita tidak bisa melakukannya sehingga kita menggunakan skema yang berbeda.
tpg2114

Perhatikan juga bahwa memperbaiki grid dan memeriksa perbedaan dalam jawabannya menunjukkan independensi grid, yang merupakan hal yang berbeda dari memeriksa batas kesalahan. Perbaikan kotak masih diperlukan bahkan dalam kasus-kasus praktis, meskipun perbaikan kotak untuk sesuatu seperti Simulasi Eddy Besar membuka kaleng cacing lainnya.
tpg2114

Terima kasih, saya salah mengaitkan independensi kisi dengan batas kesalahan. Saya kira saya selalu berasumsi bahwa independensi grid menyiratkan beberapa tingkat jaminan kualitatif pada kesalahan diskritisasi.
Godric Seer

3
Independensi Grid menyiratkan grid yang lebih baik tidak akan meningkatkan jawaban tetapi tidak memberi tahu Anda seberapa akurat jawaban Anda atau seberapa cepat memperbaiki grid meningkatkan akurasi.
tpg2114
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.