在Matlab中数值拟合的应用(3)

2019-02-26 11:28

氢气470 285 470 470 470 100 100 470 100 100 100 285 285 -戊烷300 80 300 80 80 190 80 190 300 300 80 300 190 戊烷10 10 120 120 10 10 65 65 54 120 120 10 120 反应速率8.55 3.79 4.82 0.02 2.75 14.39 2.54 4.35 13 8.5 0.05 11.32 3.13

解:输入:

data=[470 285 470 470 470 100 100 470 100 100 100 285 285;

300 80 300 80 80 190 80 190 300 300 80 300 190;

10 10 120 120 10 10 65 65 54 120 120 10 120]';%反应物数据

rate=[8.55 3.79 4.82 0.02 2.75 14.39 2.54 4.35 13 8.5 0.05 11.32 3.13]'; %反应速率数据

f=@(b,x)( b(1)*x(:,2)-x(:,3)/b(5))./(1+b(2)*x(:,1)+b(3)*x(:,2)+b(4)*x(:,3)); %定义拟合函数

b0=[1;0.1;0.2;0.1;2]; %参数求解的初始值

betafit=nlinfit(data,rate,f,b0) %调用nlinfit 函数求解

得到结果为:

betafit = 1.2526 0.0628 0.0400 0.1124 1.1914 所以原模型为:y?1.2526x2?x3/1.1914

1?0.0628x1?0.0400x2?0.1124x33、拟合工具箱的使用

为了使用户更方便地进行曲线拟合,Matlab 还提供了一个功能强大的曲线拟合工具箱——Curve Fitting Toolbox,它是以图形用户界面的互动操作展示给用户的,而且最后还可以将该图形界面操作生成的M 函数文件保存以备后用。下面我们就以例7为例说明该拟合工具箱的用法。

1例7: 在一次传染病总,已知t时刻的染病人数I(t)满足如下模型I(t)?,

a?bect公共部门每隔5天记录一次传染者的人数,具体见下表,试利用拟合方法确定a,b,c值。 天数 0 5 10 15 20 25 30 35 40 45 50 55 60 传染者 0.2 0.4 0.5 0.9 1.5 2.4 3.1 3.8 4.1 4.2 4.5 4.4 4.5 第一步:输入观测点数据

在Matlab 命令窗口中输入如下语句,将观测点数据输入: t=0:5:60;

y=[0.2 0.4 0.5 0.9 1.5 2.4 3.1 3.8 4.1 4.2 4.5 4.4 4.5];

第二步:启动曲线拟合工具箱

直接在命令窗口输入cftool或者单击Matlab 界面左下角的按钮,再执

Toolboxes‐>Curve Fitting‐>cftool即可。进入拟合工具箱初始界面,如图(1)。

11 / 16

图(1) 图(2)

第三步:数据导入与拟合

单击\按钮,弹出“Data”对话框,分别由Xdata 和Ydata 的下拉菜单导入数据t,y,修改数据集名”Data set name”为“初始数据点”,然后单击按钮,创建一个新数据集,然后单击按钮”Close”退出“Data”对话框,这时会在初始界面中绘制出数据的散点图,如图(2)。

单击

按钮,弹出“Fitting”对话框,该对话框分为两部分,上

面为“Fit Editor”,下面为“Table of Fits”。

图(3)

单击按钮并将“Fit Name”该为“拟合曲线”,然后通过下拉菜单“Type ofFit”选择拟合曲线的类型,该工具箱提供的拟合曲线的类型有以下几种。

12 / 16

Custom Equations:用户自定义的函数类型。 Exponential: e 指数函数。 ourier: 傅里叶函数。 Gaussian: 高斯函数。 Interpolant: 插值函数。 Polynonmial: 多项式函数。 Power: 幂函数。 Rational: 有理函数。 Smoothing Spline: 平滑样条拟合函数。 Sun of Sin Functions: 正弦函数类。 Weibull: 威布尔函数。

我们可根据各点的分布大概看出其函数,例如该题如果选择Gaussian: 高斯函数。选择Gaussian内相应的方程,单击残差的大小,如图(4)选择方程

余残差为0.06578,得到的拟合图形为图(5):

,观察比较各个方程下剩余

时的剩

图(4) 图(5)

Result菜单中(如图(6))的顶端有所求方程的各项系数。从而可以读写出相应方程。

图(6)

另外,也可以通过使用Custom Equations:用户自定义的函数类型。单击

13 / 16

,得到如图(7)。

图(7) 输入你要拟合的拟合函数表达式,按

按钮,便可得到相应的未知系

,同样观察其剩余残

