文章目录 一、用Excel完成线性规划问题的求解二、用python完成线性规划问题的求解三、用拉格朗日方法求解
一、用Excel完成线性规划问题的求解
建立数据源
写出资源配置三要素
在excel中设置目标函数
根据前面的分析可知,目标函数为E2,E6与F2, F6区域两列数组对应元素的乘积之和,在C10单元格中输入=SUMPRODUCT (E2:E6,F2:F6)
在excel中设置约束条件
加载excel规划求解模块
选择“文件”→“选项”→“加载项"→“转到”,勾选“规划求解加载项”。单击“确定"按钮。在“数据”菜单下就出现了“规划求解”模块(操作过程同“数据分析”模块的加载)
设置决策变量和目标函数
设置约束条件
添加约束条件1
添加约束条件2
添加约束条件3
添加约束条件4
添加约束条件5
添加约束条件6
最终添加结果
点击求解,得到最终结果
设置约束条件
使用scipy库对线性规划的最优解、最大值进行求解
# 导入包from scipy import optimizeimport numpy as np#创建矩阵,c为目标函数的矩阵,A_ub为约束条件的左边构成的矩阵,B_ub为约束条件的右边c=np.array([600,800,500,400,300])A_ub=np.array([[1000,2000,0,0,0],[-1,-1,0,0,0],[1000,2000,400,1000,100],[-2000,-4000,-3000,-5000,-600],[1,0,0,0,0],[0,1,0,0,0],[0,0,1,0,0],[0,0,0,1,0],[0,0,0,0,1]])B_ub=np.array([30000,-20,40000,-100000,14,8,40,5,50])# 求解res=optimize.linprog(-c,A_ub,B_ub)print(res) 得到结果三、用拉格朗日方法求解
求解问题
参考拉格朗日乘数法
求函数f(x,y,z)在条件φ(x,y,z)=0下的极值。 方法(步骤)是:
1.做拉格朗日函数L=f(x,y,z)+λφ(x,y,z),λ称拉格朗日乘数;
2.求L分别对x,y,z,λ求偏导,得方程组,求出驻点P(x,y,z); 如果这个实际问题的最大或最小值存在,一般说来驻点只有一个,于是最值可求