问题背景
在数据处理过程中,需要求解形如下图的非线性规划:
(在我的学习任务中不等式约束边界会变化,上图示意一个特殊情况)
求解方法一:scipy.optimize
尝试利用scipy.optimize中的.minimize()函数进行求解,将等式与不等式约束存入cons字典中。
from scipy.optimize import minimize
import numpy as np
fun = lambda x : x[0] + x[1] + x[2]# 约束函数
cons = ({
'type': 'eq', 'fun': lambda x: x[0]**2+ x[1]**2+ x[2]**2 - 1}, # xyz=1
{
'type': 'ineq', 'fun': lambda x: 1-x[0]**2 },# 1 >= x**2
{
'type': 'ineq', 'fun': lambda x: x[0]**2-1 },# x**2 >=1
{
'type': 'ineq', 'fun': lambda x: 0-x[1]**2 },
{
'type': 'ineq', 'fun': lambda x: x[1]**