数学模型之线性规划(一)

目标函数,决策变量(x1,x2)以及约束条件 ——> 解决利润问题

linprog函数主要用来求线型规划中的最小值问题(最大值的镜像问题,求最大值只需要加个“-”)

 有可行解也有最优解 主要找到那个最优解(单一的)。

matlab编程计算

等式约束:

aeq=[1,1,1];
beq=7;

若没有则为空。

不等式约束:

A:不等式约束条件矩阵

b:对应不等式右侧的矩阵

结果:

“x”即目标函数取最大值时x1、x2的取值,“fval"即最小值。

例题:

f = [2;3;-5];
A = [-2,5,-1;1,-3,-1];
b = [-10;12];
lb = [0,0,0];aeq=[1,1,1];beq=7;
[ x , fval ] = linprog( -f , A , b , aeq , beq , lb , []);
disp(x)
disp(-fval)

凡是没有的,如ub用[]代替。

求最大值,首先要把目标函数转化为最小值,即min z = - (2x+3y);

要把大于等于转换为小于等于,即在有 “≥” 符号式子两边同时乘以-1;

Python:

import numpy as np
from scipy.optimize import linprog

c = np.array([2, 3, 1])
A_up = np.array([[-1, -4, -2], [-3, -2, 0]])
b_up = np.array([-8, -6])

r = linprog(c, A_ub=A_up, b_ub=b_up, bounds=((0, None), (0, None), (0, None)))

print(r)

针对这道题:matlab与python求出来的值并不一样:

 

 当matlab遇到这个问题时:

linprog stopped because there is no solution to the linear programming problem. For any target value there are feasible points with objective value smaller than the target.

翻译一下是:linprog停止了,因为线性规划问题没有解决方案。对于任何目标值,都有客观值小于目标的可行点。

再通俗一点就是有无数种解!应该是限制条件少了!
带绝对值的非线性规划转为线性规划:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值