Dalam praktiknya, runtime penyelesaian IVP ˙ x ( t ) = f ( t , x ( t ) ) secara numerik
Kami hanya tertarik pada nilai akhir .
Saya mencari hasil teoritis dan praktis yang membantu saya memilih metode ODE terbaik dalam pengaturan seperti itu.
Jika, misalnya, maka kita bisa menyelesaikan IVP menggunakan dua langkah lebar Euler eksplisit atau satu langkah lebar menggunakan metode titik tengah. Tidak segera jelas bagi saya mana yang lebih disukai. Untuk N yang lebih besar , tentu saja orang juga bisa memikirkan metode multi-langkah, skema Runge-Kutta yang diulang, dll.
Apa yang saya cari adalah hasil yang mirip dengan yang ada, misalnya, untuk aturan kuadratur: Kita dapat memilih bobot dan titik terkait sehingga aturan kuadratur tepat untuk semua polinomial sedemikian sehingga .
Oleh karena itu saya mencari batas atas atau bawah pada keakuratan global metode ODE, mengingat sejumlah evaluasi yang diperbolehkan dari RHS . Tidak apa-apa jika batas hanya berlaku untuk beberapa kelas RHS atau menimbulkan kendala tambahan pada solusi (seperti hasil untuk aturan quadrature yang hanya berlaku untuk polinomial hingga tingkat tertentu).
EDIT: Beberapa informasi latar belakang: Ini untuk aplikasi waktu nyata yang sulit, yaitu hasil harus tersedia sebelum batas waktu yang diketahui. Oleh karena itu batas jumlah evaluasi RHS sebagai faktor biaya yang mendominasi. Biasanya masalah kita kaku dan relatif kecil.
EDIT2: Sayangnya saya tidak memiliki persyaratan waktu yang tepat, tetapi aman untuk mengasumsikan bahwa akan menjadi agak kecil (pasti <100, lebih mendekati 10). Mengingat persyaratan real-time kami harus menemukan tradeoff antara akurasi model (dengan model yang lebih baik mengarah ke waktu pelaksanaan RHS yang lebih lama dan karenanya ke lebih rendah ) dan keakuratan metode ODE (dengan metode yang lebih baik membutuhkan lebih tinggi nilai-nilai ).N N
sumber
Jawaban:
Saya pikir referensi kunci untuk menjawab pertanyaan Anda adalah makalah ini oleh Hosea dan Shampine . Sekarang saya akan memberikan latar belakang.
Secara umum, ukuran langkah yang dapat Anda gunakan saat mengintegrasikan IVP secara numerik dapat dibatasi oleh stabilitas atau akurasi. Jika Anda ingin memilih pemecah terbaik dalam hal stabilitas, Anda perlu mempertimbangkan wilayah stabilitas absolut . Untuk metode satu langkah ini
Di sini adalah fungsi stabilitas dari metode; lihat misalnya teks Hairer et. Al. Kondisi yang diperlukan untuk stabilitas adalah bahwa λ h ∈ S di mana λ berkisar pada nilai eigen dari jacobian f dan h adalah ukuran langkah. Ini tidak selalu merupakan kondisi yang cukup untuk masalah nonlinear tetapi biasanya merupakan aturan praktis yang baik dan digunakan dalam praktik.P(z) λh∈S λ f h
Untuk perawatan yang ekstensif dari masalah menemukan metode (eksplisit) yang memungkinkan ukuran langkah besar yang stabil, lihat makalah ini tentang polinomial stabilitas dan yang ini tentang optimasi metode Runge-Kutta untuk simulasi fluida kompresibel .
Stabilitas adalah masalah yang relevan jika Anda menemukan bahwa ukuran step stabil terbesar sudah memberi Anda cukup akurasi. Di sisi lain, ukuran langkah mungkin dibatasi oleh persyaratan akurasi Anda. Apa yang biasanya dilakukan adalah kontrol kesalahan lokal. Solusinya dihitung dengan menggunakan dua metode, dan perbedaannya digunakan sebagai estimasi kesalahan yang kurang akurat. Ukuran langkah dipilih secara adaptif untuk mencapai sedekat mungkin toleransi yang ditentukan.
Dua ukuran teoritis adalah kunci untuk memprediksi efisiensi akurasi. Yang pertama adalah urutan akurasi metode, yang menggambarkan tingkat di mana kesalahan mendekati nol ketika ukuran langkah diturunkan. Yang kedua adalah indeks efisiensi akurasi (lihat kertas Hosea dan Shampine terkait dalam kalimat pertama di atas) yang memperhitungkan konstanta yang muncul dalam istilah kesalahan dan memungkinkan perbandingan antara metode dengan urutan yang sama.
Keakuratan dan efisiensi stabilitas dari berbagai metode dapat dihitung dengan cara yang sederhana dan otomatis menggunakan NodePy (disclaimer: NodePy dikembangkan oleh saya).
sumber
Tidak ada banyak hasil dalam arah ini karena lebih sulit daripada hanya memperbaiki akurasi, karena pertimbangan stabilitas seringkali mengharuskan Anda untuk memilih langkah-langkah waktu yang lebih kecil daripada yang Anda perlukan untuk akurasi yang Anda inginkan. Jadi hasilnya dibagi antara kasus yang kaku dan yang tidak kaku. Kasus pertama, langkah-langkah waktu dan persyaratan evaluasi RHS umumnya tidak diatur oleh keakuratan, dan dalam kasus yang terakhir itu.
Saya akan fokus pada metode eksplisit, karena kasus implisit jauh lebih jelas berapa banyak evaluasi RHS yang perlu Anda gunakan .. itu sepenuhnya tergantung pada bagaimana Anda memutuskan untuk menyelesaikan sistem yang dihasilkan.
Untuk sistem yang tidak kaku:
Ada batasan tahapan untuk metode Runge-Kutta eksplisit yang mengatakan berapa banyak tahapan (evaluasi RHS) yang diperlukan untuk mencapai urutan akurasi tertentu. Setelah urutan keempat jumlah tahap melebihi urutan akurasi, dan kesenjangan terus bertambah. Buku ODE besar Butcher: http://books.google.com/books/about/Numerical_Methods_for_Ordinary_Different.html?id=opd2NkBmMxsC
melakukan pekerjaan dengan baik menjelaskan beberapa bukti 'tidak ada' ini.
Contoh aturan kuadratur Anda mengarah ke metode tipe multistep seperti Adams-bashforth, atau apa yang sekarang disebut metode koreksi spektral-tangguhan. Untuk adams-bashforth, Anda hanya memerlukan satu evaluasi RHS per langkah, tetapi karena wilayah stabilitas pada umumnya kecil untuk metode ini, Anda biasanya melakukan pekerjaan yang sama dalam hal evaluasi RHS seperti metode Runge-Kutta dengan metode yang sama. memesan.
Berikut adalah makalah tentang koreksi tangguhan spektral:
https://www.google.com/search?q=spectral+deferred+correction&aq=f&oq=spectral+deferred+correction&aqs=chrome.0.57j0l2j62.3336j0&sourceid=chrome&ie=UTF-8
Saya tidak yakin bagaimana metode integrasi ini bermain melawan metode eksplisit standar, mereka sering membutuhkan lebih banyak memori untuk menyimpan status solusi pada node quadrature dan jadi saya tidak pernah menggunakannya sendiri.
Untuk sistem yang kaku:
sumber
Tentu saja ada pengecualian (sistem yang sangat besar, sistem yang sangat kaku) tetapi sentimen umum di masyarakat adalah bahwa pertanyaan merancang pemecah ODE untuk sistem "standar" adalah yang dipecahkan. Akibatnya, saya pikir pertanyaan yang Anda ajukan bukanlah pertanyaan yang sangat menarik - pertanyaan ini membahas komponen desain pemecah ODE yang tidak lagi penting. Ini juga dapat menjelaskan kurangnya literatur tentang masalah ini.
sumber
f(x)
tidak gratis tetapi agak mahal sehingga jumlah evaluasi terbatas.Jadi poin pertama adalah memastikan apakah RHS Anda benar-benar lebih mahal daripada aljabar linier yang mendasarinya.
Poin kedua: diketahui dari literatur bahwa solver berdasarkan metode "mahal" (yaitu metode RK eksplisit) kadang-kadang berkinerja lebih cepat daripada yang "lebih murah" (metode multistep eksplisit).
Kesimpulannya, saya pikir Anda tidak hanya mempertimbangkan hitungan evaluasi RHS.
sumber