现在时间是:
当前位置:首 页 >> 数学建模>> 教学区>> 文章列表

数学建模作业10

作者:王彩凤   发布时间:2020-05-24 20:50:51   浏览次数:79

 

数学建模作业10

1:(最短路线问题)如图所示,给出一个线路网络,A为始点,G为终点,连点之间的连线可以表示道路,管道等,连线上的数字表示两点间的距离(或费用)。试选择一条由AG的线路,使总距离(或费用)为最小。

S=[1 1 2 2 2 3 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 15]; %起始节点向量   

E=[2 3 4 5 6 5 6 7 8 9 8 9 9 10 9 10 11 12 12 13 12 13 14 15 14 15 14 15 16 16]; %终止节点向量

W=[5 3 1 3 6 8 7 6 8 6 3 5 3 3 8 4 2 2 1 2 3 3 3 5 5 2 6 6 4 3]; %边权值向量,有向图,G(16,16)=0; 16个节点

G=sparse(S,E,W); %关联矩阵的稀疏矩阵表示

G(16,16)=0;

P=biograph(G,[],'ShowWeights','on');%建立有向图对象P

H=view(P);%显示各个路径权值

[Dist,Path]=graphshortestpath(G,1,16,'Method','Dijkstra') %求节点1到节点16的最短路径

set(H.Nodes(Path),'Color',[1 0.4 0.4]);%以下三条语句用红色修饰最短路径

edges=getedgesbynodeid(H,get(H.Nodes(Path),'ID'));

set(edges,'LineColor',[1 0 0]);

set(edges,'LineWidth',2.0);

求解结果为:

Dist =

 

    18

 

 

Path =

 

     1     2     5     8    12    15    16

得到下图

 

 

2:(生产——存贮问题)某工厂根据市场调研情况,需制定今后四个月的生产计划,据估计,在这四个月内,市场对该产品需求量如下表所示:

假定生产每批产品的固定成本费用为3千元,每单位产品生产成本费用为1千元,库存费用每月为0.5千元,并且规定1月初和4月末均无产品库存,试求该厂如何安排个个月的生产与库存,使得总成本费用最小。

解:

DecisFun函数:

 

function u=DecisFun(k,x)

 

d=[2 3 2 4];

 

m=6;

 

if k==4

 

    u=d(k)-x;

 

else

 

    u=max(0,d(k)-x):m;

 

end

 

ObjFun函数:

 

function V =ObjFun(k,x,u)

 

d=[2 3 2 4];

 

if u==0

 

    V =0.5*(x+u-d(k));

 

else

 

    if u>6

 

        V=10^6;

 

    else

 

        V=3+u+0.5*(x+u-d(k));

 

    end

 

end

 

 

 

TransFun函数:

 

function s=TransFun(k,x,u)

 

d=[2 3 2 4];

 

s=x+u-d(k);

 

end

 

main函数:

 

x1=0:4;

 

s=nan*ones(5,1);

 

s(1) = 0;

 

