资源描述:
《数据建模常规方法的MATLAB实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第一章数据建模常规方法的MATLAB实现1.1数据的读入与写出1.2数据拟合方法1.3数据拟合应用实例1.4数据的可视化1.1数据的读入与写出数学建模不可避免地要用到大量的数据,最简单的方法是复制、粘贴,但是不方便。另一种方法是与Excel和记事本(*.dat或者*.txt的文件)进行交互。(算法)程序数据读入输出图形数据1.1.1Excel与MATLAB的数据交互首先要安装Excel和MATLAB。第一,打开Excel的工具→宏→安全性→安全级(中)第二,打开Excel的工具→加载宏→浏览→安装MATLAB的目录→toolbox→exlink→excllink.xla→确定,得到
2、如下的工具条(即可使用):1.1.2记事本与MATLAB的数据交互%从记事本t.txt中读取数据[name,type,x,y,answer]=textread('t.txt','%sType%n%f%n%s',2)%将Matlab数据写入记事本fid=fopen('tp.txt','wt');%文件扩展名可以为:*.dat或*.xlsfprintf(fid,'Thisisthedatabaseofclass1.');name='Sally';types=1;x=3.1;y=45;answer='Yes';fprintf(fid,'%sType%u%f%u%s',name,t
3、ypes,x,y,answer);name='Tom';types=2;x=2.5;y=20;answer='No';fprintf(fid,'%sType%u%f%u%s',name,types,x,y,answer);fclose(fid);1.2数据拟合方法1.2.1多项式拟合一般情况下,数据点较少的用插值法。数据点较多的,只需要考察数据的总体变化趋势的,用拟合法。最常用的拟合方法是最小二乘拟合法。1.多项式拟合指令x=[123456789];y=[9763-125720];P=polyfit(x,y,3);xi=0:0.2:10;yi=polyval(P,xi);plo
4、t(xi,yi,x,y,'r*');2.图形窗口的多项式拟合自学(我的教材缺页!)例子:d1221.2.2指定函数拟合MATLAB主窗口左下角:start→toolboxes→CurveFitting→CurveFittingTool(cftool)1.2.3曲线拟合工具箱1.3数据拟合应用实例1.3.1人口预测模型某地区1971-2000年人口数据,给出该地区人口增长的数学模型。根据所给数据作出散点图。人口随时间的变化是非线性的,存在一条与x轴平行的渐近线,因此用Logistic曲线模型进行拟合。程序见d1311.3.2薄膜渗透率的测定程序见d132背景年162518301930
5、1960197419871999人口(亿)5102030405060世界人口增长概况中国人口增长概况年19081933195319641982199019952000人口(亿)3.04.76.07.210.311.312.013.0研究人口变化规律控制人口过快增长1.3.3如何预报人口的增长指数增长模型——马尔萨斯提出(1798)常用的计算公式x(t)~时刻t的人口基本假设:人口(相对)增长率r是常数今年人口x0,年增长率rk年后人口随着时间增加,人口按指数规律无限增长.与常用公式的一致rtextx0)(=?指数增长模型的应用及局限性与19世纪以前欧洲一些地区人口统计数据吻合.适用
6、于19世纪后迁往加拿大的欧洲移民后代.可用于短期人口增长预测.不符合19世纪后多数地区人口增长规律.不能预测较长期的人口增长过程.19世纪后人口数据人口增长率r不是常数(逐渐下降)阻滞增长模型(Logistic模型)人口增长到一定数量后,增长率下降的原因:资源、环境等因素对人口增长的阻滞作用,且阻滞作用随人口数量增加而变大假设r~固有增长率(x很小时)xm~人口容量(资源、环境能容纳的最大数量)r是x的减函数dx/dtx0xmxm/2xmtx0x(t)~S形曲线,x增加先快后慢x0xm/2阻滞增长模型(Logistic模型)指数增长模型参数估计用指数增长模型或阻滞增长模型作人口预报
7、,必须先估计模型参数r或r,xm.根据统计数据利用线性最小二乘法作拟合阻滞增长模型(Logistic模型)例:美国人口数据(百万)186018701880……1960197019801990200031.438.650.2……179.3204.0226.5251.4281.4tx数据(t,x)数据(x,y)用最小二乘法估计r,sr,xm模型检验用模型计算2000年美国人口误差不到3%阻滞增长模型(Logistic模型)r=0.2557,xm=392.1用美国1860~