给出matlab代码个水库,由个人承包,为了提高经济效益,保证优质鱼类有良好的生活环境,必须对水库的杂鱼做一次彻底清理,因此放水清库。水库现有水位平均为15米,自然放水每天水位降低0.5米,经与当地协商,水库水位最低降至5米,这样预计需要二十天时间,水位可达到目标。据估计水库内尚有草鱼28000余公斤.鲜活草鱼在当地市场上.若日供应量在500公斤以下,其价格为35元/公斤;日供应量在500-1200公斤,其价格降至23元/公斤,日供应量超过1000公斤时,价格降至18元/公斤以下,日供应量到1500公斤,已处于饱和,捕捞草鱼的成本水位于15米时每公斤6元当水位降至5米时,为3元/公斤。同时随着水位的下降草鱼死亡和捕捞造成损失增加,至最低水位5米时损失率为10%。承包人提出了这样一个问题:如何捕捞鲜活草鱼投放市场,效益最佳?请你建立相关模型求解给出最佳答案。
时间: 2024-03-15 08:44:03 浏览: 84
以下是MATLAB代码实现:
```matlab
% 假设每天捕捞的鲜活草鱼量为x公斤
% 则每天的收益为:
% 若x≤500,则每公斤收益为35元
% 若500<x≤1200,则每公斤收益为23元
% 若x>1200,则每公斤收益为18元
% 每天的成本包括两部分:捕捞成本和死亡损失成本
% 捕捞成本为每公斤6元,死亡损失成本为每公斤收益的10%
% 每天的总成本为:捕捞成本 + 死亡损失成本
% 捕捞成本在水位降至15米时为6元,降至5米时为3元
% 死亡损失率随着水位的下降而增加,至最低水位5米时为10%
Q = 28000; % 水库内草鱼总量
H0 = 15; % 初始水位
Hmin = 5; % 最低水位
dh = 0.5; % 每天水位降低量
T = ceil((H0-Hmin)/dh); % 需要捕捞的天数
c = 6; % 捕捞成本
p500 = 35; % 日供应量在500公斤以下时的价格
p1200 = 23; % 日供应量在500-1200公斤时的价格
p1500 = 18; % 日供应量超过1000公斤时的价格
s = 0.1; % 死亡损失率
q = @(h) Q * (h-Hmin) / (H0-Hmin); % 水位为h时草鱼数量
loss = @(x,h) s * (1 - (h-Hmin)/(H0-Hmin)) * x; % 水位为h时的死亡损失
profit = @(x,h) (x<=500)*p500 + (500<x&&x<=1200)*p1200 + (x>1200)*p1500; % 水位为h时每公斤鲜活草鱼的收益
cost = @(x,h) c*x + loss(x,h) * profit(x,h); % 水位为h时每天的总成本
net_profit = @(x,h) profit(x,h) - cost(x,h); % 水位为h时每天的净收益
% 最大化净收益
x1 = fminbnd(@(x) -net_profit(x,15),0,Q); % 水位15米时的最优捕捞量
x2 = fminbnd(@(x) -net_profit(x,10),0,Q); % 水位10米时的最优捕捞量
x3 = fminbnd(@(x) -net_profit(x,5),0,Q); % 水位5米时的最优捕捞量
fprintf('最优捕捞量:%.2f公斤(水位15米),%.2f公斤(水位10米),%.2f公斤(水位5米)\n', x1, x2, x3);
```
运行以上代码,即可得到最优捕捞量。
阅读全文