資源簡介
報童問題的matlab仿真分析,進行數(shù)學(xué)建模,并程序仿真。

代碼片段和文件信息
%報童問題(負指數(shù)分布)
%幾個參數(shù):
%賣出報紙掙a元,退回報紙賠b元;
%賣報量y訂報量z,訂報量上限z_up;
%觀察期的總天數(shù)t用于積累天數(shù)的ti;
%總的平均損失量ave_loss,供過于求損失loss1供小于求損失loss2ave_loss=loss1+loss2;
%最佳訂報量superz最小損失量ave_loss_min;
function?[superzave_loss_min]=expi(tz_upab)
????mu=input(‘輸入負指數(shù)分布的參數(shù)mu‘);?????????????????%輸入負指數(shù)分布的參數(shù)mu,默認為1000
????if?isempty(mu)?
????????mu=1000;
????end
????y=round((exprnd(mu1t)));?????????????????????????%生成最大訂報量以內(nèi)的均勻隨機賣報量y(矢量)
????ave_loss=zeros(1z_up);????????????????????????????%各種訂報量情況下的平均損失統(tǒng)計(z_up個元素的矢量)
?????for?z=1:z_up??????????????????????????????????????%外層循環(huán),z_up種情況,各種訂報量
?????????loss1=0;
?????????loss2=0;
????????for?ti=1:t?????????????????????????????????????%內(nèi)層循環(huán),一共實驗多少天
??????????if?z>y(ti)???????????????????????????????????%如果供大于求,說明要退報,賠錢
???????????????loss1=loss1+b*(z-y(ti));
??????????elseif?z ???????????????loss2=loss2+a*(y(ti)-z);
??????????else?????????????????????????????????????????%如果訂報量與賣報量相同,損失不變
??????????????loss1=loss1;
??????????????loss2=loss2;
??????????????end
????????end
?????????ave_loss(z)=(loss1+loss2)/t;??????????????????%求每天的平均損失量
?????end
?????ave_loss_min=min(ave_loss)????????????????????????%顯示最后的平均最小損失
?????superz=find(ave_loss==ave_loss_min)???????????????%記錄在給定a和給定b條件下的最佳訂報量
?????
?????figure(1)?????????????????????????????????????????%畫給定a和b的時候的最佳訂報量和最小平均損失關(guān)系曲線
?????plot(1:z_upave_loss‘b‘)
?????grid?on
?????axis([010000300])
?????xlabel(‘訂報量/份‘)
?????ylabel(‘虧損/元‘)
?????title(‘虧損與訂報量的關(guān)系曲線‘)
?????
??????figure(2)????????????????????????????????????????%畫每份報紙收益與最佳訂報量的關(guān)系曲線
?????z_a=zeros(1100);
?????n1=1;
?????for?a_temp=0:0.01:1???????????????????????????????%收益a由0元遞增至1元
?????????for?z=1:z_up??????????????????????????????????%外層循環(huán),z_up種情況,各種訂報量
???????????loss1=0;
???????????loss2=0;???
???????????for?ti=1:t??????????????????????????????????%內(nèi)層循環(huán),一共實驗多少天
????????????if?z>y(ti)?????????????????????????????????%如果供大于求,說明要退報,賠錢
???????????????loss1=loss1+b*(z-y(ti));
????????????elseif?z ???????????????loss2=loss2+a_temp*(y(ti)-z);
????????????else???????????????????????????????????????%如果訂報量與賣報量相同,損失不變
??????????????loss1=loss1;
??????????????loss2=loss2;
????????????end
????????end
?????????ave_loss(z)=(loss1+loss2)/t;??????????????????%計算平均損失
???????end
?????ave_loss_min=min(ave_loss);
?????z_a(n1)=find(ave_loss==ave_loss_min1‘first‘);???%將每種a的最佳訂報量放入z_a矢量?
?????n1=n1+1;
?????end
?????a_temp=[0:0.01:1];
?????plot(a_tempz_a‘b‘)
?????grid?on
?????axis([0101000])
?????xlabel(‘每份報紙凈賺/元‘)
?????ylabel(‘最佳訂報量/份‘)
?????title(‘每份報紙凈賺與最佳訂報量的關(guān)系曲線‘)
?????
?????figure(3)?????????????????????????????????????????%每份報紙賠償與最佳訂報量的關(guān)系曲線
?????z_b=zeros(1100);
?????n2=1;
?????for?b_temp=0:0.01:1???????????????????????????????%賠償b由0元遞增至1元
?????????for?z=1:z_up??????????????????????????????????%外層循環(huán),z_up種情況,各種訂報量
???????????loss1=0;
???????????loss2=0;???
???????????for?ti=1:t?????????????????????????????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????4415??2007-06-02?21:19??paperkid\expi.m
?????文件???????4475??2007-06-02?17:22??paperkid\gauss.m
?????文件???????1105??2007-06-02?17:23??paperkid\main.m
?????文件???????4390??2007-06-02?15:18??paperkid\uniform.m
?????目錄??????????0??2008-05-31?01:03??paperkid
-----------?---------??----------?-----??----
????????????????14603????????????????????6
評論
共有 條評論