Saya punya sistem persamaan diferensial biasa - 7 persamaan, dan ~ 30 parameter yang mengatur perilaku mereka sebagai bagian dari model matematika penularan penyakit. Aku suka mencari negara yang stabil bagi mereka persamaan Mengubah dx/dt = rest of the equation
ke 0 = equation
untuk masing-masing persamaan membuat masalah aljabar sederhana. Ini bisa dilakukan dengan tangan, tetapi saya sangat buruk dalam perhitungan seperti itu.
Saya sudah mencoba menggunakan Mathematica, yang dapat menangani versi yang lebih kecil dari masalah ini ( lihat di sini ), tetapi Mathematica berhenti untuk mengatasi masalah ini. Apakah ada cara yang lebih efisien / efektif untuk mendekati ini? Sistem matematika simbolik yang lebih efisien? Saran lain?
Beberapa pembaruan (21 Maret):
- Tujuannya memang untuk menyelesaikannya secara simbolis - jawaban numeriknya bagus tetapi untuk saat ini tujuan akhir adalah versi simbolik.
- Setidaknya ada satu keseimbangan. Saya belum benar-benar duduk dan membuktikan ini, tetapi dengan desain itu harus memiliki setidaknya satu yang sepele di mana tidak ada yang terinfeksi pada awalnya. Mungkin tidak ada apa-apa selain itu, tetapi itu akan membuat saya puas seperti yang lainnya.
- Di bawah ini adalah sekumpulan persamaan aktual yang sedang dibicarakan.
Singkatnya, saya mencari ekspresi simbolik untuk solusi sistem 7 persamaan kuadrat dalam 7 variabel.
Jawaban:
Sepertinya persamaan yang Anda hadapi semuanya polinomial setelah kliring penyebut. Itu hal yang baik (fungsi transendental seringkali sedikit lebih sulit untuk ditangani secara aljabar). Namun, itu bukan jaminan bahwa persamaan Anda memiliki solusi bentuk tertutup. Ini adalah poin penting yang banyak orang tidak benar-benar "dapatkan", bahkan jika mereka mengetahuinya secara teori, jadi itu menyatakan kembali: ada sistem persamaan polinomial yang cukup sederhana yang tidak ada cara untuk memberikan solusi dalam hal ( th) root dll. Contoh terkenal (dalam satu variabel) adalah x 5 - x + 1 = 0 . Lihat juga halaman wikipedia ini .n x5- x + 1 = 0
Karena itu, tentu saja ada juga sistem persamaan yang dapat diselesaikan, dan ada baiknya untuk memeriksa apakah sistem Anda adalah salah satunya. Dan bahkan jika sistem Anda tidak dapat dipecahkan, masih mungkin untuk menemukan bentuk untuk sistem persamaan Anda yang lebih sederhana, dalam beberapa hal. Misalnya, temukan satu persamaan yang hanya melibatkan variabel pertama (bahkan jika tidak dapat diselesaikan secara aljabar), maka persamaan kedua hanya melibatkan variabel pertama dan kedua, dll. Ada beberapa teori yang bersaing untuk bagaimana menemukan "bentuk normal" tersebut. sistem polinomial; yang paling terkenal adalah teori dasar Groebner, dan yang bersaing adalah teori rantai reguler.
Dalam sistem komputer aljabar Maple (pengungkapan penuh: Saya bekerja untuk mereka) keduanya diimplementasikan. The
solve
perintah biasanya menyebut Groebner dasar metode, saya percaya, dan yang dengan cepat grinds berhenti di laptop saya. Saya mencoba menjalankan perhitungan rantai biasa dan butuh waktu lebih lama daripada yang saya sabar tetapi tampaknya tidak meledak karena ingatannya buruk. Jika Anda tertarik, halaman bantuan untuk perintah yang saya gunakan ada di sini , dan ini adalah kode yang saya gunakan:sumber
Cara profesional adalah menulis persamaan Anda dalam bahasa pemodelan seperti AMPL atau GAMS, dan menyelesaikannya dengan solver seperti IPOPT.
AMPL adalah sistem komersial, tetapi versi mahasiswa gratis AMPL mampu menimbulkan masalah dengan hingga 300 persamaan dan variabel.
Jika Anda hanya ingin menyelesaikan satu atau beberapa masalah, Anda dapat menyelesaikannya secara online secara gratis dengan menggunakan server NEOS untuk optimisasi - cukup kirimkan deskripsi AMPL dan tunggu jawaban dikembalikan kepada Anda.
Jika Anda perlu memecahkan sistem seperti itu berulang kali sebagai bagian dari studi yang lebih besar (misalnya, memvariasikan parameter), Anda harus mengunduh IPOPT (yang merupakan perangkat lunak di bawah lisensi yang sangat liberal).
Sunting: Perhatikan bahwa solusi simbolik yang dapat dipahami biasanya terbatas pada masalah yang cukup kecil - biasanya ukuran basis Groebner tumbuh secara eksplosif dengan jumlah variabel atau tingkat polinomial, dan waktu untuk memproses lebih banyak lagi. Jadi waktu menunggu satu jam atau lebih dengan Mathematica adalah tanda (meskipun bukan bukti) bahwa solusi simbolis Anda akan sepenuhnya tidak dapat dipahami. Selain itu, mengevaluasi ekspresi yang panjang kemungkinan tidak stabil secara numerik, sehingga Anda akan membutuhkan presisi tinggi dalam evaluasi untuk mendapatkan hasil yang bermakna.
sumber
Menuliskan seluruh solusi tidak mungkin dengan alasan. Tapi di sini ada beberapa persamaan untuk sedikit mengurangi sistem:
Semoga berhasil!
sumber
Itu tergantung pada struktur persamaan Anda.
Jika Anda mencari semua keadaan stabil dari set persamaan Anda, dan Anda dapat mengatur ulangnya seperti yang dikatakan ErikP ke dalam polinomial, Anda dapat menggunakan metode dari geometri aljabar nyata untuk menghitung semua solusi numerik hingga presisi tinggi. Bertini adalah salah satu paket yang saya tahu, tetapi ada yang lain. Saya pergi ke sebuah konferensi di Notre Dame beberapa tahun yang lalu di mana Bertini digunakan untuk menemukan keadaan stabil ODE dari kinetika kimia; Bertini dikembangkan di Notre Dame.
Kemungkinan lain adalah dengan menggunakan metode yang diusulkan dalam "tes eksklusi Nonsmooth untuk menemukan semua solusi persamaan nonlinier" oleh MD Stuber, V. Kumar, dan PI Barton, BIT Matematika Angka 50 (4), 885-917, DOI: DOI: 10.1007 / s10543-010-0280-6 ; metode ini tidak memerlukan sistem persamaan menjadi polinomial. Paul Barton adalah penasihat saya, dan Matt Stuber adalah rekan kerja saya; jika Anda suka, saya bisa memintanya untuk perangkat lunak dan mengirimkannya kepada Anda. Makalah ini menggunakan metode dari optimasi global dan interval aritmatika (mengutip buku ArnoldNeumaier), serta metode Newton. Keuntungan dari metode ini adalah bahwa ia harus menemukan semua solusi; kerugiannya adalah rumit.
sumber
Saya akan menyarankan melihat metode homotopy. Meskipun tidak simbolis, itu akan menghasilkan semua solusi dari masalah Anda. Untuk perpustakaan yang mudah dibaca:
http://homepages.math.uic.edu/~jan/PHCpack/phcpack.html
sumber