今天我跟着川川菜鸟学习了数学建模,虽然平常主要是在做嵌入式方面的东西,但我还是觉得数学建模有着非常重大的意义。
今天我学习到了线性规划,一开始觉得挺难的,但是到了后面反而觉得,其实不难,理解了思想就是照着代码抄了(哈哈哈哈哈虽然人家明确说了不准照着抄)。
话不多说,直接开始。
他所给的题目是
我图省事直接就在命令行里面输入了。
可以看到,先将之前的变量清除掉,然后输入需要求解的最大值用c矩阵表示,用aeq和beq来表示等式,eq的意思就是equal(相等)。
随后用a, b矩阵来表示不等式,记住它一定要满足小于的要求。
最后便是求解了。就是那个套路而已,很简单(当然最开始我并不这样认为哈哈哈)。当然我还忘了求最大值了,最后又补上去了。
好了,写完了。跟答案对一对:
clear all
clc
c=[2 3 -5];%用系数确定目标函数
a=[-2,5,-1;1,3,1]; %第二个函数全部取反保证方向一致
b=[-10;12];%右边的值10编程-10
aeq=[1,1,1];%等式系数单独拎出来
beq=7;%等式只有一个,结果为7
lb=[0;0;0];%没有下限
ub=[inf;inf;inf];%没有上限
[x,fval]=linprog(-c,a,b,aeq,beq,lb,ub);
x
best=c*x%计算最优值
可以看到我的best跟答案上的best没有区别嘿嘿,结果正确(吓死我了我看走眼了还以为我写错了呢),over!