Является ли ваша проблема выпуклой? Линейный? Нелинейная? Я согласен, что SciPy.optimize, вероятно, справится с этой задачей, но fmincon - это своего рода базука для решения задач оптимизации, и вам будет лучше, если вы сможете ограничить ее одной из нижеуказанных категорий (повышая уровень сложности решения. эффективно)
Линейная программа (LP)
Квадратичная программа (QP)
Выпуклая квадратично-квадратичная программа (QCQP)
Программа второго конуса (SOCP)
Полуопределенная программа (SDP)
Нелинейная выпуклая задача
Невыпуклая задача
Существуют также комбинаторные задачи, такие как смешанные целочисленные линейные программы (MILP), но вы не упомянули какие-либо ограничения целостности, достаточно сказать, что они попадают в другой класс задач.
Пакет CVXOpt будет вам полезен, если ваша проблема выпуклая.
Если ваша проблема не выпуклая, вам нужно выбрать между поиском локального решения или глобальным решением. Многие выпуклые решатели «своего рода» работают в невыпуклой области. Для нахождения хорошего приближения к глобальному решению потребуется некоторая форма имитации отжига или генетический алгоритм. Поиск глобального решения потребует перечисления всех локальных решений или комбинаторной стратегии, такой как Branch and Bound.