Karena salah satu jawaban saya telah dikutip, saya akan mencoba menjelaskan mengapa saya menyarankan menggunakan IPOPT daripada MINPACK.
Keberatan saya untuk menggunakan MINPACK tidak ada hubungannya dengan algoritma yang digunakan MINPACK dan segala sesuatu yang berkaitan dengan implementasinya. Keberatan utama saya adalah bahwa perangkat lunak tanggal kembali ke 1980, dan terakhir diperbarui pada tahun 1999. Jorge Moré sudah pensiun; Saya ragu dia atau penulis perangkat lunak lain mengawasi hal itu lagi, dan tidak ada tim orang yang secara aktif mendukungnya. Satu-satunya dokumentasi yang dapat saya temukan pada perangkat lunak adalah laporan teknis Argonne 1980 asli yang ditulis oleh Jorge Moré dan penulis MINPACK lainnya. (Bab 1-3 dapat ditemukan di sini , dan Bab 4 dapat ditemukan di sini.) Setelah mencari kode sumber MINPACK dan membaca dokumentasi (PDF adalah gambar yang dipindai, dan tidak dapat dicari), saya tidak melihat opsi untuk mengakomodasi kendala. Karena poster asli dari masalah kuadrat-terkecil nonlinier ingin menyelesaikan masalah kuadrat-terkecil nonlinier, MINPACK bahkan tidak akan menyelesaikan masalah itu.
Jika Anda melihat milis IPOPT, beberapa pengguna menunjukkan bahwa kinerja paket pada masalah nonlinier kuadrat (NLS) dicampur relatif terhadap algoritma Levenberg-Marquardt dan algoritma NLS yang lebih khusus (lihat di sini , di sini , dan di sini ). Kinerja IPOPT relatif terhadap algoritma NLS, tentu saja, tergantung masalah. Mengingat umpan balik pengguna tersebut, IPOPT sepertinya merupakan rekomendasi yang masuk akal relatif terhadap algoritma NLS.
Namun, Anda menyatakan bahwa algoritma NLS harus diselidiki. Saya setuju. Saya hanya berpikir bahwa sebuah paket yang lebih modern dari MINPACK harus digunakan karena saya percaya itu akan berkinerja lebih baik, lebih bermanfaat, dan didukung. Ceres tampaknya seperti paket kandidat yang menarik, tetapi tidak dapat menangani masalah yang dibatasi saat ini. TAOakan bekerja pada masalah kuadrat-kotak terbatas, meskipun tidak mengimplementasikan Levenberg-Marquardt klasik, tetapi sebaliknya mengimplementasikan algoritma bebas-derivatif. Algoritma bebas derivatif mungkin akan bekerja dengan baik untuk masalah skala besar, tapi saya tidak akan menggunakannya untuk masalah skala kecil. Saya tidak dapat menemukan paket lain yang menginspirasi kepercayaan besar dalam rekayasa perangkat lunak mereka. Misalnya, GALAHAD tampaknya tidak menggunakan kontrol versi atau pengujian otomatis, sekilas. MINPACK sepertinya tidak melakukan hal-hal itu juga. Jika Anda memiliki pengalaman dengan MINPACK atau rekomendasi mengenai perangkat lunak yang lebih baik, saya akan mendengarkan.
Dengan semua itu dalam pikiran, kembali ke kutipan dari komentar saya:
Setiap sistem persamaan setara dengan masalah optimisasi, itulah mengapa metode berbasis Newton dalam optimasi sangat mirip dengan metode berbasis Newton untuk menyelesaikan sistem persamaan nonlinier.
Sebuah komentar yang lebih baik mungkin ada hubungannya dengan:
nng(x)=0
Pernyataan ini berlaku bahkan untuk memecahkan sistem persamaan di bawah kendala. Saya tidak tahu ada algoritma yang dianggap "pemecah persamaan" untuk kasus di mana ada kendala pada variabel. Pendekatan umum yang saya tahu, mungkin jaundice oleh beberapa semester kursus optimasi dan penelitian di laboratorium optimasi, adalah untuk memasukkan kendala pada sistem persamaan ke dalam formulasi optimasi. Jika Anda mencoba menggunakan batasan dalam skema mirip Newton-Raphson untuk penyelesaian persamaan, Anda mungkin akan berakhir dengan gradien yang diproyeksikan atau metode wilayah kepercayaan yang diproyeksikan, sama seperti metode yang digunakan dalam optimasi terbatas.