【数学建模】【数学规划模型】个人学习

源自司守奎老师《数学建模算法与应用》以及数学建模清风老师数学规划模型总结(侵删)

数学规划是运筹学的一个分支,用来研究:在给定的条件下(约束条件),如何按照某一衡量标准(目标函数)来寻求计划,管理工作的最优方案。(求目标函数在一定约束条件下的极值问题)

可以结合司守奎老师的书籍一起看
规划分为:线性规划、非线性规划在这里司守奎老师插入图片描述(司守奎老师引例)
引用、参考这位老哥的链接

在这里插入图片描述

matlab中

[x fval] = linprog(c, A, b, Aeq, beq, lb)

可以求出规划最小值min
Aeq与Beq:看图@3.4点
Aeq和Beq会同时出现,表示等式时候的矩阵值(限定条件更加严格)

基础部分讲解完成:实践1:
在这里插入图片描述

c = [-5 -4 -6]';  % 加单引号表示转置
% c = [-5 -4 -6];  % 写成行向量也是可以的,不过不推荐,我们按照标准型来写看起来比较正规
A = [1 -1 1;
        3 2 4;
        3 2 0];
b = [20 42 30]';   
lb = [0 0 0]'; 
[x fval] = linprog(c, A, b, [], [], lb)  % ub我们直接不写,则意味着没有上界的约束
% x =
%          0
%    15.0000
%     3.0000
% 
% fval =
%    -78

X123都是下届0,上界无穷;凡是出现13的矩阵 转置为31的列向量
解出此区间内fval值为-78

例2.在这里插入图片描述

c = [0.04 0.15 0.1 0.125]';  
A = [-0.03 -0.3 0 -0.15;
        0.14 0 0 0.07];
b = [-32 42]';
Aeq = [0.05 0 0.2 0.1];
beq = 24;
lb = [0 0 0 0]';
[x fval] = linprog(c, A, b, Aeq, beq, lb)
% x =
%          0
%   106.6667
%   120.0000
%          0
% 
% fval =
%     28

你看前面例子A矩阵中所有都是小于0为边界条件,而这个方程中第一行A大于0为边界条件了,这次我们把第一行全添加负号就行了
matlab默认都是解小于号,所以求max都反其道而行之,求相反数的最小值
在这里插入图片描述
min (-z)=-2x1-3x2+5x3
系数矩阵不变,只变大于号的

c = [-2 -3 5]';
A = [-2 5 -1;
          1 3 1];
b = [-10 12];
Aeq = ones(1,3);
beq = 7;
lb = zeros(3,1);
[x fval] = linprog(c, A, b, Aeq, beq, lb)
fval = -fval % 注意这个fval要取负号(原来是求最大值,我们添加负号变成了最小值问题)
% x =
%     6.4286
%     0.5714
%          0
% fval =
%   -14.5714
% fval =
%    14.5714

本期文件分享:
【金山文档】 【课本】司守奎 《数学建模算法与应用》 第二版
https://kdocs.cn/l/chkDpfLgMMea

【金山文档】 1第一章 线性规划
https://kdocs.cn/l/ctxR3T2hiAdV

【金山文档】 1第一章 线性规划
https://kdocs.cn/l/ctxR3T2hiAdV

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值