第五章数据拟合.

第五章数据拟合.
第五章数据拟合.

第五章 数据拟合

这就是数据拟合成曲线的思想,简称为曲线拟合(fitting a curve)。根据一组二维数据,即平面上的若干点,要求确定一个一元函数y = f (x ),即曲线,使这些点与曲线总体来说尽量接近,

曲线拟合其目的是根据实验获得的数据去建立因变量与自变量之间有效的经验函数关系,为进一步的深入研究提供线索。本章的目的,掌握一些曲线拟合的基本方法,弄清楚曲线拟合与插值方法之间的区别,学会使用MATLAB 软件进行曲线拟合。

§1 最小二乘法

给定平面上的点(x i, y i ),(i = 1,2,…,n ),进行曲线拟合有多种方法,其中最小二乘法是解决曲线拟合最常用的方法。最小二乘法的原理是:

求 ∑∑==-==n i i i n i i y x f x f 1212])([),(δδ使 达到最小

如图1所示,其中δi 为点(x i ,y i )与曲线y=f (x )的距离。曲线拟合的实际含义是寻求一个函数y=f (x ),使f (x )在某种准则下与所有数据点最为接近,即曲线拟合得最好。最小二乘准则就是使所有散点到曲线的距离平方和最小。拟合时选用一定的拟合函数f (x ) 形式,设拟合函数可由一些简单的“基函数”(例如幂函数,三角函数等等) )(),...,(),(10x x x m ???来线性表示:

)(...)()()(1100x c x c x c x f m m ???+++=

图1 曲线拟合示意图

现在要确定系数c 0,c 1,…,c m ,使d 达到极小。为此,将f (x )的表达式代入d 中,d 就成为c 0,c 1,…,c m 的函数,求d 的极小,就可令d 对 c i 的偏导数等于零,于是得到m +1个方程组,从中求解出c i 。通常取基函数为1,x ,x 2,x 3,…,x m ,这时拟合函数f (x )为多项式函数。当m =1时,f (x ) = a + bx ,称为一元线性拟合函数,它是曲线拟合最简单的形式。除此之外,常用的一元曲线拟合函数还有双曲线f (x ) = a + b/x ,指数曲线f (x ) = a e bx 等,对于这些曲线,拟合前须作变量代换,转化为线性函数。

已知一组数据,用什么样的曲线拟合最好呢?可以根据散点图进行直观判断,在此基础上,选择几种曲线分别作拟合,然后比较,观察哪条曲线的最小二乘指标d 最小。

§2 曲线拟合的MATLAB实现

MATLAB软件提供了基本的曲线拟合函数的命令:

多项式函数拟合: a = polyfit(xdata,ydata,n)

其中n表示多项式的最高阶数,xdata,ydata 为要拟合的数据,它是用数组的方式输入。输出参数a为拟合多项式y = a1x n + … + a n x + a n+1的系数a = [a1, …, a n, a n+1]。

多项式在x处的值y可用下面程序计算。

y = polyval (a, x)

一般的曲线拟合: p = curvefit(‘Fun’,p0,xdata,ydata)

其中Fun表示函数Fun (p, xdata)的M-文件,p0表示函数的初值。curvefit命令的求解问题形式是:

min{p} sum {(Fun (p, xdata)-ydata).^2}

若要求解点x处的函数值可用程序f = Fun(p, x) 计算。

例如已知函数形式y = a e - bx+ c e –dx,并且已知数据点(x i, y i), i = 1,2,…, n,要确定四个未知参数a, b, c, d。

使用curvefit命令,数据输入xdata = [x1,x2, …, x n]; ydata = [y1,y2, …, y n];初值输入p0 = [a0,b0,c0,d0]; 并且建立函数y = a e - bx+ c e –dx的M-文件(Fun.m)。若定义p1 = a, p2 = b, p3 = c, p4 = d , 则输出p = [p1, p2, p3, p4]。

引例求解:

t=[1:16]; %数据输入

y=[4 6.4 8 8.4 9.28 9.5 9.7 9.86 10 10.2 10.32 10.42 10.5 10.55 10.58 10.6];

plot(t,y,'o') %画散点图

p=polyfit(t,y,2) (二次多项式拟合)

计算结果:

p = -0.0445 1.0711 4.3252 %二次多项式的系数

从而得到某化合物的浓度y与时间t的拟合函数:

y = 4.3252+1.0711t –0.0445t2

对函数的精度如何检测呢?仍然以图形来检测,将散点与拟合曲线画在一个画面上。参见图2。

xi=linspace(0,16,160);

yi=polyval(p,xi);

plot(x,y,'o',xi,yi)

由此看出上述曲线拟合是比较吻合的。

图2 浓度y的拟合曲线与实测数据(o)的比较

在MATLAB的NAG Foundation Toolbox中也有一些曲面拟合函数,如e02daf,e02cf,e02def可分别求出矩形网格点数据、散点数据的最小平方误差双三次样条曲面拟合,e02def等可求出曲面拟合的函数值。

曲线拟合的数值计算方法实验

曲线拟合的数值计算方法实验 【摘要】实际工作中,变量间未必都有线性关系,如服药后血药浓度与时间的关系;疾病疗效与疗程长短的关系;毒物剂量与致死率的关系等常呈曲线关系。曲线拟合(curve fitting)是指选择适当的曲线类型来拟合观测数据,并用拟合的曲线方程分析两变量间的关系。曲线直线化是曲线拟合的重要手段之一。对于某些非线性的资料可以通过简单的变量变换使之直线化,这样就可以按最小二乘法原理求出变换后变量的直线方程,在实际工作中常利用此直线方程绘制资料的标准工作曲线,同时根据需要可将此直线方程还原为曲线方程,实现对资料的曲线拟合。常用的曲线拟合有最小二乘法拟合、幂函数拟合、对数函数拟合、线性插值、三次样条插值、端点约束。 关键词曲线拟合、最小二乘法拟合、幂函数拟合、对数函数拟合、线性插值、三次样条插值、端点约束 一、实验目的 1.掌握曲线拟合方式及其常用函数指数函数、幂函数、对数函数的拟合。 2.掌握最小二乘法、线性插值、三次样条插值、端点约束等。 3.掌握实现曲线拟合的编程技巧。 二、实验原理 1.曲线拟合 曲线拟合是平面上离散点组所表示的坐标之间的函数关系的一种数据处理方法。用解析表达式逼近离散数据的一种方法。在科学实验或社会活动中,通过 实验或观测得到量x与y的一组数据对(X i ,Y i )(i=1,2,...m),其中各X i 是彼此不同的。人们希望用一类与数据的背景材料规律相适应的解析表达式,y=f(x,c)来反映量x与y之间的依赖关系,即在一定意义下“最佳”地逼近或 拟合已知数据。f(x,c)常称作拟合模型,式中c=(c 1,c 2 ,…c n )是一些待定参 数。当c在f中线性出现时,称为线性模型,否则称为非线性模型。有许多衡量拟合优度的标准,最常用的一种做法是选择参数c使得拟合模型与实际观测值在

MATLAB中如何直接曲线拟合

MATLAB中如何直接曲线拟合,而不使用cftool的GUI 界面 我们知道在MATLAB中有个很方便的曲线拟合工具:cftool 最基本的使用方法如下,假设我们需要拟合的点集存放在两个向量X和Y中,分别储存着各离散点的横坐标和纵坐标,则在MATLAB中直接键入命令 cftool(X,Y) 就会弹出Curve Fitting Tool的GUI界面,点击界面上的fitting即可开始曲线拟合。 MATLAB提供了各种曲线拟合方法,例如:Exponential, Fourier, Gaussing, Interpolant, Polynomial, Power, Rational, Smoothing Spline, Sum of Functions, Weibull等,当然,也可以使用 Custom Equations. cftool不仅可以绘制拟合后的曲线、给出拟合参数,还能给出拟合好坏的评价 参数(Goodness of fit)如SSE, R-square, RMSE等数据,非常好用。但是如果我们已经确定了拟合的方法,只需要对数据进行计算,那么这种GUI的操作方式就不太适合了,比如在m文件中就不方便直接调用cftool。 MATLAB已经给出了解决办法,可以在cftool中根据情况生成特定的m文件,让我们直接进行特定的曲线拟合并给出参数。具体方法在帮助文件的如下文档中" \ Curve Fitting Toolbox \ Generating M-files From Curve Fitting Tool " ,以下简单举例说明: 以双色球从第125期到第145期蓝球为Y值: Y=[12 15 4 1 7 11 5 7 1 6 16 1 1 14 2 12 9 13 10 12 11]; X=1:1:21; cftool(X,Y); 点击Fitting选择最常用的多项式拟合(Polynomial),选择3次多项式拟合(cubic),然后就会出现如下拟合图形: 然后在Curve Fitting Tool窗口中点击 " \ File \ Generate M-file " 即可生成能直接曲线拟合的m函数文件,其中使用的拟合方法就是刚才使用的三次多项式拟合,文件中这条语句证明了这一点: ft_ = fittype('poly3'); 保存该m文件(默认叫做createFit.m),调用方法和通常的m文件一样,使用不同的X和Y值就能拟合出不同的曲线。但是,这种调用方法只能看到一个拟合出的图形窗口,拟合参数以及Goodness of fit参数都看不到了,因此需要在刚才的m文件中稍作修改。 找到这句话: cf_ = fit(X(ok_),Y(ok_),ft_); 修改为: [cf_,gof] = fit(X(ok_),Y(ok_),ft_); 然后将函数声明 function createFit(X,Y) 修改为 function [cf_,gof] = createFit(X,Y) ,这样我们再调用试试看: Y=[12 15 4 1 7 11 5 7 1 6 16 1 1 14 2 12 9 13 10 12 11]; X=1:1:21;

如何用EXCEL做数据线性拟合和回归分析

如何用Excel做数据线性拟合和回归分析 我们已经知道在Excel自带的数据库中已有线性拟合工具,但是它还稍显单薄,今天我们来尝试使用较为专业的拟合工具来对此类数据进行处理。 在数据分析中,对于成对成组数据的拟合是经常遇到的,涉及到的任务有线性描述,趋势预测和残差分析等等。很多专业读者遇见此类问题时往往寻求专业软件,比如在化工中经常用到的Origin和数学中常见的MATLAB等等。它们虽很专业,但其实使用Excel 就完全够用了。我们已经知道在Excel自带的数据库中已有线性拟合工具,但是它还稍显单薄,今天我们来尝试使用较为专业的拟合工具来对此类数据进行处理。 注:本功能需要使用Excel扩展功能,如果您的Excel尚未安装数据分析,请依次选择“工具”-“加载宏”,在安装光盘支持下加载“分析数据库”。加载成功后,可以在“工具”下拉菜单中看到“数据分析”选项 实例某溶液浓度正比对应于色谱仪器中的峰面积,现欲建立不同浓度下对应峰面积的标准曲线以供测试未知样品的实际浓度。已知8组对应数据,建立标准曲线,并且对此曲线进行评价,给出残差等分析数据。 这是一个很典型的线性拟合问题,手工计算就是采用最小二乘法求出拟合直线的待定参数,同时可以得出R的值,也就是相关系数的大小。在Excel中,可以采用先绘图再添加趋势线的方法完成前两步的要求。 选择成对的数据列,将它们使用“X、Y散点图”制成散点图。

在数据点上单击右键,选择“添加趋势线”-“线性”,并在选项标签中要求给出公式和相关系数等,可以得到拟合的直线。 拟合的直线是y=15620x+6606.1,R2的值为0.9994。 因为R2>0.99,所以这是一个线性特征非常明显的实验模型,即说明拟合直线能够以大于99.99%地解释、涵盖了实测数据,具有很好的一般性,可以作为标准工作曲线用于其他未知浓度溶液的测量。 为了进一步使用更多的指标来描述这一个模型,我们使用数据分析中的“回归”工具来详细分析这组数据。 在选项卡中显然详细多了,注意选择X、Y对应的数据列。“常数为零”就是指明该模型是严格的正比例模型,本例确实是这样,因为在浓度为零时相应峰面积肯定为零。先前得出的回归方程虽然拟合程度相当高,但是在x=0时,仍然有对应的数值,这显然是一个可笑的结论。所以我们选择“常数为零”。 “回归”工具为我们提供了三张图,分别是残差图、线性拟合图和正态概率图。重点来看残差图和线性拟合图。 在线性拟合图中可以看到,不但有根据要求生成的数据点,而且还有经过拟和处理的预测数据点,拟合直线的参数会在数据表格中详细显示。本实例旨在提供更多信息以起到抛砖引玉的作用,由于涉及到过多的专业术语,请各位读者根据实际,在具体使用

曲线拟合的方法及过程

一、课程设计题目: 对于函数 x e x x f --=)( 从00=x 开始,取步长1.0=h 的20个数据点,求五次最小二乘拟合多项式 5522105)()()()(x x a x x a x x a a x P -++-+-+= 其中 ∑ ===19 95.020 i i x x 二、原理分析 (1)最小二乘法的提法 当数据量大且由实验提供时,不宜要求近似曲线)(x y φ=严格地经过所有数据点),(i i y x ,亦即不应要求拟合函数)(x ?在i x 处的偏差(又称残差) i i i y x -=)(φδ (i=1,2,…,m) 都严格的等于零,但是,为了使近似曲线能尽量反应所给数据点的变化趋势,要求偏差i δ适当的小还是必要的,达到这一目标的途径很多,例如,可以通过使最大偏差i δmax 最小来实现,也可以通过使偏差绝对值之和∑i i δ最小来实 现……,考虑到计算方便等因素,通常用使得偏差平方和∑i i 2δ最小(成为最小 二乘原则)来实现。 按最小二乘原则选择近似函数的方法称为最小二乘法。 用最小二乘法求近似函数的问题可以归结为:对于给定数据),(i i y x (i=1,2,…,m),要求在某个函数类Φ中寻求一个函数)(x * ?,使 [][]2 1 )(2 1 * )()(mi n ∑∑=Φ∈=-=-m i i i x m i i i y x y x ??? (1-1) 其中)(x ?为函数类Φ中任意函数。 (1)确定函数类Φ,即确定)(x ?的形式。这不是一个单纯的数学问题,还与其他领域的一些专业知识有关。在数学上,通常的做法是将数据点),(i i y x 描

数据拟合方法

第二讲 数据拟合方法 在实验中,实验和戡测常常会产生大量的数据。为了解释这些数据或者根据这些数据做出预测、判断,给决策者提供重要的依据。需要对测量数据进行拟合,寻找一个反映数据变化规律的函数。数据拟合方法与数据插值方法不同,它所处理的数据量大而且不能保证每一个数据没有误差,所以要求一个函数严格通过每一个数据点是不合理的。数据拟合方法求拟合函数,插值方法求插值函数。这两类函数最大的不同之处是,对拟合函数不要求它通过所给的数据点,而插值函数则必须通过每一个数据点。例如,在某化学反应中,测得生成物的质量浓度y (10 –3 g/cm 3)与时间t (min )的关系如表所示 显然,连续函数关系 y (t )是客观存在的。但 是通过表中的数据不可能确切地得到这种关系。何况,由于仪器和环境的影响,测量数据难免有误差。因此只能寻求一个近拟表达式 y = (t )

寻求合理的近拟表达式,以反映数据变化的规律,这种方法就是数据拟合方法。数据拟合需要解决两个问题:第一,选择什么类型的函数)(t ?作为拟合函数(数学模型);第二,对于选定的拟合函数,如何确定拟合函数中的参数。 数学模型应建立在合理假设的基础上,假设的合理性首先体现在选择某种类型的拟合函数使之符合数据变化的趋势(总体的变化规律)。拟合函数的选择比较灵活,可以选择线性函数、多项式函数、指数函数、三角函数或其它函数,这应根据数据分布的趋势作出选择。为了问题叙述的方 假设拟合函数是线性函数,即拟合函数的图形是一条平面上的直线。而表中的数据点未能精确地落在一条直线上的原因是实验数据的误差。则下一步是确定函数 y= a + b x 中系数a 和b 各等于多少从几何背景来考虑,就是要以a 和b 作为待定系数,确定一条平面直线使得表中数据所对应的10个点尽可能地靠近这条直线。一般来讲,数据点将不会全部落在这条直线上,如果第k 个点的数据恰好落在这条直线上,则这个点的坐标满足直线的方程,即 a + b x k = y k 如果这个点不在直线上,则它的坐标不满足直线方程,有一个绝对值为 k k y bx a -+的差异(残差) 。于是全部点处的总误差是 ∑=-+10 1 k k k y bx a 这是关于a 和b 的一个二元函数,合理的做法是选取a 和b ,使得这个函 数取极小值。但是在实际求解问题时为了操作上的方便,常常是求a 和b 使得函数 ∑=-+=10 12)(),(k k k y bx a b a F 达到极小。为了求该函数的极小值点,令 0=??a F ,0=??b F , 得

matlab曲线拟合实例

曲线拟合 求二次拟合多项式 解:(一)最小二乘法MA TLAB编程: function p=least_squar(x,y,n,w) if nargin<4 w=1 end if nargin<3 n=1 end m=length(y); X=ones(1,m) if m<=n error end for i=1:n X=[(x.^i);X] end A=X*diag(w)*X';b=X*(w.*y)';p=(A\b)' 输入: x=[1 3 5 6 7 8 9 10]; y=[10 5 2 1 1 2 3 4] p=least_squar(x,y,2) 运行得: p = 0.2763 -3.6800 13.4320 故所求多项式为:s(x)=13.432-3.68x+0.27632x (二)正交多项式拟合MATLAB编程: function p=least_squar2(x,y,n,w) if nargin<4 w=1; end if nargin<3 n=1; end m=length(x); X=ones(1,m); if m<=n error end for i=1:n X=[x.^i;X]; end A=zeros(1,n+1);

A(1,n+1)=1; a=zeros(1,n+1); z=zeros(1,n+1); for i=1:n phi=A(i,:)*X;t=sum(w.*phi.*phi); b=-sum(w.*phi.*x.*phi)/t a(i)=sum(w.*y.*phi)/t; if i==1 c=0;else c=-t/t1; end t1=t for j=1:n z(j)=A(i,j+1); end z(n+1)=0 if i==1 z=z+b*A(i,:); else z=z+b*A(i,:)+c*A(i-1,:); end A=[A;z]; end phi=A(n+1,:)*X;t=sum(w.*phi.*phi); a(n+1)=sum(w.*y.*phi)/t; p=a*A; 输入: x=[1 3 5 6 7 8 9 10]; y=[10 5 2 1 1 2 3 4]; p=least_squar2(x,y,2) 运行得: b = -6.1250 t1 = 8 z = 0 1 0 b = -4.9328 t1 = 64.8750 z = 1.0000 -6.1250 0 p = 0.2763 -3.6800 13.4320 故所求多项式为:s(x)=13.432-3.68x+0.27632x

实验数据与曲线拟合

实验数据与曲线拟合 1. 曲线拟合 1. 曲线拟合的定义 2. 简单线性数据拟合的例子 2. 最小二乘法曲线拟合 1. 最小二乘法原理 2. 高斯消元法求解方程组 3. 最小二乘法解决速度与加速度实验 3. 三次样条曲线拟合 1. 插值函数 2. 样条函数的定义 3. 边界条件 4. 推导三次样条函数 5. 追赶法求解方程组 6. 三次样条曲线拟合算法实现 7. 三次样条曲线拟合的效果 4. 12.1 曲线拟合 5. 12.1.1 曲线拟合的定义 6. 曲线拟合(Curve Fitting)的数学定义是指用连续曲线近似地刻画或比拟平面上一组离散点所表示的坐 标之间的函数关系,是一种用解析表达式逼近离散数据的方法。曲线拟合通俗的说法就是“拉曲线”,也就是将现有数据透过数学方法来代入一条数学方程式的表示方法。科学和工程遇到的很多问题,往往只能通过诸如采样、实验等方法获得若干离散的数据,根据这些数据,如果能够找到一个连续的函数(也就是曲线)或者更加密集的离散方程,使得实验数据与方程的曲线能够在最大程度上近似吻合,就可以根据曲线方程对数据进行数学计算,对实验结果进行理论分析,甚至对某些不具备测量条件的位置的结果进行估算。 7. 12.1.2 简单线性数据拟合的例子 8. 回想一下中学物理课的“速度与加速度”实验:假设某物体正在做加速运动,加速度未知,某实验人员 从时间t0 = 3秒时刻开始,以1秒时间间隔对这个物体连续进行了12次测速,得到一组速度和时间的离散数据,请根据实验结果推算该物体的加速度。 9. 表 12 – 1 物体速度和时间的测量关系表 10. 在选择了合适的坐标刻度之后,我们就可以在坐标纸上画出这些点。如图12–1所示,排除偏差明显 偏大的测量值后,可以看出测量结果呈现典型的线性特征。沿着该线性特征画一条直线,使尽量多的测量点能够位于直线上,或与直线的偏差尽量小,这条直线就是我们根据测量结果拟合的速度与时间的函数关系。最后在坐标纸上测量出直线的斜率K,K就是被测物体的加速度,经过测量,我们实验测到的物体加速度值是1.48米/秒2。

Matlab数据拟合程序

课程设计名称:设计二:数据拟合指导教师:张莉 课程设计时数: 6 课程设计设备:安装了Matlab、C++软件的计算机 课程设计日期:实验地点:第五教学楼北902 课程设计目的: 1. 了解最小二乘拟合的原理,掌握用MA TLAB作最小二乘拟合的方法; 2. 学会利用曲线拟合的方法建立数学模型。 课程设计准备: 1.在开始本实验之前,请回顾相关内容; 2.需要一台准备安装Windows XP Professional操作系统和装有数学软件的计算机。 课程设计内容及要求 要求:设计过程必须包括问题的简要叙述、问题分析、实验程序及注释、实验数据及结果分析和实验结论几个主要部分。 1. 用切削机床进行金属品加工时,为了适当地调整机床,需要测定刀具的磨损速度,在一定的时间测量刀具的厚度,得数据如表所示,请选用合适的函数来描述切削时间与刀具厚度的关系。 首先对数据进行分析,画出离散的点,观察点近似的曲线: t=0:1:15; y=[30.0 29.1 29.8 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]; plot(t,y,'r*')

判断出曲线是近似直线函数,所以对数据进行测试可以做三次函数拟合: t=0:1:15; y=[30.0 29.1 29.8 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]; %plot(t,y,'r*') A=polyfit(t,y,3) z=polyval(A,t); plot(t,y,'r*',t,z,'b') 051015 拟合结果: A = -0.3099 29.5676 拟合函数为:y=-0.3099t+29.5676

计算方法_数据拟合回顾

第三章数据拟合回顾 keywords 最小二乘法 转化的思想

使误差的平方和为最小: 按最小二乘法, 作直线拟合应使 ∑=+-=N i i i x y b a b a Q 1 2 )]([),(为最小,极小值点一阶导数为0:0,0=??=??b Q a Q 最小二乘法(least squares method ) 2min, ()i i e e y a bx i i i =∑=-+2i i i i i i aN b x y a x b x x y ?+=??+=??∑∑∑∑∑得正规方程组: 2i i i i i i i i i i i i a b x y a x b x x y ωωωωωω?+=??+=??∑∑∑∑∑∑加权正规方程组: IF Y*=a0+a1X1+a2X2+a3X3+……+akXk (n>k ),THEN?

最小二乘法的几何意义(p51) y=a0x0+a1x1+a2x2+a3x3+……+akxk(n>k)其中x0=(1,1,1,.....1),x i=(xi1,xi2,xi3,.....,xin),i=1,2,3.....n

数据拟合方法一览表 线性关系直线拟合非线性关系曲线拟合 单变量直线拟合多 变 量 直 线 拟 合 多项式拟合非多项式拟合 变量 替换 转换 为直 线拟 合 多项 式拟 合的 最小 二乘 法 变量 替换 为多 变量 直线 拟合 方程 两边 取对 数转 换为 直线 拟合 正 交 多 项 式 拟 合 Y*=a0+a1X1+a2X2+a3X3+……+akXk(n>k)本

thank u

MATLAB中简单的数据拟合方法与应用实例①

MATLAB中简单的数据拟合方法与应用实例 仅供努力学习matlab的同学们参考参考,查阅了M多资料,总结了以下方法 按步骤做能够基本学会matlab曲线拟合的 1.1数据拟合方法 1.1.1多项式拟合 1.多项式拟合命令 polyfit(X,Y,N):多项式拟合,返回降幂排列的多项式系数。 Polyval(P,xi):计算多项式的值。 其中,X,Y是数据点的值;N是拟合的最高次幂;P是返回的多项式系数;xi是要求的横坐标 拟合命令如下: x=[1 2 3 4 5 6 7 8 9]; y=[9 7 6 3 -1 2 5 7 20]; P=polyfit(x,y,3); xi=0:.2:10; yi=polyval(P,xi); plot(xi,yi,x,y,'r*'); 拟合曲线与原始数据如图1-1 图1-1 2图形窗口的多项式拟合 1)先画出数据点如图1-2 x=[1 2 3 4 5 6 7 8 9]; y=[9 7 6 3 -1 2 5 7 20]; plot(x,y,'r*');

图1-2 2)在图形窗口单击Tools—Basic Fitting,如图1-3勾选. 图1-3 图1-3右方分别是线性、二阶、三阶对数据进行多项式拟合。下面的柱状图显示残差,可以看出,三阶多项式的拟合效果是最好的。 1.1.2指定函数拟合 已知M组数据点和对应的函数形式f t (t)=acos(kt)e X Y 编写M文件:

