MATLAB的线性规划工具

本文介绍了如何使用MATLAB的meshz辅助和intlinprog函数来解决线性规划问题,包括考试题目错误分析和溶液混合问题。通过实例展示了如何设置约束条件和目标函数,寻找最优解。
摘要由CSDN通过智能技术生成

MATLAB的线性规划工具

问题描述

某次考试,总分100分.分三种题型:

单选题13题,每题3分,共39分.
多选题10题,每题3.1分,共31分.
判断题12题,每题2.5分,共30分.

交卷之后,只知道分数为79.3,问:单选题、多选题、判断题分别做错了多少?

MATLAB meshz辅助求解

假设单选题、多选题、判断题做错数量分别为x,y,z.则可列方程:
3 x + 3.1 y + 2.5 z = 100 − 79.3 3x + 3.1y + 2.5z = 100-79.3 3x+3.1y+2.5z=10079.3
3 x + 3.1 y + 2.5 z = 20.7 3x + 3.1y + 2.5z = 20.7 3x+3.1y+2.5z=20.7

上述函数是一个空间平面,如果不理解为什么是空间平面可以参考直线与平面方程的几何表达.

最直接的办法就是把平面绘制出来,找到上面的正整数解,脚本如下:

s = linspace(0, 10, 11);
t = linspace(0, 10, 11);
[ss, tt] = meshgrid (s, t);
x = tt;
y = ss;
z = -(3.*x + 3.1.*y  - 20.70)/2.5;
pbaspect ([1 1 1]);

meshz(x, y, z);

patch([0 10 10 0], [0 0 10 10], [0 0 0 0]) 

camproj('perspective')
xlabel('x');
ylabel('y');
set( gca, 'ydir', 'reverse' )

对应图像:

在这里插入图片描述

绿色平面之上的部分就是要搜索的区域.
脚本中x,y变量使用的都是正整数,所以只要确保z也是正整数就可以了,可以查看z的数值:

在这里插入图片描述

显然z只能取1,对应的x,y分别为4与2,所以这个问题的解是: x = 4 , y = 2 , z = 1 x = 4, y = 2, z = 1 x

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值