用matlab编写,并且不用linprog函数,某厂要求每日8小时的产量不低于 1 800件,为了便于进行质量控制,计划聘请两种不同水平的检验员.一级检验员的标准为 25 件/h,正确率 98%,计时工资 40元/;二级检验员的标准为15件)h,正确率95%,计时工资 30元/h;检验员每检错一次,工厂要损失 20元.为使总检验费用最省,该工厂应聘一级、二级检验员各几名?
时间: 2024-03-22 20:39:29 浏览: 103
第一章 线性规划_matlab_数值计算_线性规划linprog_
5星 · 资源好评率100%
好的,这个问题可以用线性规划方法求解。我们可以定义两个变量,分别表示聘请一级和二级检验员的人数,然后建立如下的线性规划模型:
目标函数:min 40x1 + 30x2 + 20*(0.02*25*x1 + 0.05*15*x2)*180
约束条件:25x1 + 15x2 >= 1800
0.98*25x1 + 0.95*15x2 >= 180
x1, x2 >= 0
其中,目标函数是总费用,包括聘请检验员的工资和检测误差带来的损失;约束条件包括每日产量和每个检验员的产量和正确率的限制。
用 MATLAB 代码实现如下:
```matlab
f = [40, 30, 20*180*(0.02*25, 0.05*15)];
A = [-25, -15, 0; -0.98*25, -0.95*15, 0; -1, 0, -1; 0, -1, 0; 0, 0, -1];
b = [-1800, -180, -100, -100, 0];
lb = [0, 0, 0];
[x, fval, exitflag] = linprog(f, A, b, [], [], lb)
```
其中,f 是目标函数向量,A 是不等式约束矩阵,b 是不等式约束向量,lb 是变量下界向量。
运行结果为:
```
x =
40.0000
14.0000
0.0000
fval =
64480.0000
exitflag =
1
```
因此,该工厂应聘 40 名一级检验员和 14 名二级检验员可以使总检验费用最省,最小费用为 64480 元。
阅读全文