syms t x=[0;0.4;1.2;2;2.8;3.6;4.4;5.2;6;7.2;8;9.2;10.4;11.6;12.4;13.6;14.4;15]; y=[1;0.85;0.29;-0.27;-0.53;-0.4;-0.12;0.17;0.28;0.15;-0.03;-0.15;-0.071;0.059;0.08;0.032;-0.015;-0.02]; f=fittype('a*cos(k*t)*exp(w*t)','independent','t','coefficients',{'a','k','w'}); cfun=fit(x,y,f) xi=0:.1:20; yi=cfun(xi); plot(x,y,'r*',xi,yi,'b-'); 图1-4 运行程序,在命令窗口可达到以下运行结果,图像如图1-4 Warning: Start point not provided, choosing random start point. > In fit>handlewarn at 715 In fit at 315 In Untitled2 at 5 cfun = General model: cfun(t) = a*cos(k*t)*exp(w*t) Coefficients (with 95% confidence bounds): a = 0.9987 ( 0.9835, 1.014) k = 1.001 (0.9958, 1.006) w = -0.2066 (-0.2131, -0.2002) 从结果可以看出,拟合的曲线为: (0.2066) ()0.9987cos(1.001)*t f t t e- =。拟 合曲线给出了数据大致趋势,并给出了各参数的置信区间。

