用MATLAB进行数据拟合教学提纲.ppt
《用MATLAB进行数据拟合教学提纲.ppt》由会员分享,可在线阅读,更多相关《用MATLAB进行数据拟合教学提纲.ppt(65页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、用MATLAB进行数据拟合拟拟 合合 问问 题题 引引 例例 1 1温度温度t(0C)20.5 32.7 51.0 73.0 95.7电阻电阻R()765 826 873 942 1032已知热敏电阻数据:已知热敏电阻数据:求求60600C时的电阻时的电阻R。设设 R=at+ba,b为待定系数为待定系数拟拟 合合 问问 题题 引引 例例 2 2 t(h)0.25 0.5 1 1.5 2 3 4 6 8c(g/ml)19.21 18.15 15.36 14.10 12.89 9.32 7.45 5.24 3.01已知一室模型快速静脉注射下的血药浓度数据已知一室模型快速静脉注射下的血药浓度数据(t
2、=0注射注射300mg)求血药浓度随时间的变化规律求血药浓度随时间的变化规律c(t).作半对数坐标系作半对数坐标系(semilogy)下的图形下的图形MATLAB(aa1)曲曲 线线 拟拟 合合 问问 题题 的的 提提 法法已知一组(二维)数据,即平面上已知一组(二维)数据,即平面上 n个点个点(xi,yi)i=1,n,寻求一个函数(曲线)寻求一个函数(曲线)y=f(x),使使 f(x)在某种准则下与所有在某种准则下与所有数据点最为接近,即曲线拟合得最好。数据点最为接近,即曲线拟合得最好。+xyy=f(x)(xi,yi)i i 为点为点(xi,yi)与与曲线曲线 y=f(x)的距离的距离拟合与
3、插值的关系拟合与插值的关系 函数插值与曲线拟合都是要根据一组数据构造一个函数作函数插值与曲线拟合都是要根据一组数据构造一个函数作为近似,由于近似的要求不同,二者的数学方法上是完全不同为近似,由于近似的要求不同,二者的数学方法上是完全不同的。的。实例:实例:下面数据是某次实验所得,希望得到X和 f之间的关系?MATLAB(cn)问题:问题:给定一批数据点,需确定满足特定要求的曲线或曲面解决方案:解决方案:若不要求曲线(面)通过所有数据点,而是要求它反映对象整体的变化趋势,这就是数据拟合数据拟合,又称曲线拟合或曲面拟合。若要求所求曲线(面)通过所给所有数据点,就是插值问题插值问题;最临近插值、线性
4、插值、样条插值与曲线拟合结果:最临近插值、线性插值、样条插值与曲线拟合结果:曲线拟合问题最常用的解法曲线拟合问题最常用的解法线性最小二乘法的基本思路线性最小二乘法的基本思路第一步:先选定一组函数先选定一组函数 r1(x),r2(x),rm(x),mn,令令 f(x)=a1r1(x)+a2r2(x)+amrm(x)(1)其中其中 a1,a2,am 为待定系数。为待定系数。第二步:确定确定a1,a2,am 的准则(最小二乘准则):的准则(最小二乘准则):使使n个点个点(xi,yi)与与曲线曲线 y=f(x)的距离的距离 i 的平方和最小的平方和最小。记记问题归结为,求问题归结为,求 a1,a2,a
5、m 使使 J(a1,a2,am)最小。最小。线性最小二乘法的求解:预备知识线性最小二乘法的求解:预备知识超定方程组超定方程组:方程个数大于未知量个数的方程组:方程个数大于未知量个数的方程组即即 Ra=y其中其中超定方程一般是不存在解的矛盾方程组。超定方程一般是不存在解的矛盾方程组。如果有向量如果有向量a使得使得 达到最小,达到最小,则称则称a为上述为上述超定方程的最小二乘解超定方程的最小二乘解。线性最小二乘法的求解线性最小二乘法的求解 定理:定理:当当R RT TR R可逆时,超定方程组(可逆时,超定方程组(3 3)存在最小二乘解,)存在最小二乘解,且即为方程组且即为方程组 R RT TRa=
6、RRa=RT Ty y的解:的解:a=(Ra=(RT TR)R)-1-1R RT Ty y 所以,曲线拟合的最小二乘法要解决的问题,实际上就是所以,曲线拟合的最小二乘法要解决的问题,实际上就是求以下超定方程组的最小二乘解的问题。求以下超定方程组的最小二乘解的问题。其中其中Ra=y (3)线性最小二乘拟合线性最小二乘拟合 f(x)=a1r1(x)+amrm(x)中函数中函数rr1 1(x),(x),r rm m(x)(x)的选取的选取 1.1.通过机理分析建立数学模型来确定通过机理分析建立数学模型来确定 f(x)f(x);+f=a1+a2xf=a1+a2x+a3x2f=a1+a2x+a3x2f=
7、a1+a2/xf=aebxf=ae-bx 2.2.将数据将数据 (xi,yi)i=1,n 作图,通过直观判断确定作图,通过直观判断确定 f(x):用用MATLAB解拟合问题解拟合问题1 1、线性最小二乘拟合、线性最小二乘拟合2 2、非线性最小二乘拟合、非线性最小二乘拟合用用MATLAB作线性最小二乘拟合作线性最小二乘拟合1.1.作多项式作多项式f(x)=a1xm+amx+am+1拟合拟合,可利用已有程序可利用已有程序:a=polyfit(x,y,m)2.2.对超定方程组对超定方程组可得最小二乘意义下的解。可得最小二乘意义下的解。,用,用3.3.多项式在多项式在x x处的值处的值y y可用以下命
8、令计算:可用以下命令计算:y=polyval y=polyval(a a,x x)输出拟合多项式系数输出拟合多项式系数a=a1,am,am+1(数组数组))输入同长度输入同长度的数组的数组X,Y拟合多项拟合多项式次数式次数即要求即要求 出二次多项式出二次多项式:中中 的的使得使得:例例1 对下面一组数据作二次多项式拟合对下面一组数据作二次多项式拟合1)输入以下命令)输入以下命令:x=0:0.1:1;y=-0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2;R=(x.2)x ones(11,1);A=RyMATLAB(zxec1)解法
9、解法1 1用解超定方程的方法用解超定方程的方法2)计算结果)计算结果:=-9.8108 20.1293 -0.03171)输入以下命令:)输入以下命令:x=0:0.1:1;y=-0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2;A=polyfit(x,y,2)z=polyval(A,x);plot(x,y,k+,x,z,r)%作出数据点和拟合曲线的图形作出数据点和拟合曲线的图形2)计算结果:)计算结果:=-9.8108 20.1293 -0.0317解法解法2用多项式拟合的命令用多项式拟合的命令MATLAB(zxec2)例例2 已
10、知观测数据点如表所示已知观测数据点如表所示xy0-0.4470.11.9780.23.280.36.160.47.080.57.340.67.660.79.560.89.480.99.3111.2分别用分别用3次和次和6次多项式曲线拟合这些数据点次多项式曲线拟合这些数据点.x=0:0.1:1y=-0.447,1.978,3.28,6.16,7.08,7.34,7.66,9.56,9.48,9.3,11.2plot(x,y,k.,markersize,25)axis(0 1.3-2 16)p3=polyfit(x,y,3)p6=polyfit(x,y,6)编写编写Matlab程序如下程序如下:t
11、=0:0.1:1.2s=polyval(p3,t)s1=polyval(p6,t)hold onplot(t,s,r-,linewidth,2)plot(t,s,b-,linewidth,2)gridx=0:0.1:1y=-0.447,1.978,3.28,6.16,7.08,7.34,7.66,9.56,9.48,9.3,11.2plot(x,y,k.,markersize,25)axis(0 1.3-2 16)p3=polyfit(x,y,3)p6=polyfit(x,y,6)例例3 用切削机床进行金属品加工时用切削机床进行金属品加工时,为了适当地调整为了适当地调整机床机床,需要测定刀具的
12、磨损速度需要测定刀具的磨损速度.在一定的时间测量在一定的时间测量刀具的厚度刀具的厚度,得数据如表所示得数据如表所示:切削时间切削时间 t/h030.0129.1228.4328.1428.0527.7627.5727.2827.0刀具厚度刀具厚度 y/cm切削时间切削时间 t/h926.81026.51126.31226.11325.71425.31524.81624.0刀具厚度刀具厚度 y/cm解解:描出散点图描出散点图,在命令窗口输入在命令窗口输入:t=0:1:16y=30.0 29.1 28.4 28.1 28.0 27.7 27.5 27.2 27.0 26.8 26.5 26.3 2
13、6.1 25.7 25.3 24.8 24.0plot(t,y,*)解解:描出散点图描出散点图,在命令窗口输入在命令窗口输入:t=0:1:16y=30.0 29.1 28.4 28.1 28.0 27.7 27.5 27.2 27.0 26.8 26.5 26.3 26.1 25.7 25.3 24.8 24.0plot(t,y,*)a=-0.3012 29.3804hold onplot(t,y1),hold offa=polyfit(t,y,1)y1=-0.3012*t+29.3804例例3 用切削机床进行金属品加工时用切削机床进行金属品加工时,为了适当地调整为了适当地调整机床机床,需要测
14、定刀具的磨损速度需要测定刀具的磨损速度.在一定的时间测量在一定的时间测量刀具的厚度刀具的厚度,得数据如表所示得数据如表所示:切削时间切削时间 t/h030.0129.1228.4328.1428.0527.7627.5727.2827.0刀具厚度刀具厚度 y/cm切削时间切削时间 t/h926.81026.51126.31226.11325.71425.31524.81624.0刀具厚度刀具厚度 y/cm拟合曲线为拟合曲线为:y=-0.3012t+29.3804例例4 一个一个15.4cm30.48cm的混凝土柱在加压实验中的应的混凝土柱在加压实验中的应力力-应变关系测试点的数据如表所示应变关
15、系测试点的数据如表所示1.552.472.933.03已知应力已知应力-应变关系可以用一条指数曲线来描述应变关系可以用一条指数曲线来描述,即假设即假设式中式中,表示应力表示应力,单位是单位是 N/m2;表示应表示应变变.2.89已知应力已知应力-应变关系可以用一条指数曲线来描述应变关系可以用一条指数曲线来描述,即假设即假设式中式中,表示应力表示应力,单位是单位是 N/m2;表示应表示应变变.解解 选取选取指数函数指数函数作拟合时作拟合时,在拟合前需作变量代换在拟合前需作变量代换,化为化为 k1,k2 的线性函的线性函数数.于是于是,令令即即在命令窗口输入在命令窗口输入:x=500*1.0e-6
16、 1000*1.0e-6 1500*1.0e-6 2000*1.0e-6 2375*1.0e-6y=3.103*1.0e+3 2.465*1.0e+3 1.953*1.0e+3 1.517*1.0e+3 1.219*1.0e+3z=log(y)a=polyfit(x,z,1)k1=exp(8.3009)w=1.55 2.47 2.93 3.03 2.89plot(x,w,*)y1=exp(8.3009)*x.*exp(-494.5209*x)plot(x,w,*,x,y1,r-)已知应力已知应力-应变关系可以用一条指数曲线来描述应变关系可以用一条指数曲线来描述,即假设即假设式中式中,表示应力表
17、示应力,单位是单位是 N/m2;表示应表示应变变.拟合曲线为拟合曲线为:令令则则求得求得于是于是在实际应用中常见的拟合曲线有在实际应用中常见的拟合曲线有:直线直线多项式多项式一般一般 n=2,3,不宜过高不宜过高.双曲线双曲线(一支一支)指数曲线指数曲线二、人口预测线性模型二、人口预测线性模型对于开始提出的实验问题对于开始提出的实验问题,代如数据,计算得代如数据,计算得从而得到人口数与年份的函数关系为从而得到人口数与年份的函数关系为把把x=1999代如,估算出代如,估算出1999年的人口数为年的人口数为 y=1252.1(百万)(百万)12.52亿亿1999年实际人口数量为年实际人口数量为.亿
18、。亿。线性预测模型线性预测模型 英国人口学家英国人口学家MalthusMalthus根据百余年的人口统计资根据百余年的人口统计资料,于料,于17981798年提出了著名的人口自然增长的年提出了著名的人口自然增长的指数增指数增长模型长模型。三、人口预测的三、人口预测的Malthus模型模型基本假设基本假设 :人口人口(相对相对)增长率增长率 r 是常数是常数设设x(t)为为t时刻的人口数量时刻的人口数量,t=0时人口数为时人口数为x0指数增长模型指数增长模型实际中,常用实际中,常用1.1.由前由前100100年的数据求出美国的人口增长年的数据求出美国的人口增长Malthus模型模型。2.2.预测
19、后预测后100100年(每隔年(每隔1010年)的人口状况。年)的人口状况。3.3.根据预测的人口状况和实际的人口数量根据预测的人口状况和实际的人口数量,讨论人讨论人口模型的改进情况。口模型的改进情况。美国美国17901790年年19801980年每隔年每隔1010年的人口记录年的人口记录226.5204.0179.3150.7131.7123.2106.592.076.062.9人口人口(百万百万)1980197019601950194019301920191019001890年份年份50.238.631.423.217.112.99.67.25.33.9人口人口(百万百万)18801870
20、18601850184018301820181018001790年份年份例例解:解:取得最小值取得最小值.其中其中,表示人口数量表示人口数量。表示年份表示年份,解方程组解方程组:即得参数即得参数的值的值.使得使得问题转化为求参数问题转化为求参数 prog41.m%prog41.m%This program is to predict the number of%This program is to predict the number of population%population%format longformat longt1=1790;1800;1810;1820;1830;1840;
21、1850;1860;187t1=1790;1800;1810;1820;1830;1840;1850;1860;1870;1880;0;1880;t2=1890;1900;1910;1920;1930;1940;1950;1960;197t2=1890;1900;1910;1920;1930;1940;1950;1960;1970;1980;0;1980;x1=3.9;5.3;7.2;9.6;12.9;17.1;23.2;31.4;38.6;50.x1=3.9;5.3;7.2;9.6;12.9;17.1;23.2;31.4;38.6;50.2;2;x2=62.9;76.0;92.0;106.5
22、;123.2;131.7;150.7;179.x2=62.9;76.0;92.0;106.5;123.2;131.7;150.7;179.3;204.0;226.5;3;204.0;226.5;lnx1=log(x1);lnx2=log(x2);lnx1=log(x1);lnx2=log(x2);a12=sum(t1);a11=10;a21=a12;a22=sum(t1.2);d1=sum(lnx1);d2=sum(lnx1.*t1);A=a11,a12;a21,a22;D=d1;d2;ab=inv(A)*D;disp(a=);disp(ab(1);disp(b=);disp(ab(2);fo
23、rfor i=1:10 i=1:10 xx1(i)=exp(ab(1)+ab(2)*t1(i);xx1(i)=exp(ab(1)+ab(2)*t1(i);endendforfor i=1:10 i=1:10 xx2(i)=exp(ab(1)+ab(2)*t2(i);xx2(i)=exp(ab(1)+ab(2)*t2(i);endendplot(t1,x1,r*-,t1,xx1,b+-,t2,x2,g*-plot(t1,x1,r*-,t1,xx1,b+-,t2,x2,g*-,t2,xx2,m+-);,t2,xx2,m+-);a=-49.79535457790735b=0.028598071200
24、38仿真结果表明:仿真结果表明:人口增加的指人口增加的指数模型在短期数模型在短期内基本上能比内基本上能比较准确地反映较准确地反映人口自然增长人口自然增长的规律,但长的规律,但长期预测误差很期预测误差很大,需要修正大,需要修正预测模型。预测模型。拟合曲线拟合曲线原始数据曲线原始数据曲线四、人口预测的四、人口预测的Logistic模型模型人口增长到一定数量后,增长率下降的原因:人口增长到一定数量后,增长率下降的原因:资源、环境等因素对人口增长的阻滞作用资源、环境等因素对人口增长的阻滞作用且阻滞作用随人口数量增加而变大且阻滞作用随人口数量增加而变大假设假设r固有增长率固有增长率(x很小时很小时)k人
25、口容量(资源、环境能容纳的最大数量)人口容量(资源、环境能容纳的最大数量)r是是x的减函数的减函数例的例的LogisticLogistic模型留给同学们练习模型留给同学们练习用多项式拟合人口模型用多项式拟合人口模型%This program is to predict the model of population by%This program is to predict the model of population by 4-degree polynomial%4-degree polynomial%prog42.m%prog42.m%format longformat longt1=1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 进行 数据 拟合 教学 提纲
限制150内