文档详情

数学模型实验答案.doc

发布:2017-06-12约4.91万字共141页下载文档
文本预览下载声明
第01章 建立数学模型 实验01-01 商人们怎样安全过河(,p7~8) 三名商人各带一个随从乘船渡河,一只小船只能容纳二人,由他们自己划行。随从们密约,在河的任一岸,一旦随从的人数比商人多,就杀人越货。但是如何乘船的大权掌握在商人们手中。商人们怎样才能安全渡河呢? 要求:在安全的前提下(两岸的随从数不比商人多),经有限步使全体人员过河。 [模型构成] xk 第k次渡河前此岸的商人数 yk第k次渡河前此岸的随从数xk , yk=0,1,2,3; k=1,2,? 过程的状态sk=(xk , yk) 允许状态集合S={(x , y)| x=0, y=0,1,2,3; x=3, y=0,1,2,3; x=y=1,2} uk 第k次渡船上的商人数 vk第k次渡船上的随从数uk , vk=0,1,2; k=1,2,? 决策dk=(uk , vk) 允许决策集合D={(u , v)| u+v =1, 2} 状态转移律 sk+1=sk+(-1)kdk [多步决策问题求dk?D(k=1, 2, ?n), 使sk?S, 并按转移律由 s1=(3,3) 到达sn+1=(0,0)clear; clc; mark=3*ones(4); mark(1,:)=0; mark(4,:)=0;%mark(i,j)=0为允许状态 mark(2,2)=0; mark(3,3)=0; D=[0 1; 0 2; 1 0; 1 1; 2 0];%允许决策集合 sp=1; st(sp,:)=[3,3,-1,0]; %进栈,(3,3)为当前状态,-1表示当前在此岸,决策0 mark(4,4)=3; while sp0 s0=st(sp,[1,2]); ss=st(sp,3); d=st(sp,4); sp=sp-1;%出栈 d=d+1; while d6 any(s00) s1=s0+ss*D(d,:); i=s1(1)+1;j=s1(2)+1; if all(s1-1) all(s14) (mark(i,j)==0 || mark(i,j)==-ss) if mark(i,j)==0 mark(i,j)=ss; else mark(i,j)=3; end sp=sp+1;%进栈 st(sp,:)=[s0,ss,d]; s0=s1; ss=-ss; d=1; else d=d+1; end end if s0==0 break; end end if s0==0 disp([st(1:sp,1:2);s0]);%有解 else disp(无解); end [运行结果] 3 3 3 1 3 2 3 0 3 1 1 1 2 2 0 2 0 3 0 1 0 2 0 0 实验01-02 求解人口指数增长模型(编程,p10) 人口指数增长模型满足微分方程 其中,x(t)为t时刻的人口数,r为人口增长率(常数),x0为初始时刻(t=0)的人口数。 x=dsolve(Dx=r*x,x(0)=x0) x = x0*exp(r*t) 实验01-03 人口指数增长模型参数估计及结果分析(美国1790-2000年人口)(验证,p11) 1.用表中数据进行数据拟合求参数r,x0的结果。 用数据估计的参数为:r = 0.2022 x0 = 6.0450 2.人口指数增长模型计算结果与实际数据比较(数据表)的结果。 Columns 1 through 10 1790 1800 1810 1820 1830 1840 1850 1860 1870 1880 3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 6 7.4 9.1 11.1 13.6 16.6 20.3 24.9 30.5 37.3 Columns 11 through 20 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980 62.9 76 92 106.5
显示全部
相似文档