数,从而得到相应方程。结束后选择该函数,单击差,及拟合图像。

第四步:数据分析与预测

单击

按钮,可以进入“Analysis”界面,输入Xi 的值并在

“Evalute fit at Xi”选项前打钩,在“Plot results”选项前打钩,单击“Apply”按钮即可在右边的区域显示详细的数据,并绘制修改数据后的图形。

Analysis of fit \s. t\4.5fit 143.532.5Fit21.510.500102030405060

14 / 16

第五步:生成函数M 文件

执行操作“File‐>Generate M‐file?”,即可生成函数M文件,这样在以后的调用中就会非常方便。对于本例,将得到的代码保存为createFit.m,在下次要进行这类函数的拟合时,直接调用函数createFit()就可以了,例如:

t=0:5:60; y=[0.2 0.4 0.5 0.9 1.5 2.4 3.1 3.8 4.1 4.2 4.5 4.4 4.5]; createFit(t,y)

要进行曲面的拟合,也可使用Matlab提供的曲面拟合工具箱sftool,其使用方法和cftool大同小异。

4、经典综合实验任务

(1)人口预测问题

以下是美国人口两个世纪以来的统计数据,试以此预测2010年,2020年的美国人口。人口单位(百万)

年份 人口 年份 人口 1800 5.3 1910 92.0 1810 7.2 1920 1820 9.6 1930 1830 12.9 1940 1840 17.1 1950 1850 23.2 1960 1860 31.4 1970 1870 38.6 1980 1880 50.2 1990 1890 62.9 2000 1900 76.0 106.5 123.2 131.7 150.7 179.3 204.0 226.5 251.4 275.0 (2)估计水塔的流量

某居民区有一供居民用水的圆柱形水塔,一般可以通过测量其水位来估计

水的流量,但面临的困难是,当水塔水位下降到设定的最低水位时,水泵自动启动向水塔供水,到设定的最高水位时停止供水,这段时间无法测量水塔的水位和水泵的供水量。通常水泵每天供水一两次,每次约两小时。

水塔是一个高12.2米,直径17.4米的正圆柱。按照设计,水塔水位降至约8.2米时,水泵自动启动,水位升到约10.8米时水泵停止工作。

表1 是某一天的水位测量记录,试估计任何时刻(包括水泵正供水时)从水塔流出的水流量,及一天的总用水量。(符号//表示水泵启动)

0 0.92 1.84 2.95 3.87 4.98 5.90 7.01 7.93 8.97 时刻(h) 水位(cm) 968 948 931 913 898 881 869 852 839 822 9.98 10.92 10.95 12.03 12.95 13.88 14.98 15.90 16.83 17.93 时刻(h) 水位(cm) // // 1082 1050 1021 994 965 941 918 892 19.04 19.96 20.84 22.01 22.96 23.88 24.99 25.91 时刻(h) 水位(cm) 866 843 822 // // 1059 1035 1018

15 / 16

5、本文总结

通过本文的学习,估计大家对数据拟合便不再陌生了吧,面对着分散的数据点,只要运用某种你和方法生成一条连续的曲线,这个过程称为曲线拟合。也懂得了怎样从给定的一组实验数据出发,寻求已知函数的一个逼近函数s(x),使得逼近函数从总体上来说与已知函数的偏差按某种方法度量能达到最小而又不一定过全部的点(xi,yi),学了数据拟合,再多的数据我们也不再畏惧,而Matlab中数据拟合的应用也是非常重要的,很多数学建模的实现都离不开数学拟合,所以如果你能熟悉掌握数据拟合这一块,这对你在数学建模方面会有很多帮助。 本文已经相当详细、系统地介绍了数据拟合的知识,包括拟合准则、各种拟合方法及曲线拟合工具箱的使用,但本文涉及的曲线拟合工具的功能还相对基础,读者若有兴趣的话,还可自行深入研究曲线拟合工具箱的其他功能及曲面拟合工具箱的使用,其使用方法跟曲线拟合工具相似。 希望通过本文的学习,你能有所进步、收获。

6、参考文献

[1] 韩明 王家宝 李林,数学实验(MATLAB),同济大学出版社,2012年出版 [2] 陈育宁,MATLAB数学实验教程,宁夏人民教育出版社,2007年出版 [3] 李明,MATLAB在最优化计算中的应用,电子工业出版社,2012年出版 [4] 何正风,Matlab在数学方面的应用,北京:清华大学出版社,2012.1 [5] 数模网论坛http://www.shumo.com/forum/forumdisplay.php?fid=116

16 / 16


在Matlab中数值拟合的应用(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:生物多样性保护优先区域

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: