首页 > 其他分享 >5.4求解非凸非线性规划

5.4求解非凸非线性规划

时间:2024-10-11 19:35:19浏览次数:1  
标签:非凸 5.4 minimize 非线性 scipy np import

import numpy as np
from scipy.optimize import minimize

# 定义目标函数
def objective(x):
    return -np.sum(np.sqrt(x))  # 注意:scipy的minimize默认是最小化问题,所以这里取负号

# 定义约束条件
constraints = [
    {'type': 'ineq', 'fun': lambda x: 10 - x[0]},  # x[0] <= 10
    {'type': 'ineq', 'fun': lambda x: 20 - (x[0] + 2 * x[1])},  # x[0] + 2*x[1] <= 20
    {'type': 'ineq', 'fun': lambda x: 30 - (x[0] + 2 * x[1] + 3 * x[2])},  # x[0] + 2*x[1] + 3*x[2] <= 30
    {'type': 'ineq', 'fun': lambda x: 40 - (x[0] + 2 * x[1] + 3 * x[2] + 4 * x[3])},  # x[0] + 2*x[1] + 3*x[2] + 4*x[3] <= 40
    {'type': 'ineq', 'fun': lambda x: 1000 - sum((100 - i) * x[i-1] for i in range(1, 101))}  # 加权求和小于等于1000
]

# 初始猜测值
x0 = np.zeros(100)

# 确保变量是非负的
bounds = [(0, None) for _ in range(100)]

# 调用minimize函数,并设置更大的迭代次数限制
options = {'maxiter': 1000}  # 增加迭代次数限制
result = minimize(objective, x0, method='SLSQP', bounds=bounds, constraints=constraints, options=options)

# 输出结果
if result.success:
    print("最优值为:", -round(result.fun, 4))
    print("最优解为:\n", np.round(result.x, 4))
else:
    print("问题未找到最优解,状态为:", result.message)
print("学号:3008")

由于题目是非线性非凸规划问题,目标函数求最大化,我们转换成求最小化

导入库from scipy.optimize import minimize

结果如下

 

标签:非凸,5.4,minimize,非线性,scipy,np,import
From: https://www.cnblogs.com/fang---/p/18459110

相关文章

  • 非线性规划
    什么是非线性规划非线性规划,指约束条件中有非线性约束。非线性约束,即约束的不等式中含有高次幂项,如\(x_1^2+x_2^2\leq1\)就是一个非线性约束。matlab标准型,只能求解最小值问题,且约束条件要是小于等于的不等式matlab函数求解非线性规划[x,value]=fmincon(@f,x0,A,b,......
  • 非线性规划之飞行管理问题
    题目:在约10000m高空的某边长160km的正方形区域内,经常有若干架飞机作水平飞行。区域内每架飞机的位置和速度向量均由计算机记录其数据,以便进行飞行管理。当一架欲进入该区域的飞机到达区域边缘时,记录其数据后,要立即计算并判断是否会与区域内的飞机发生碰撞。如果会碰撞,则应计算如......
  • 【状态估计】非线性受控动力系统的线性预测器——Koopman模型预测MPC(Matlab代码实现)
     ......
  • 5.4
    importnumpyasnpfromscipy.optimizeimportminimizedefobjective(x):return-np.sum(np.sqrt(x)*np.arange(1,101))defconstraint1(x):returnx[1]-10defconstraint2(x):return20-(x[1]+2x[2])defconstraint3(x):return30-(x[1]+2x[2]+3x[......
  • 5.4 5.5
    5.4求解下列非线性规划:点击查看代码importnumpyasnpfromscipy.optimizeimportminimizedefobjective(x):return-np.sum(np.sqrt(x)*np.arange(1,101))defconstraint1(x):returnx[1]-10defconstraint2(x):return20......
  • pytorch线性/非线性回归拟合
    一、线性回归1.导入依赖库importnumpyasnpimportmatplotlib.pyplotaspltimporttorchfromtorchimportnn,optimfromtorch.autogradimportVariablenumpy:用来构建数据matplotlib.pyplot: 将构建好的数据可视化torch.nn:包含了torch已经准备好的层,激活函数、全......
  • 【射频电子线路基础第五讲】射频电路的非线性
    一、无线通信系统与信道二、射频系统非线性1、非线性概念线性是指元件参数与通过元件的电流或者电压无关非线性是指元件参数与通过元件的电流或者电压有关时变线性是指元件参数按照一定规律随着时间变化,但与通过元件的电流或者电压无关射频元器件实际上是非线性的,线性是......
  • 非线性规划——无约束最优化问题精讲
    最优化问题的研究历史可以追溯到17世纪的变分法,随着数学、物理学、经济学和计算科学的不断发展,最优化问题逐渐成为一个独立的学科。对于无约束最优化问题的求解,从最早的最速下降法,到后来的牛顿法和共轭梯度法,再到现代的变尺度法和智能算法,发展历程反映了科学技术进步的轨迹。无约......
  • 【2024潇湘夜雨】WIN10_Pro_22H2.19045.4955软件选装纯净特别版9.20
    【系统简介】=============================================================1.本次更新母盘来自WIN10_Pro_22H2.19045.4955.2.全程离线精简、无人值守调用优化处理制作。部分优化适配系统可能要重启几次,即使显示适配失败也不要在意,可能部分优化不适用。3.OS版本号为19045.4955。......
  • 易优eyoucms网站php5.4版本,报错:Can't use method return value in write context
    当你在使用PHP5.4版本时遇到“Can'tusemethodreturnvalueinwritecontext”的错误,这通常是因为你在代码中错误地使用了方法返回值。这种错误通常发生在试图将方法返回值直接赋值给变量或用于其他上下文时。解决方案以下是一些常见的原因和解决方法:1.检查代码中的赋......