例 6 设某工厂有 1000 台机器,生产两种产品 A、B ,若投入 x 台机器生产 A 产品,则纯收入为5x ,若投入 y 台机器生产 B 种产品,则纯收入为4y ,又知:生产 A 种
产品机器的年折损率为 20%,生产 B 产品机器的年折损率为 10%,问在 5 年内如何安
排各年度的生产计划,才能使总收入最高?
%主程序
clc
clear
k_Add_1_xk = 0;
max = 0;
uk = [];
for i = [6👎1];
[k_Add_1_xk, u_k] = fk(k_Add_1_xk, i);
uk=[uk u_k];
end
uk=flip(uk);
maxprofit = k_Add_1_xk*1000;
x = 1000 %第一年初完好的数量
x_last = 0
x_last = x
number=[x_last]
for i = 2:5
x = 0.9 * x - 0.1 * uk(i) * x_last
x_last = x
number=[number x_last];
end
disp(“从第一年开始的完好机器数量如下”)
number
disp(strcat(“最大利润为”,num2str(maxprofit)))
%以下为需要用到的函数
function [max, uk]=fk(k_Add_1_xk,k)
% k_Add_1_xk=518.4;
% k=5;
if k == 6
par_u = 1;
par_x = 4;
else
par_u = 1 - k_Add_1_xk * 0.1;
par_x = 4 + k_Add_1_xk * 0.9;
end
[max, uk]= maxvalue(par_u, par_x)
function [par,key]=maxvalue(par_u, par_x)
if par_u>=0
par=par_u+par_x;
key=1;
else
par=par_x;
key=0;
end
end
简单的matlab实现