数学建模之运筹学 |
您所在的位置:网站首页 › 何为整数 › 数学建模之运筹学 |
在这里插入代码片# 运筹学 线性规划 线性规划概念:约束条件及目标函数都是决策变量的线性函数的规划问题。 eg.求解 法一:scipy.optimize.linprog linprog(c, A_ub=None, b_ub=None, A_eq=None, b_eq=None, bounds=None, method='simplex', callback=None, options=None)参数解释: c是价值向量; A_ub和b_ub对应线性不等式约束; A_eq和b_eq对应线性等式约束; bounds对应公式中的lb和ub,决策向量的下界和上界; method是求解器的类型,如单纯形法; 其他的参数暂时不用。 注意:用此方法求解,都需要把方程组转化成标准形式! from scipy.optimize import linprog # 导包 C = [-1,4] # 价值向量 A = [[-3,1],[1,2]] # 系数矩阵 b = [6,4] # 约束向量 # 给每个决策变量指定取值范围 X0_bounds = [None,None] X1_bounds = [-3,None] res = linprog(C,A,b,bounds=(X0_bounds,X1_bounds)) print(res) # 输出结果 ''' con: array([], dtype=float64) fun: -22.0 # 最优值 message: 'Optimization terminated successfully.' nit: 5 slack: array([3.90000000e+01, 1.77635684e-15]) status: 0 success: True x: array([10., -3.]) # 最优解 '''若是非标准形式,如求最大值: [x,fval]=linprog(c,A,b,Aeq,beq,LB,UB,X0,OPTIONS) 参数解释: x :返回决策向量的取值 fval :返回目标函数的最优值 f :价值向量 A :线性不等式约束的系数向量(跟Python要输入成矩阵不同,Matlab输入向量) b :线性不等式约束的约束向量 Aeq : 线性等式约束的系数向量(跟Python要输入成矩阵不同,Matlab输入向量) beq :线性不等式约束的约束向量 LB:决策向量的下界向量 UB:决策变量的上界向量 f = [-1, 4]; A = [-3, 1; 1, 2]; b = [6, 4]; lb = [0, -3]; [x, y] = linprog(f, A,b,[],[],lb,[]) |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |