1第一章数据建模常规方法的MATLAB实现共20页文档

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

参数估计 用指数增长模型或阻滞增长模型作人口 预报,必须先估计模型参数 r 或 r, xm .
根据统计数据利用线性最小二乘法作拟合
dxrx(1 x ) ydx/dtx, sr
dt
xm
x xt xm
例:美国人口数据(百万)
yrsx
t 1860 1870 1880 …… 1960 1970 1980 1990 2000 x 31.4 38.6 50.2 …… 179.3 204.0 226.5 251.4 281.4
1.1 数据的读入与写出
数据读入
(算 法) 程序
输出
数据 图形
数学建模不可避免地要用到大量的数据,最简单的方法是 复制、粘贴,但是不方便。另一种方法是与Excel和记事本 (*.dat或者*.txt的文件)进行交互。
1.1.1 Excel与MATLAB的数据交互
首先要安装Excel和MATLAB。 第一,打开Excel的工具→宏→安全性→安全级(中) 第二,打开Excel的工具→加载宏→浏览→
1.2 数据拟合方法
一般情况下,数据点较少的用插值法。数据点较多的,
只需要考察数据的总体变化趋势的,用拟合法。最常用的拟
合方法是最小二乘拟合法。
1.2.1 多项式拟合
2.图形窗口的多项式拟合
1.多项式拟合指令
x=[1 2 3 4 5 6 7 8 9]; y=[9 7 6 3 -1 2 5 7 20]; P=polyfit(x,y,3); xi=0:0.2:10; yi=polyval(P,xi); plot(xi,yi,x,y,'r*');
基本假设 : 人口(相对)增长率 r 是常数
x(t) ~时刻t的人口
x(tt)x(t) rt
x(t)
dxrx, dt
x(0)x0
x(t ) x e rt 0
与常用公式的一致 x(t)x0(er)t x0(1r)t
? 随着时间增加,人口按指数规律无限增长.
指数增长模型的应用及局限性
• 与19世纪以前欧洲一些地区人口统计数据吻合. • 适用于19世纪后迁往加拿大的欧洲移民后代. • 可用于短期人口增长预测. • 不符合19世纪后多数地区人口增长规律. • 不能预测较长期的人口增长过程. 19世纪后人口数据 人口增长率r不是常数(逐渐下降)
阻滞增长模型(Logistic模型) r(x) r(1 x )
xm
指数增 长模型
dx rx dt
dx/dt
dx r(x)x rx(1 x )
dt
xm
x
xm
xm/2
0
xm/2 xm x
x0 0
t
x(t)
xm
1( xm 1)ert
x0
x(t)~S形曲线, x增加先快后慢
阻滞增长模型(Logistic模型)
r(x19)91[ 0x(19)9/x0m]=274.5
5
10
15
20
1790年为零点
与实际数据(2000年为281.4)比较 误差不到3%
模型应用 预报美国2019年的人口
加入2000年人口数据后重新估计模型参数
阻滞增长模型(Logistic模型)
人口增长到一定数量后,增长率下降的原因:
资源、环境等因素对人口增长的阻滞作用,
且阻滞作用随人口数量增加而变大
r是x的减函数
假设 r(x)rsx (r,s0) r~固有增长率(x很小时)
xm~人口容量(资源、环境能容纳的最大数量)
r(xm) 0
s r xm
r(x) r(1 x ) xm
%将Matlab数据写入记事本 fid= fopen('tp.txt','wt'); %文件扩展名可以为:*.dat或*.xls fprintf(fid,'This is the database of class 1.\n'); name='Sally';types=1;x=3.1;y=45;answer='Yes'; fprintf(fid,'% s Type %u %f %u %s \n',name,types,x,y,answer); name='Tom';types=2;x=2.5;y=20;answer='No'; fprintf(fid,'% s Type %u %f %u %s \n',name,types,x,y,answer); fclose(fid);
中国人口增长概况
年 1908 1933 1953 1964 1982 1990 2019 2000 人口(亿) 3.0 4.7 6.0 7.2 10.3 11.3 12.0 13.0
研究人口变化规律
控制人口过快增长
常用的计算公式 今年人口 x0, 年增长率 r
k年后人口
x x(1r)k
k
0
指数增长模型——马尔萨斯提出 (1798)
根据所给数据作出散点图。人口随时间的变化是非线性的, 存在一条与x轴平行的渐近线,因此用Logistic曲线模型进行拟 合。
程序见d131
1.3.2 薄膜渗透率的测定
程序见d132
1.3.3 如何预报人口的增长
背景
世界人口增长概况
年 1625 1830 1930 1960 1974 1987 2019 人口(亿) 5 10 20 30 40 50 60
自学(我 的教材缺 页!)
例子:d122
1.2.2 指定函数拟合 1.2.3 曲线拟合工具箱
MATLAB主窗口左下角: start→toolboxes→CurveFitting→Curve Fitting Tool (cftool)
1.3 数据拟合应用实例
1.3.1 人口预测模型
某地区1971-2000年人口数据,给出该地区人口增长的数学 模型。
数据(t,x) 数据(x,y) 用最小二乘法估计r,s r,xm
阻滞增长模型(Logistic模型)
用美国1860~1990年数据(去掉个别异常数据)
பைடு நூலகம்
r=0.2557, xm=392.1
300
模型检验
250
200
150
用模型计算2000年美国人口
100
50
x(20)00x(19)9 0xx(19)9000
安装MATLAB的目录→toolbox →exlink →excllink.xla →确定,得到如下的工具条(即可使用):
1.1.2 记事本与MATLAB的数据交互
%从记事本t.txt中读取数据 [name,type, x,y,answer]=textread('t.txt','%s Type %n %f %n %s',2)
相关文档
最新文档