第七章 数据的曲线拟合-席.pptVIP

  • 4
  • 0
  • 约4.13千字
  • 约 26页
  • 2020-01-14 发布于湖北
  • 举报
* * * * * * * * * * * * * * * * * * * * * * 第七章 数据的曲线拟合 曲线拟合:用函数 拟合给定的节点 可以是多项式、非线性函数或已知函数的线性 组合,但它必须有确定数量的未知系数(k个)。 通常,所拟合的节点数 L 必须大于未知数个数 k。确定系数,使得拟合函数与节点的偏差最小,这种方法称为最小二乘法。当 时,由于拟合曲线通过所有节点,将会简化我们的问题。 1、联系 都是根据实际中一组已知数据来构造一个能够反映数据变化规律的近似函数的方法。 2、区别 插值问题不一定得到近似函数的表达形式,仅通过插值方法找到插值点对应的值。数据拟合要求得到一个具体的近似函数的表达式。 拟合模型可以分为直线拟合、曲线拟合和观察数据修匀。 说明:观察数据修匀-对于已给一批实测数据,由于实测方法、实验环境等一些外界因素的影响,不可避免地会产生随机干扰和误差。我们自然希望根据数据分布的总趋势去剔除观察数据中的偶然误差,这就是所谓的数据修匀(或称数据平滑)问题。 插值与拟合的区别和联系: 一、直线拟合 若用线性函数拟合如下数据: 线性函数表示为: 其中 为待定系数。 拟合直线称为回归直线。 由于数据节点数大于未知数(即待定系数)的个数2,直线不可能经过每个点,但是直线与数据的偏差一定要达到最小。 直线与点的偏离程度(即残差)定义为: 残差的平方和为: 要使 R 达到最小, 令 矩阵形式: “线性最小二乘法” 确定系数的另一种方法是直接求解超定线性方程组: 其中 方程组两边同时左乘 ,得常规方程组: 求解: 在MATLAB中,也可直接求解超定方程组的解: c=A\ y %可求得最小二乘解 或已知数据点 x 与 y,用polyfit命令 c=polyfit(x, y,1) 例1 求拟合下列数据点的直线。 x=[0.1 0.4 0.5 0.7 0.7 0.9]; y=[0.61 0.92 0.99 1.52 1.47 2.03]; c=polyfit(x,y,1) c = 1.7646 0.2862 即线性函数g(x)=1.7646x+0.2862 A=[x ones(6,1)]; c=(A*A)\(A*y) c = 1.7646 0.2862 c=A\y c = 1.7646 0.2862 绘图程序: x=[0.1 0.4 0.5 0.7 0.7 0.9]; y=[0.61 0.92 0.99 1.52 1.47 2.03]; c=polyfit(x,y,1); y1=polyval(c,x); plot(x,y,.,x,y1) gtext(y=1.7646x+0.2862); xlabel(X); ylabel(Y); 二、非线性曲线拟合 对一组数据,若做幂函数对其进行拟合: 为确定待定系数 ,对其进行线性化处理,取自然对数: 取: 则: 问题简化为线性回归,拟合数据点为: 然后确定 例2 做下列数据点的幂函数拟合。 c=polyfit(log(x),log(y),1) c=[0.2093 1.8588] 结果: 所以 x=[0.15 0.4 0.6 1.01 1.5 2.2 2.4 2.7 2.9 3.5 3.8 4.4 4.6 5.1 6.6 7.6]; y=[4.4964 5.1284 5.6931 6.2884 7.0989 7.5507 7.5106 8.0756 7.8708 8.2403 8.5303 8.7394 8.9981 9.1450 9.5070 9.9115]; c=polyfit(log(x),log(y),1); alfa=c(1); beta=exp(c(2)); y1=beta*x.^alfa; subplot(2,2,1) plot(x,y,+) xlabel(X);ylabel(Y); subplot(2,2,2) plot(x,y,+) hold on loglog(x,y) xlabel(X);ylabel(Y); title((a)Loglog plot of y vs x,Color,r) subplot(2,2,3) plot(log(x),log(y),+,log(x),log(y)) xlabel(log(X));ylabel(log(Y)); title((b)Linear plot of log(y) vs log(x),Color,r); subplot(2,2,4) plot(x,y,+,x,y1) xlabel(X)

文档评论(0)

1亿VIP精品文档

相关文档