数学模型实验答案.doc
文本预览下载声明
第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
显示全部