x = [s x1' x1' x1'];

 

[p_opt, fval]=dynprog(x, @DecisFun, @ObjFun, @TransFun);

 

 

 

结果:

 

>> p_opt

 

 

 

p_opt =

 

 

 

    1.0000         0    5.0000    9.5000

 

    2.0000    3.0000         0         0

 

    3.0000         0    6.0000   11.0000

 

    4.0000    4.0000         0         0

 

 

 

>> fval

 

 

 

fval =

 

 

 

   20.5000

 

 

 

 

 

3:(生产——库存管理系统)设某公司全年计划生产某种产品A,其四个季度的订货量分别为600件,700件,500件,1200件。已知生产产品A的生产费用与产品数量的平方成正比,其比例系数为0.005,厂内有仓库可存放未销售的产品,其贮存费未每件每季度1元,问如何安排各季度的产量,可以既满足各季度的订货需求,又能使全年的总费用最小。

 

 

 

解:

 

DecisFun函数

 

function u=DecisFun(k,x)

 

d = [600 700 500 1200];

 

if k==4

 

    u=d(k)-x;

 

else

 

    u=max (0,d(k)-x):1200;

 

end

 

ObjFun函数

 

function V = ObjFun(k,x,u)

 

V = x + 0.005*u^2;

 

 

 

TransFun函数

 

function s_next=TransFun(k,s,u)

 

d = [600 700 500 1200];

 

s_next=s+u-d(k);

 

main函数

 

x1=100*(0:4);

 

s=nan*ones(5,1);

 

s(1) = 0;

 

x = [s x1' x1' x1'];

 

[p_opt, fval]=dynprog(x, @DecisFun, @ObjFun, @TransFun);

 

结果如下:

 

>> fval

 

 

 

fval =

 

 

 

       11800

 

 

 

>> p_opt

 

 

 

p_opt =

 

 

 

           1           0         600        1800

 

           2           0         700        2450

 

           3           0         800        3200

 

           4         300         900        4350

 

 

 

 

 

 

 

 

 

 

 

4

 

 

解:

 

DecisFun函数:

 

function u=DecisFun(k,x)

 

u = 0 : x;

 

 

 

ObjFun函数:

 

function V=ObjFun(k,x,u)

 

V =8*u+5*(x-u);

 

end

 

 

 

TransFun函数:

 

function s_next=TransFun(k,x,u)

 

a = 0.7;

 

b = 0.9;

 

s_next =(a - b)*u + b*x;

 

 

 

main函数:

 

x1 = (500:999);

 

s=nan*ones(500,1);

 

s(1) = 1000;

 

x = [s x1' x1' x1' x1'];

 

[p_opt,fval]=dynprog(x,@DecisFun,@ObjFun,@TransFun);

 

 

 

求解结果:

 

>> p_opt

 

 

 

p_opt =

 

 

 

           1        1000        1000        8000

 

           2         700          10        3530

 

           3         628           6        3158

 

           4         564           3        2829

 

           5         507           0        2535

 

 

 

>> fval

 

 

 

fval =

 

 

 

       20052

 

         NaN

 

         NaN

 

         NaN

 

 

 

5:设某工厂需要连续运营n年,该厂某台设备的效益函数为r(t),维修费用函数u(t),更新费用函数c(t)均已知,建立这台设备的更新模型。

 

某工厂的某型号机床年均维修费用与效益表如表所示,购买一台同型号的新机床的价格为5千元。如厂方将该机床出售,其价格如表,其价格如表所示。该厂1997年有一台新机床,试给出至2001年年底该机床的最优更新策略及最大经济效益。

 

解:DecisFun函数

 

function u=DecisFun(k,x)

 

u=[1 0];

 

end

 

 

 

ObjFun函数

 

function V=ObjFun(k,x,u)

 

R = [5 4.5 4 3.75 3 2.5]; % 产生的经济效益

 

U = [0.5 1 1.5 2 2.5 3]; % 维修费用

 

C = [0.5 1 1.5 2 2.5 3]; % 换购一台新的设备所需要的费用

 

if u == 1

 

    V=R(x)-U(x);

 

else

 

    V=R(1)-U(1)-C(x);

 

end

 

end

 

 

 

TransFun函数

 

function s_next=TransFun(k,x,u)

 

if u==1

 

    s_next=x+1;

 

else

 

    s_next=1;

 

end

 

end

 

 

 

main函数

 

x1=(1:5);

 

s=nan*ones(5,1);

 

s(1)=1;

 

x=[s x1' x1' x1' x1'];

 

[p_opt,fval]=dynprog(x,@DecisFun,@ObjFun,@TransFun);

 

 

 

求解结果:

 

>> p_opt

 

 

 

p_opt =

 

 

 

    1.0000    1.0000    1.0000    4.5000

 

    2.0000    2.0000    1.0000    3.5000

 

    3.0000    3.0000    1.0000    2.5000

 

    4.0000    4.0000    1.0000    1.7500

 

    5.0000    5.0000    1.0000    0.5000

 

 

 

>> fval

 

 

 

fval =

 

 

 

   12.7500

 

       NaN

 

       NaN

 

       NaN

 

       NaN

 

 







上一篇:没有了    下一篇:没有了

Copyright ©2021    计算数学达人 All Right Reserved.

技术支持:自助建站 | 领地网站建设 |短信接口 |燕窝 版权所有 © 2005-2021 lingw.net.粤ICP备16125321号 -5