数据拟合法

第四章 数据拟合法 在科学实验和生产实践中,有许多函数关系仅能用由实验或观测得到的一组数据表 (,)(0,1, ,)i i x y i m =来表示,例如某种物质的化学反应,能够测得生成物的浓度与时间关 系的一组数据表.而它们的解析表达式)(t f y =是不知道的。但是为了要知道化学反应速度,必须要利用已知数据给出它的近似表达式,有了近似表达式,通过求导数便可知道化学反应速度。可见已知一组数据求它的近似表达式是非常有意义的.如何求它的近似表达式呢?第二章介绍的插值方法是一种有效的方法.但是由于数据(,)(0,1, ,)i i x y i m =是由测量或观测得 到的,它本身就有误差,作插值时一定要通过型值点),(i i y x 似乎没有必要;其次当m 很大时,采用插值(特别是多项式插值)很不理想(会出现龙格现象),非多项式插值计算又很复杂。为此,本章介绍一种“整体”近似的方法,即对于给定的数据(,),0,1,,i i x y i n =,选一个 线性无关函数系)(,),(),(10x x x n ??? ,以它们为基底构成的线性空间为 {}0span (), ,()n x x ??=Φ. 在此空间内选择函数 ()()n j j j x x ?α?==∑ 其中(0,1,,)j j n α=为待定常数。要求它逼近真实函数)(x f y =的误差尽可能小,这就是 数据拟合问题. §1 最小二乘法 一、最小二乘法 设有数据(,),0,1, ,i i x y i m =,令 ()(),0,1, ,n i i i i j j i j r y x y x i m ?α?==-=-=∑. 并称T m r r r r ),,,(10 =为残向量,用)(x ?去拟合)(x f y =的好坏问题变成残量的大小问题。 判断残量大小的标准,常用的有下面几种: (1) 确定参数(0,1, ,)j j n α=,使残量绝对值中最大的一个达到最小,即 i m i r ≤≤0max 为最小。 (2) 确定参数(0,1, ,)j j n α=,使残量绝对值之和达到最小,即 ∑=m i i r 为最小。 (3) 确定参数(0,1, ,)j j n α=,使残量的平方和达到最小,即

测量数据误差处理与线性拟合

实验室要求 1、请同学们不要带早餐进实验室吃。 2、请同学们不要穿拖鞋进实验室。 3、请大家离开实验室前整理好桌面、面包板,并关闭相关仪器。 实验要求 1、总共3个局部实验8学时。 2、迟到10分钟就取消当次实验资格,重选其它时间当次实验, 错过不待。 3、每次做实验之前要求写预习报告,没有预习报告不给做实验。 4、实验报告可以手抄,也可以打印,但是打印版一定得有实验电 路的仿真图和结果(仿真软件不限),鼓励打印版,杜绝相互抄袭,一旦查出,取消本课程考试资格。 5、本实验占总成绩的20%,不单独考试。 实验成绩评定 实验课每一次的成绩由以下几个部分组成: 1、考勤情况 2、实验报告(预习报告和最终报告) 3、课堂纪律和回答问题情况 4、动手能力 5、安全情况和环境情况

实验一 测量数据处理与线性拟合 一、 实验目的 1、通过实验进一步熟悉在测量中数据处理的重要性; 2、掌握最小二乘法的原理; 3、熟悉利用最小二乘法进行数据处理及分析方法。 二、 实验内容 1.熟悉与掌握最小二乘法基本原理; 2.搭建测试电路; 3.测量两个测试点的电压值; 4. 求出按拟合线性方程并划出相应曲线。 三、 基本原理 1 最小二乘法基本原理 在许多实际问题中,往往需要根据实验测得两个变量x 与y 的若干组实验数据(x 1,y 1),…(x n ,y n )来建立这两个变量的函数关系的近似式,这样得到的函数近似式称为经验公式。 通过对实验数据的处理,能够判断x 、y 大体上满足某种类型的函数关系y =f (x ,a 1,a 2,…,a s ),但是其中s 个参数a 1,a 2,…,a s 的值需要通过n 组实验数据来确定,通常可以这样来确定参数:选择参数a 1,a 2,…,a s ,使得f (x ,a 1,a 2,…,a s )在x 1,x 2 …x n 处的函数值与实验数据 y 1,y 2 …y n 的偏差的平方和为最小,就是使 21211 (,,)[(,,)]n s i s i i d a a a f x a a y ==-∑ (1) 为最小,这种方法称为最小二乘法。当1(,,)i s f x a a 是s 个参数的线性函数时,利用求极值与解线性方程组的方法可以解决。 例如,若x 、y 大体上满足线性关系即(,,)f x a b ax b =+,则 21 (,)[]n i i i d a b ax b y ==+-∑ (2) 由多元极值的求法有

第六章 MATLAB解曲线拟合问题

第六章MATLAB解曲线拟合问题 曲线拟合就是计算出两组数据之间的一种函数关系,由此可描绘其变化曲线及估计非采集数据对应的变量信息。 曲线拟合有多种方式,下面是一元函数采用最小二乘法对给定数据进行多项式曲线拟合,最后给出拟合的多项式系数。 §1 线性拟合 一、数学模型 y=Xβ+ε β是p?1的参数向量;ε是服从标准正态分布的随机干扰的n?1的向量;y为n?1的向量;X为n?p矩阵。 二、求解线性拟合函数regress 调用格式:b=regress(y,X) [b,bint,r,rint,stats]= regress(y,X) [b,bint,r,rint,stats]= regress(y,X,alpha) 说明:b=regress(y,X)返回X处y的最小二乘拟合值。bint返回β的95%的置信区间。r 中为形状残差,rint中返回每一个残差的95%置信区间。Stats向量包含R2统计量、回归的F 值和p值。 三、举例 例1:设y的值为给定的x的线性函数加服从标准正态分布的随机干扰值得到。即y=10x+ε;求线性拟合方程系数。 程序:编写M文件mainG.m如下: x=[ones(10,1) (1:10) '] %ones(m,n)产生一个m行n列的元素全为1的矩阵 %(1:10)产生一个10行1列的元素值从1~10的矩阵 % [A B] 将矩阵A和B拼接成新矩阵或者写成[A;B] y=x*[10;1]+normrnd(0,0.1,10,1) % R = normrnd(MU,SIGMA,m,n) 依据参数MU、SIGMA 生成一个随机数,m和n是R的行数和列数. [b,bint]=regress(y,x,0.05) 结果:x = 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10

MATLAB拟合函数

在Matlab 6.5以上的环境下,在左下方有一个"Start"按钮,如同Windows的开始菜单,点开它,在目录"Toolboxes"下有一个"Curve Fitting",点开"Curve Fitting Tool",出现数据拟合工具界面,基本上所有的数据拟合和回归分析都可以在这里进行。 下面给你简单介绍一下它的使用方法。 首先在Matlab的命令行输入两个向量,一个向量是你要的x坐标的各个数据,另外一个是你要的y坐标的各个数据。输入以后假定叫x向量与y向量,可以在workspace里面看见这两个向量,要确保这两个向量的元素数一致,如果不一致的话是不能在工具箱里面进行拟合的。 例如在命令行里输入下列数据: x=(0:0.02:0.98)';二胡与施工的计划的风光好舒服很多国家法规和积分高科技 y=sin(4*pi*x+rand(size(x))); 此时x-y之间的函数近似的为正弦关系,频率为2,但是存在一个误差项。 可以通过作图看出它们的大体分布: plot(x,y,'*','markersize',2); 打开曲线拟合共工具界面,点击最左边的"Data..."按钮,出现一个Data对话框,在Data Sets 页面里,在X Data选项中选取x向量,Y Data选项中选取y向量,如果两个向量的元素数相同,那么Create data set按钮就激活了,此时点击它,生成一个数据组,显示在下方Data Sets列表框中。关闭Data对话框。此时Curve Fitting Tool窗口中显示出这一数据组的散点分布图。 点击Fitting...按钮,出现Fitting对话框,Fitting对话框分为两部分,上面为Fit Editor,下面为Table of Fits,有时候窗口界面比较小,Fit Editor部分会被收起来,只要把Table of Fits 上方的横条往下拉就可以看见Fit Editor。在Fit Editor里面点击New Fit按钮,此时其下方的各个选框被激活,在Data Set选框中选中刚才建立的x-y数据组,然后在Type of fit 选框中选取拟合或回归类型,各个类型的拟合或回归相应的分别是: Custom Equations 用户自定义函数 Expotential e指数函数 Fourier 傅立叶函数,含有三角函数 Gaussian 正态分布函数,高斯函数 Interpolant 插值函数,含有线性函数,移动平均等类型的拟合 Polynomial 多项式函数 Power 幂函数 Rational 有理函数(不太清楚,没有怎么用过) Smooth Spline ??(光滑插值或者光滑拟合,不太清楚) Sum of sin functions正弦函数类 Weibull 威布尔函数(没用过) 不好意思,没有学过数理统计,所以很多东西都是用了才知道,翻译也就不太准确。不过在Type of fit选框下方有一个列表框,基本上各个函数类里的函数都写成解析式列在下方以供选择,所以找合适的函数还是比较容易的。

数值计算_第6章 曲线拟合的最小二乘法

第6章曲线拟合的最小二乘法 6.1 拟合曲线 通过观察或测量得到一组离散数据序列,当所得数据比较准确时,可构造插值函数逼近客观存在的函数,构造的原则是要求插值函数通过这些数据点,即。此时,序列与 是相等的。 如果数据序列,含有不可避免的误差(或称“噪音”),如图6.1 所示;如果数据序列无法同时满足某特定函数,如图6.2所示,那么,只能要求所做逼近函数最优地靠近样点,即向量与的误差或距离最小。按与之间误差最小原则作为“最优”标准构造的逼近函数,称为拟合函数。 图6.1 含有“噪声”的数据 图6.2 一条直线公路与多个景点 插值和拟合是构造逼近函数的两种方法。插值的目标是要插值函数尽量靠近离散点;拟合的目标是要离散点尽量靠近拟合函数。 向量与之间的误差或距离有各种不同的定义方法。例如: 用各点误差绝对值的和表示: 用各点误差按模的最大值表示: 用各点误差的平方和表示: 或(6.1)

其中称为均方误差,由于计算均方误差的最小值的方法容易实现而被广泛采用。按 均方误差达到极小构造拟合曲线的方法称为最小二乘法。本章主要讲述用最小二乘法构造拟合曲线的方法。 在运筹学、统计学、逼近论和控制论中,最小二乘法都是很重要的求解方法。例如,它是统计学中估计回归参数的最基本方法。 关于最小二乘法的发明权,在数学史的研究中尚未定论。有材料表明高斯和勒让德分别独立地提出这种方法。勒让德是在1805年第一次公开发表关于最小二乘法的论文,这时高斯指出,他早在1795年之前就使用了这种方法。但数学史研究者只找到了高斯约在1803年之前使用了这种方法的证据。 在实际问题中,怎样由测量的数据设计和确定“最贴近”的拟合曲线?关键在选择适当的拟合曲线类型,有时根据专业知识和工作经验即可确定拟合曲线类型;在对拟合曲线一无所知的情况下,不妨先绘制数据的粗略图形,或许从中观测出拟合曲线的类型;更一般地,对数据进行多种曲线类型的拟合,并计算均方误差,用数学实验的方法找出在最小二乘法意义下的误差最小的拟合函数。 例如,某风景区要在已有的景点之间修一条规格较高的主干路,景点与主干路之间由各具特色的支路联接。设景点的坐标为点列;设主干路为一条直线 ,即拟合函数是一条直线。通过计算均方误差最小值而确定直线方程(见图6.2)。 6.2线性拟合和二次拟合函数 线性拟合 给定一组数据,做拟合直线,均方误差为 (6.2) 是二元函数,的极小值要满足 整理得到拟合曲线满足的方程:

曲线拟合方法浅析

曲线拟合方法概述 工业设计张静1014201056 引言:在现代图形造型技术中,曲线拟合是一个重要的部分,是曲面拟合的基础。现着重对最小二乘法、移动最小二乘法、NURBS 三次曲线拟合法和基于RBF 曲线拟合法进行 比较,论述这几种方法的原理及其算法,基于实例分析了上述几种拟合方法的特性,以分析拟合方法的适用场合,从而为图形造型中曲线拟合的方法选用作出更好的选择。 1 曲线拟合的概念 在许多对实验数据处理的问题中,经常需要寻找自变量和对应因变量之间的函数关系,有的变量关系可以根据问题的物理背景,通过理论推导的方法加以求解,得到相应关系式。但绝大多数的函数关系却很复杂,不容易通过理论推导得到相关的表达式,在这种情况下,就需要采用曲线拟合的方法来求解变量之间的函数关系式。 曲线拟合(Curve Fitting) ,是用连续曲线近似地刻画或比拟平面上离散点组所表示的坐标之问的函数关系的一种数据处理方法。在科学实验或社会活动中,通过实验或观测得到量x与y的一组数据对(X i,y i), i=1 , 2, 3…,m,其中各X i是彼此不同的。人们希望用一类与数据的规律相吻合的解析表达式y=f(x)来反映量x与y之间的依赖关系。即在一定意义下“最佳”地逼近或拟合已知数据。f(x)称作拟合函数,似的图 像称作拟合曲线。 2 曲线拟合的方法 2.1 最小二乘法 最小二乘法通过最小化误差的平方和寻找数据的最佳函数匹配,是进行曲线拟合的一种早期使用的方法一般最小二乘法的拟合函数是一元二次,可一元多次,也可多元多次。该方法是通过求出数据点到拟合函数的距离和 最小的拟合函数进行拟合的方法令f(x)=ax 2+bx+c ,计算数据点到该函数 所表示的曲线的距离和最小即:

数学建模使用MATLAB进行数据拟合

1.线性最小二乘法 x=[19 25 31 38 44]'; y=[19.0 32.3 49.0 73.3 97.8]'; r=[ones(5,1),x.^2]; ab=r\y % if AB=C then B=A\C x0=19:0.1:44; y0=ab(1)+ab(2)*x0.^2; plot(x,y,'o',x0,y0,'r') 运行结果: 2.多项式拟合方法 x0=[1990 1991 1992 1993 1994 1995 1996]; y0=[70 122 144 152 174 196 202]; a=polyfit(x0,y0,1) y97=polyval(a,1997) x1=1990:0.1:1997; y1=a(1)*x1+a(2);

plot(x1,y1) hold on plot(x0,y0,'*') plot(1997,y97,'o') 3.最小二乘优化 3.1 lsqlin函数 例四: x=[19 25 31 38 44]'; y=[19.0 32.3 49.0 73.3 97.8]'; r=[ones(5,1),x.^2]; ab=lsqlin(r,y) x0=19:0.1:44; y0=ab(1)+ab(2)*x0.^2; plot(x,y,'o',x0,y0,'r') 3.2lsqcurvefit函数

(1)定义函数 function f=fun1(x,tdata); f=x(1)+x(2)*exp(-0.02*x(3)*tdata); %其中x(1)=a,x(2)=b,x(3)=k (2) td=100:100:1000; cd=[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(@fun1,x0,td,cd) %x(1)=a,x(2)=b,x(3)=k t=100:10:1000; c=x(1)+x(2)*exp(-0.02*x(3)*t); plot(t,c) hold on plot(td,cd,'*')

数据拟合方法研究

数据拟合方法研究 中文摘要 在我们实际的实验和勘探中,都会产生大量的数据。为了解释这些数据或者根据这些数据做出预测、判断,给决策者提供重要的依据。需要对测量数据进行拟合,寻找一个反映数据变化规律的函数。 本文介绍了几种常用的数据拟合方法,线性拟合、二次函数拟合、数据的n次多项式拟合等。并着重对曲线拟合进行了研究,介绍了线性与非线性模型的曲线拟合方法,最小二乘法、牛顿迭代法等。在传统的曲线拟合基础上,为了提高曲线拟合精度,本文还研究了多项式的摆动问题,从实践的角度分析了产生这些摆动及偏差的因素和特点,总结了在实践中减小这些偏差的处理方法。采用最小二乘法使变量转换后所得新变量离均差平方和最小,并不一定能使原响应变量的离均差平方和最小,所以其模型的拟合精度仍有提高的空间。本文以残数法与最小二乘法相结合,采用非线性最小二乘法来得到拟合效果更好的曲线模型。随着计算机技术的发展,实验数据处理越来越方便。但也提出了新的课题,就是在选择数据处理方法时应该比以往更为慎重。因为稍有不慎,就会非常方便地根据正确的实验数据得出不确切的乃至错误的结论。所以提高拟合的准确度是非常有必要的 关键词:数据拟合、最小二乘法、曲线拟合、多项式摆动、残数法

Data Fitting Method Abstract In our experiments and exploration, it will produce large amounts of data. In order to explain these data to make predictions based on these data to determine, provide an important basis for policy makers .Need to fit the measured data to find a function to reflect data changes in the law.This article describes several commonly used data fitting methods, and focused on a nonlinear curve fitting of the model. This paper introduces some commonly used data fitting method, linear fitting, secondary function fitting, data n times polynomial fitting etc. T And focuses on the curve fitting, introduced the linear and nonlinear model of curve fitting method, the least square method, Newton iterative method, etc. In the traditional curve fitting basis, in order to improve the curve fitting precision, this paper also studies the polynomial swing, from the perspective of the practice the oscillation and deviation of factors and characteristics, and summarizes the decrease in practice the treatment method of these deviations. The least square method to variable after converting from new variables are the sum of squared residuals minimum, not necessarily make the original response from all the variables of the sum of squared residuals minimum, so the model fitting precision still has room to improve.Based on the number of residual method and least square method, and the combination of nonlinear least square method to get better fitting effect of curve model.With the development of computer technology, the experiment

相关文档
最新文档