资源预览内容
第1页 / 共65页
第2页 / 共65页
第3页 / 共65页
第4页 / 共65页
第5页 / 共65页
第6页 / 共65页
第7页 / 共65页
第8页 / 共65页
第9页 / 共65页
第10页 / 共65页
亲,该文档总共65页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
2018/9/6,数学建模,2012数学建模集训班-拟合与插值专题,精彩源于坚持,搏过才知其美,2018/9/6,数学建模,在大量的应用领域中,人们经常面临用一个解析函数描述数据(通常是测量值)的任务。对这个问题有两种方法。 一种是插值法,数据假定是正确的,要求以某种方法描述数据点之间所发生的情况。 另一种方法是曲线拟合或回归。人们设法找出某条光滑曲线,它最佳地拟合数据,但不必要经过任何数据点。,本专题的主要目的是:了解插值和拟合的基本内容;掌握用Matlab求解插值与拟合问题的基本命令。,2018/9/6,数学建模,内容提纲,1.拟合问题引例及基本理论 2.Matlab求解拟合问题 3.应用实例 4.插值问题引例及基本理论 5.Maltab求解插值问题 6.应用实例,2018/9/6,数学建模,拟合问题,2018/9/6,数学建模,拟 合 问 题 引 例 1,温度t(0C) 20.5 32.7 51.0 73.0 95.7 电阻R() 765 826 873 942 1032,已知热敏电阻数据:,求600C时的电阻R。,设 R=at+b a,b为待定系数,2018/9/6,数学建模,拟 合 问 题 引 例 2,求血药浓度随时间的变化规律c(t).,作半对数坐标系(semilogy)下的图形,MATLAB(aa1),2018/9/6,数学建模,曲 线 拟 合 问 题 的 提 法,已知一组(二维)数据,即平面上 n个点(xi,yi) i=1,n, 寻求一个函数(曲线)y=f(x), 使 f(x) 在某种准则下与所有数据点最为接近,即曲线拟合得最好。,y=f(x),i 为点(xi,yi) 与曲线 y=f(x) 的距离,2018/9/6,数学建模,线性最小二乘拟合 f(x)=a1r1(x)+ +amrm(x)中函数r1(x), rm(x)的选取,1. 通过机理分析建立数学模型来确定 f(x);,2. 将数据 (xi,yi) i=1, n 作图,通过直观判断确定 f(x):,2018/9/6,数学建模,曲线拟合问题最常用的解法线性最小二乘法的基本思路,第一步:先选定一组函数 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, am 使 J(a1,a2, am) 最小。,2018/9/6,数学建模,线性最小二乘法的求解:预备知识,超定方程组:方程个数大于未知量个数的方程组,超定方程一般是不存在解的矛盾方程组。,如果有向量a使得 达到最小, 则称a为上述超定方程的最小二乘解。,2018/9/6,数学建模,线性最小二乘法的求解,定理:当RTR可逆时,超定方程组(3)存在最小二乘解, 且即为方程组RTRa=RTy -正则(正规)方程组 的解:a=(RTR)-1RTy,所以,曲线拟合的最小二乘法要解决的问题,实际上就是求以下超定方程组的最小二乘解的问题。,2018/9/6,数学建模,用MATLAB解拟合问题,1、线性最小二乘拟合,2、非线性最小二乘拟合,2018/9/6,数学建模,用MATLAB作线性最小二乘拟合,1. 作多项式f(x)=a1xm+ +amx+am+1拟合,可利用已有命令:,a=polyfit(x,y,m),3.对超定方程组,2.多项式在x处的值y的计算命令:y=polyval(a,x),2018/9/6,数学建模,例 对下面一组数据作二次多项式拟合,2018/9/6,数学建模,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=Ry,MATLAB(zxec1),解法1解超定方程的方法,2)计算结果: = -9.8108, 20.1293, -0.0317,2018/9/6,数学建模,2)计算结果: = -9.8108, 20.1293, -0.0317,解法2用多项式拟合的命令,MATLAB(zxec2),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; A=polyfit(x,y,2) z=polyval(A,x); plot(x,y,k+,x,z,r) %作出数据点和拟合曲线的图形,2018/9/6,数学建模,1. lsqcurvefit 已知数据点:xdata=(xdata1,xdata2,xdatan)ydata=(ydata1,ydata2,ydatan),用MATLAB作非线性最小二乘拟合,两个求非线性最小二乘拟合的函数: lsqcurvefit、lsqnonlin。 相同点和不同点:两个命令都要先建立M-文件fun.m,定义函数f(x),但定义f(x)的方式不同,请参考例题。,lsqcurvefit用以求含参量x(向量)的向量值函数 F(x,xdata)=(F(x,xdata1),F(x,xdatan)T 中的参变量x(向量),使得,2018/9/6,数学建模,输入格式:(1) x = lsqcurvefit (fun,x0,xdata,ydata);(2) x =lsqcurvefit (fun,x0,xdata,ydata,lb, ub);(3) x =lsqcurvefit (fun,x0,xdata,ydata, lb, ub, options);(4) x, resnorm = lsqcurvefit (fun,x0,xdata,ydata,);(5) x, resnorm, residual = lsqcurvefit (fun,x0,xdata,ydata,);,说明:x = lsqcurvefit (fun,x0,xdata,ydata,options);,2018/9/6,数学建模,lsqnonlin用以求含参量x(向量)的向量值函数f(x)=(f1(x),f2(x),fn(x)T 中的参量x,使得最小。其中 fi(x)=f(x,xdatai,ydatai)=F(x,xdatai)-ydatai,2. lsqnonlin,已知数据点: xdata=(xdata1,xdata2,xdatan)ydata=(ydata1,ydata2,ydatan),2018/9/6,数学建模,输入格式:1) x=lsqnonlin(fun,x0);2) x= lsqnonlin (fun,x0,lb,ub);3) x= lsqnonlin (fun,x0, ,lb,ub,options);4) x, resnorm= lsqnonlin (fun,x0,);5) x, resnorm , residual= lsqnonlin (fun,x0,);,说明:x= lsqnonlin (fun,x0,options);,2018/9/6,数学建模,例2 用下面一组数据拟合 中的参数a,b,k,该问题即解最优化问题:,2018/9/6,数学建模,MATLAB(fzxec1),1)编写M-文件 curvefun1.mfunction f=curvefun1(x,tdata)f=x(1)+x(2)*exp(-0.02*x(3)*tdata) %其中 x(1)=a; x(2)=b;x(3)=k;,2)输入命令 tdata=100:100:1000 cdata=1e-03*4.54,4.99,5.35,5.65,5.90,6.10,6.26,6.39, 6.50,6.59;x0=0.2,0.05,0.05;x=lsqcurvefit (curvefun1,x0,tdata,cdata)f= curvefun1(x,tdata),F(x,tdata)= ,x=(a,b,k),解法1. 用命令lsqcurvefit,2018/9/6,数学建模,3)运算结果: f =0.0043 0.0051 0.0056 0.0059 0.0061 0.0062 0.0062 0.0063 0.0063 0.0063x =0.0063 -0.0034 0.2542,4)结论:a=0.0063, b=-0.0034, k=0.2542,2018/9/6,数学建模,MATLAB(fzxec2),1)编写M-文件 curvefun2.mfunction f=curvefun2(x)tdata=100:100:1000;cdata=1e-03*4.54,4.99,5.35,5.65,5.90,6.10,6.26,6.39,6.50,6.59;f=x(1)+x(2)*exp(-0.02*x(3)*tdata)- cdata,2)输入命令:x0=0.2,0.05,0.05; x=lsqnonlin(curvefun2,x0) f= curvefun2(x),函数curvefun2的自变量是x,cdata和tdata是已知参数,故应将cdata tdata的值写在curvefun2.m中,解法 2 用命令lsqnonlin,x=(a,b,k),2018/9/6,数学建模,3)运算结果为f =1.0e-003 *(0.2322 -0.1243 -0.2495 -0.2413 -0.1668 -0.0724 0.0241 0.1159 0.2030 0.2792)x =0.0063 -0.0034 0.2542,可以看出,两个命令的计算结果是相同的。,4)结论:即拟合得a=0.0063 b=-0.0034 k=0.2542,2018/9/6,数学建模,说明:拟合与统计回归,区别与联系,统计回归 线性回归 (regress命令) 非线性回归,2018/9/6,数学建模,非线性回 归,(1)确定回归系数的命令:beta,r,J=nlinfit(x,y,model, beta0),(2)非线性回归命令:nlintool(x,y,model, beta0,alpha),1、回归:,2018/9/6,数学建模,例题的求解:,2、输入数据:x=2:16;y=6.42 8.20 9.58 9.5 9.7 10 9.93 9.99 10.49 10.59 10.60 10.80 10.60 10.90 10.76;beta0=8 2;,3、求回归系数:beta,r ,J=nlinfit(x,y,volum,beta0);beta,得结果:beta =11.6036-1.0641,即得回归模型为:,To MATLAB(liti41),2018/9/6,数学建模,4、预测及作图: YY,delta=nlpredci(volum,x,beta,r ,J);plot(x,y,k+,x,YY,r),2018/9/6,数学建模,插值问题,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号