数模论坛

 找回密码
 注-册-帐-号
搜索
热搜: 活动 交友 discuz
查看: 1581|回复: 0

我们组的超市设计程序

[复制链接]
发表于 2004-9-23 22:57:54 | 显示全部楼层 |阅读模式
<>我有幸参加了2004年的数模竞赛,我们做了a题,我们 的超市设计程序为:</P>
<>clc;
clear;
pa=input('请输入大超市的商圈(如:300)按回车:');
pb=input('请输入小超市的商圈(如:200)按回车:');
p1=input('请输入大超市的接待量(如:0.5)按回车:');
p2=input('请输入小超市的接待量(如:0.25)按回车:');
d=input('请输入一个商区的面积(如:40000)按回车:');
price1=input('请输入大超市的花费(如:2(万))按回车:');
price2=input('请输入大超市的花费(如:1.2(万))按回车:');</P>
<>jiazhi=ones(20,5)*inf;</P>
<P>a=[8.93  5.31 5.77 6.23 6.69 13.07 6.69  6.23  5.77 5.31  4.33  3.67 5.35  3.67 5.35  8.65 3 3.35 3  6.65];
for i=1:length(a)
     if(i&lt;=10)
         fprintf('  商区A%d内不同类型MS的个数如下:',i);
     end  
     if(i&gt;10&amp;i&lt;=16)
         fprintf('  商区B%d内不同类型MS的个数如下:',i-10);
     end
     if(i&gt;16&amp;i&lt;=20)
         fprintf('  商区C%d内不同类型MS的个数如下:',i-16);
     end
         
     f=[price1;price2];
     A=[pa pb;-p1 -p2];
     b=[d;-a(i)];
     lb=[0,1];
     [x,fval]=linprog(f,A,b,[],[],lb);
     m(i)=x(1,1)
     n(i)=x(2,1)
     jiazhi(i,1)=fval;
     k1=abs(m(i)-round(m(i)));
     k2=abs(n(i)-round(n(i)));
     if ((k1&lt;1.0e-3)&amp;(k2&lt;1.0e-3))
       m(i)
       n(i)
   else   a11=fix(m(i));
       a12=fix(m(i))+1;
       b11=fix(n(i));
       b12=fix(n(i))+1;
       if (((pa*a11+pb*b11)&lt;=d)&amp;((p1*a11+p2*b11)&gt;=a(i)))
      jiazhi(i,2)=price1*a11+price2*b11;
       end
      if (((pa*a11+pb*b12)&lt;=d)&amp;((p1*a11+p2*b12)&gt;=a(i)))
      jiazhi(i,3)=price1*a11+price2*b12;
       end
      if (((pa*a12+pb*b11)&lt;=d)&amp;((p1*a12+p2*b11)&gt;=a(i)))
      jiazhi(i,4)=price1*a12+price2*b11;
      end
      
      if (((pa*a12+pb*b12)&lt;=d)&amp;((p1*a12+p2*b12)&gt;=a(i)))
      jiazhi(i,5)=price1*a12+price2*b12;
       end
   
      
jiazhi
   z=min(jiazhi(i,2:5))
    for j=2:5
      if(jiazhi(i,j)==z)
         
           j
       end   
   end
  
       if j==2
            
            fprintf('   大超市的个数为:%d', a11);
             fprintf('  小超市的个数为:%d',b11);
         elseif j==3
             fprintf('  大超市的个数为:%d',a11);
             fprintf('  小超市的个数为:%d',b12);
         elseif j==4
             fprintf('  大超市的个数为:%d',a12);
             fprintf('  小超市的个数为:%d',b11);
         elseif j==5
             fprintf('   大超市的个数为:%d',a12);
             fprintf('   小超市的个数为:%d',b12);
      end
     
end
end       </P>
您需要登录后才可以回帖 登录 | 注-册-帐-号

本版积分规则

小黑屋|手机版|Archiver|数学建模网 ( 湘ICP备11011602号 )

GMT+8, 2024-11-29 04:50 , Processed in 0.048860 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表