Scipy
from scipy.optimize import minimizeimport numpy as npe = 1e-10 # 非常接近0的值fun = lambda x : (x[0] - 0.667) / (x[0] + x[1] + x[2] - 2) # 约束函数cons = ({'type': 'eq', 'fun': lambda x: x[0] * x[1] * x[2] - 1}, # xyz=1{'type': 'ineq', 'fun': lambda x: x[0] - e}, # x>=e,即 x > 0{'type': 'ineq', 'fun': lambda x: x[1] - e},{'type': 'ineq', 'fun': lambda x: x[2] - e})x0 = np.array((1.0, 1.0, 1.0)) # 设置初始值res = minimize(fun, x0, method='SLSQP', constraints=cons)print('最小值:',res.fun)print('最优解:',res.x)print('迭代终止是否成功:', res.success)print('迭代终止原因:', res.message)
启发式算法
见知识库另文,退火算法和遗传算法
其他参考
https://blog.csdn.net/qq_45669448/article/details/104752406
https://blog.csdn.net/hzk427/article/details/104045268
