数学建模各类模型的例题及编程

数学建模各类模型的例题及编程,第1张

例:给出美国人口从1790年到1990年间的人口如表1(每10年为一个间隔),请估计出美国2010年的人口。

表1 美国人口统计数据

年 份 1790 1800 1810 1820 1830 1840 1850

人口(×106) 3.9 5.3 7.2 9.6 12.9 17.1 23.2

年 份 1860 1870 1880 1890 1900 1910 1920

人口(×106) 31.4 38.6 50.2 62.9 76.0 92.0 106.5

年 份 1930 1940 1950 1960 1970 1980

人口(×106) 123.2 131.7 150.7 179.3 204.0 226.5

建模方法:

可以发现美国人口的变化规律曲线近似为一条指数函数曲线,因此我们假设美国的人口满足函数关系x=f(t), f(t)=ea+bt,a,b为待定常数,大肆根滚森轿据最小二乘拟春拍合的原理,a,b是函数 的最小值点。其中xi是ti时刻美国的人口数。利用MATLAB软件中的曲线拟合程序“curvefit”,编制的程序如下:

指数函数的函数M——文件

function f=fun1(a,t)

f=exp(a(1)*t+a(2))

用最小二乘拟合求上述函数中待定常数,以及检验拟合效果的图形绘制程序

t=1790:10:1990

x=[3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76 ...

92 106.5 123.2 131.7 150.7 179.3 204 226.5 251.4]

plot(t,x,'*',t,x)

a0=[0.001,1]

a=curvefit('fun1',a0,t,x)

ti=1790:5:2020

xi=fun1(a,ti)

hold on

plot(ti,xi)

t1=2010

x1=fun1(a,t1)

hold off

例2 商人怎样安全过河?

三名商人各带一个随从乘船渡河,一只小 船只能容纳二人,由他们自已划行,随从们密约,在河的一岸,一旦随从的人数比商人多,就杀人越货,但是如何乘船渡河大权掌握在商人手中,商人们怎样才能安全渡河呢?

这里是要用数学方法求解,一是为了给出建模的示例,二是因为这类模型可以解决相当广泛的一类问题,比逻辑思索的结果容易推广。

由于问题已经理想化了,所以不森塌必再作假设。安全渡河问题可以视为一个多步决策过程。每此猜圆一步即船由此岸驶向彼岸或从彼岸驶回此岸,都要对船上的人员作出决策,在保证安全的前题下,在有限步内使人员全部过河,

状态变量表示某一岸的人员状况,决策变量表示船上的人员状况,可以找出状态随决策变化的规律。问题转化为在状态的充许变化范围内,确定每一步的决策,达到渡河的目标

模型的过成:

记第k次渡河前此岸的商人数为xk随从数为yk, k=1,2,……,xk , yk =0,1,2,3,将二维向量sk=(xk,yk)定义为状态,

安全渡河条件下的状态集称为允许状态集合,记作S,不难写出

S={(x,y)|x=0, y=0, 1, 2, 3x=y=1,2} - (1)

记第k次渡船上的商人数为uk ,随从数为vk ,将二维向量dk = (uk,vk)定义为决策,允许决集合记作D,由小船的容量可知

D={(u,v)| u + v = 1 , 2 }- (2)

因为k为奇数时船由此岸驶向彼岸,k为奇数时船由彼岸驶回此岸,所以状态sk 随决策dk变化的规律是:

sk+1 = sk + (-1) k d k - (3)

(3)式称状态转移律,这样,制定安全渡河方案归结为如下的多步决策问题:

求决策dk∈D (k=1,2,……n), 使状态sk∈S按照转移规律(3),由初始状态s1=(3,3)经有限n步后到达状态sn+1=(0,0).

模型求解

根据(1)~(3)式通过计算机编写一段程序来求解多步决策问题是可行的,不过当商人和随从数都不多的情况下还可以用图解法解此模兆孝型更为方便。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12318415.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存