实验二 函数逼近与曲线拟合

实验二  函数逼近与曲线拟合
实验二  函数逼近与曲线拟合

计算方法实验报告实验二函数逼近与曲线拟合

班级硕1309

姓名杨婷婷

学号 131411068

实验二 函数逼近与曲线拟合

一、问题的提出

从随机的数据中找出其规律性,给出其近似表达式的问题,在生产实践和科学实验中大量存在,通过利用数据的最小二乘法求得拟合曲线。

在某冶炼过程中,根据统计数据的含碳量和时间的关系,试求含碳量y 与时间t 的拟合曲线。 t(分)

0 5 10 15 20 25 30 35 40 45 50 55 Y (10-4) 0 1.27 2.16 2.86 3.44 3.87 4.15 4.37 4.51 4.58 4.02 4.64

二、实验要求

1、用最小二乘法进行曲线拟合;

2、近似解析表达式为()33221t a t a t a t ++=?;

3、打印出拟合函数()t ?,并打印出()j t ?与()

j t y 的误差,j=1,2,???,12;

4、另外选取一个解析表达式,尝试拟合效果的比较;

5、绘制出曲线拟合图。 三、实验目的与意义

1、掌握曲线拟合的最小二乘法;

2、最小二乘法亦可解超定线代数方程组;

3、探索拟合函数的选择与拟合精度间的关系。

四、结构程序设计

>> x=0:5:55;

>> y=[0,1.27,2.16,2.86,3.44,3.87,4.15,4.37,4.51,4.58,4.02,4.64];

>> plot(x,y,x,y,'o')

>> p3=polyfit(x,y,4); vpa(poly2sym(p3),10)

ans =

-6 4 3 0.0604487179487187 + 0.602564102564116 10 x - 0.0000319178969178983 x

2

- 0.00293227466977462 x + 0.238069314944314

>> x=0:5:55;

>> y=[0,1.27,2.16,2.86,3.44,3.87,4.15,4.37,4.51,4.58,4.02,4.64]; >> a=lsqcurvefit('c8f3',[1;2;2;3],x,y); a'

Local minimum possible.

lsqcurvefit stopped because the size of the current step is less than the default value of the step size tolerance.

ans =

0.2657 -0.0053 0.0000 3.0000

>> a=lsqcurvefit('c8f3',[1;2;3],x,y); a'

Local minimum found.

Optimization completed because the size of the gradient is less than the default value of the function tolerance.

ans =

0.2657 -0.0053 0.0000

五、结果讨论与分析

观察由编写MATLAB程序做出的拟合曲线与逼近函数的图形,可以很清楚地看到近似函数曲线与已知点的相对位置。不像插值法做出的曲线,通过逼近与拟合得到的函数图形没有穿过每一个点,只是在结点间穿梭。但是,这样做出来的曲线从整体看来相较与插值法得到的要更近似。

在用线性最小二乘法作曲线拟合时,采用哪种拟合曲线很是关键。但在作曲线拟合时发现,直接采用例如指数函数、对数函数、幂函数等稍微复杂的函数,计算量会大大增加。通过线性变换化成线性函数后再作拟合,这样得到的近似函数误差会更小。

在实际的生活的运用中,数据通常都不是线性的而是杂乱无章的。如果用线性曲线来描述,会失去很多有价值的信息。改用曲线拟合与函数逼近,能更好地应用于研究实际问题

数据拟合与函数逼近

第十三章 数据拟合与函数逼近 数据拟合与函数逼近涉及到许多内容与方法,从不同角度出发,也有多种叫法。这一章,我们主要通地线性拟合而引出最小乘法这一根本方法。 13.1 数据拟合概念与直线拟合 插值法是一种用简单函数近似代替较复杂函数的方法,它的近似标准是在插值点处的误差为零。但有时,我们不要求具体某些点的误差为零,而是要求考虑整体的误差限制。对了达到这一目的,就需要引入拟合的方法,所以数据拟合与插值相比: 数据拟合--不要求近似 函数过所有的数据点,而要求它反映原函数整体的变化趋势。 插值法--在节点处取函数值。 实际给出的数据,总有观测误差的,而所求的插值函数要通过所有的节点,这样就会保留全部观测误差的影响,如果不是要求近似函数过所有的数据点,而是要求它反映原函数整的变化趋势,那么就可以用数据拟合的方法得到更简单活用的近似函数。 13.1.1 直线拟合 由给定的一组测定的离散数据(,)i i x y (1,2,,i N = ),求自变量x 和因变量y 的近似表达式()y x ?=的方法。影响因变量y 只有一个自变量x 的数据拟合方法就是直线拟合。 直线拟合最常用的近似标准是最小二乘原理,它也是流行的数据处理方法之一。 直线拟合步骤如下: (1) 做出给定数据的散点图(近似一条直线)。 (2) 设拟合函数为: i bx a y +=* (13.1.1) 然后,这里得到的*i y 和i y 可能不相同,记它们的差为: i i i i i bx a y y y --=-=* δ (13.1.2) 称之为误差。在原始数据给定以后,误差只依赖于b a ,的选取,因此,可以把误差的大小作为衡量b a ,的选取是否优良的主要标志。

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

曲线拟合的数值计算方法实验 【摘要】实际工作中,变量间未必都有线性关系,如服药后血药浓度与时间的关系;疾病疗效与疗程长短的关系;毒物剂量与致死率的关系等常呈曲线关系。曲线拟合(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使得拟合模型与实际观测值在

数值分析课件第3章函数逼近与曲线拟合

第三章 函数逼近与曲线拟合 1 函数的逼近与基本概念 1.1问题的提出 多数计算机的硬件系统只提供加、减、乘、除四种算术运算指令,因此为了计算大多数有解析表达式的函数的值,必须产生可用四则运算进行计算的近似式,一般为多项式和有理分式函数.实际上,我们已经接触到两种逼近多项式,一种是泰乐多项式,一种是插值多项式.泰乐多项式是一种局部方法,误差分布不均匀,满足一定精度要求的泰乐多项式次数太高,不宜在计算机上直接使用.例如,设()f x 是[1,1]-上的光滑函数,它的Taylor 级数0()k k k f x a x ∞ ==∑, ()(0)! k k f a k =在[1,1]-上收敛。当此级数收敛比较快时,11()()()n n n n e x f x s x a x ++=-≈。这个误差分布是不均匀的。当0x =时,(0)0n e =,而x 离开零点增加时,()n e x 单调增加,在1x =±误差最

大。

为了使[1,1]-的所有x 满足()()n f x s x ε-<,必须选取足够大的n ,这显然是不经济的。插值函数出现的龙格现象表明,非节点处函数和它的插值多项式相差太大。更重要的是,实际中通过观测得到的节点数据往往有各种误差,此时如果要求逼近函数过全部节点,相当于保留全部数据误差,这是不适宜的。如图1所示,给出五个点上的实验测量数据,理论上的结果应该满足线性关系,即图1中的实线。由于实验数据的误差太大,不能用过任意两点的直线逼近函数。如果用过5个点的4次多项式逼近线性函数,显然误差会很大。 实验数据 真函数 插值多项式逼近 精确的线性逼近 图1

数值分析函数逼与曲线拟合

第三章 函数逼近与曲线拟合 1 函数的逼近与基本概念 1.1问题的提出 多数计算机的硬件系统只提供加、减、乘、除四种算术运算指令,因此为了计算大多数有解析表达式的函数的值,必须产生可用四则运算进行计算的近似式,一般为多项式和有理分式函数.实际上,我们已经接触到两种逼近多项式,一种是泰乐多项式,一种是插值多项式.泰乐多项式是一种局部方法,误差分布不均匀,满足一定精度要求的泰乐多项式次数太高,不宜在计算机上直接使用.例如,设 ()f x 是[1,1]-上的光滑函数,它的Taylor 级数0 ()k k k f x a x ∞ ==∑, ()(0) ! k k f a k = 在[1,1]-上收敛。当此级数收敛比较快时,1 1()()()n n n n e x f x s x a x ++=-≈。这个误差分布是不均匀的。当0x =时,(0)0n e =,而x 离开零点增加时,()n e x 单调增加,在1x =±误差最大。为了使[1,1]-的所有x 满足()()n f x s x ε-<,必须选取足够大的n ,这显然是不经 济的。插值函数出现的龙格现象表明,非节点处函数和它的插值多项式相差太大。更重要的是,实际中通过观测得到的节点数据往往有各种误差,此时如果要求逼近函数过全部节点,相当于保留全部数据误差,这是不适宜的。如图1所示,给出五个点上的实验测量数据,理论上的结果应该满足线性关系,即图1中的实线。由于实验数据的误差太大,不能用过任意两点的直线逼近函数。如果用过5个点的4次多项式逼近线性函数,显然误差会很大。

1.2范数与逼近 一、线性空间及赋范线性空间 要深入研究客观事物,不得不研究事物间的内在联系,给集合的元素之间赋予某种“确定关系”也正是这样的道理.数学上常把在各种集合中引入某些不同的确定关系称为赋予集合以某种空间结构,并将这样的集合称为空间。最常用的给集合赋予一种“加法”和“数乘”运算,使其构 成线性空间.例如将所有实 n 维数对组成的集合,按照“加法”和“数乘”运算构成实数域上的线 性空间,记作n R ,称为n 维向量空间.类似地,对次数不超过n 的实系数多项式全体,按通常多项式与多项式加法及数与多项式乘法也构成数域R 上一个线性空间,用n H 表示,称为多项式空间。所有定义在[,]a b 上的连续函数集合,按函数加法和数与函数乘法构成数域R 上的线 性空间,记作[,]C a b .类似地,记[,]p C a b 为具有p 阶连续导数的函数空间. 在实数的计算问题中,对实数的大小、距离及误差界等是通过绝对值来度量的.实践中,我们常常会遇到对一般线性空间中的向量大小和向量之间的距离进行度量的问题,因此有必要在一般线性空间上,赋予“长度”结构,使线性空间成为赋范线性空间. 定义1 设 X 是数域K 上一个线性空间,在其上定义一个实值函数g ,即对于任意 ,x y X ∈及K α∈,有对应的实数x 和y ,满足下列条件 (1) 正定性:0x ≥,而且0x =当且仅当0x =; (2) 齐次性:x x αα=; (3) 三角不等式:x y x y +≤+; 实验数据 真函数 插值多项式逼近 精确的线性逼近 图1

实验数据与曲线拟合

实验数据与曲线拟合 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。

曲线拟合与插值理论与实例

第11章曲线拟合与插值 在大量的应用领域中,人们经常面临用一个解析函数描述数据(通常是测量值)的任务。对这个问题有两种方法。在插值法里,数据假定是正确的,要求以某种方法描述数据点之间所发生的情况。这种方法在下一节讨论。这里讨论的方法是曲线拟合或回归。人们设法找出某条光滑曲线,它最佳地拟合数据,但不必要经过任何数据点。图11.1说明了这两种方法。标有'o'的是数据点;连接数据点的实线描绘了线性内插,虚线是数据的最佳拟合。 11.1 曲线拟合 曲线拟合涉及回答两个基本问题:最佳拟合意味着什么?应该用什么样的曲线?可用许多不同的方法定义最佳拟合,并存在无穷数目的曲线。所以,从这里开始,我们走向何方?正如它证实的那样,当最佳拟合被解释为在数据点的最小误差平方和,且所用的曲线限定为多项式时,那么曲线拟合是相当简捷的。数学上,称为多项式的最小二乘曲线拟合。如果这种描述使你混淆,再研究图11.1。虚线和标志的数据点之间的垂直距离是在该点的误差。对各数据点距离求平方,并把平方距离全加起来,就是误差平方和。这条虚线是使误差平方和尽可能小的曲线,即是最佳拟合。最小二乘这个术语仅仅是使误差平方和最小的省略说法。

图11.1 2阶曲线拟合 在MATLAB中,函数polyfit求解最小二乘曲线拟合问题。为了阐述这个函数的用法,让我们以上面图11.1中的数据开始。 ? x=[0 .1 .2 .3 .4 .5 .6 .7 .8 .9 1]; ? y=[-.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2]; 为了用polyfit,我们必须给函数赋予上面的数据和我们希望最佳拟合数据的多项式的阶次或度。如果我们选择n=1作为阶次,得到最简单的线性近似。通常称为线性回归。相反,如果我们选择n=2作为阶次,得到一个2阶多项式。现在,我们选择一个2阶多项式。 ? n=2; % polynomial order ? p=polyfit(x, y, n) p = -9.8108 20.1293 -0.0317 polyfit的输出是一个多项式系数的行向量。其解是y = -9.8108x2+20.1293x-0.0317。为了将曲线拟合解与数据点比较,让我们把二者都绘成图。

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、撰写开题报告;(第 3、4周) 3、应用最小二乘法进行曲线拟合;(第5、6周) 4、应用Matlab命令曲线拟合;(第7、8周) 5、应用Matlab图形用户界面曲线拟合;(第9、10周) 6、研究其他曲线拟合方法;(第11周) 7、整理资料撰写毕业论文; (1)初稿;(第12、13周)(2)二稿;(第14周)

8、准备答辩和答辩。(第15周) 五、主要参考书及参考资料 [1]卢京潮,《自动控制原理》,西北工业大学出版社,2010.6 [2]胡寿松,《自动控制原理》,科学出版社,2008,6 [3]薛定宇,陈阳泉,《系统仿真技术与应用》,清华大学出版社,2004.4 [4]王正林,《Matlab/Simulink与控制系统仿真》,电子工业出版社,2009.7 [5]李桂成,《计算方法》,电子工业出版社,2013.8 [6]蒋建飞,胡良剑,唐俭.数值分析及其Matlab实验【M】.北京:科学出版社,2008 学生指导教师系主任

Matlab最小二乘法曲线拟合的应用实例

MATLAB机械工程 最小二乘法曲线拟合的应用实例 班级: 姓名: 学号: 指导教师:

一,实验目的 通过Matlab上机编程,掌握利用Matlab软件进行数据拟合分析及数据可视化方法 二,实验内容 1.有一组风机叶片的耐磨实验数据,如下表所示,其中X为使用时间,单位为小时h,Y为磨失质量,单位为克g。要求: 对该数据进行合理的最小二乘法数据拟合得下列数据。 x=[10000 11000 12000 13000 14000 15000 16000 17000 18000 19000 2 0000 21000 22000 23000]; y=[24.0 26.5 29.8 32.4 34.7 37.7 41.1 42.8 44.6 47.3 65.8 87.5 137.8 174. 2] 三,程序如下 X=10000:1000:23000; Y=[24.0,26.5,29.8,32.4,34.7,37.7,41.1,42.8,44.6,47.3,65.8,87.5,137.8,17 4.2] dy=1.5; %拟合数据y的步长for n=1:6 [a,S]=polyfit(x,y,n); A{n}=a;

da=dy*sqrt(diag(inv(S.R′*S.R))); Da{n}=da′; freedom(n)=S.df; [ye,delta]=polyval(a,x,S); YE{n}=ye; D{n}=delta; chi2(n)=sum((y-ye).^2)/dy/dy; end Q=1-chi2cdf(chi2,freedom); %判断拟合良好度 clf,shg subplot(1,2,1),plot(1:6,abs(chi2-freedom),‘b’) xlabel(‘阶次’),title(‘chi2与自由度’) subplot(1,2,2),plot(1:6,Q,‘r’,1:6,ones(1,6)*0.5) xlabel(‘阶次’),title(‘Q与0.5线’) nod=input(‘根据图形选择适当的阶次(请输入数值)’); elf,shg, plot(x,y,‘kx’);xlabel(‘x’),ylabel(‘y’); axis([8000,23000,20.0,174.2]);hold on errorbar(x,YE{nod},D{nod},‘r’);hold off title(‘较适当阶次的拟合’) text(10000,150.0,[‘chi2=’num2str(chi2(nod))‘~’int2str(freedom(nod))])

数值计算方法教案_曲线拟合与函数逼近

第三章 曲线拟合与函数逼近 一.曲线拟合 1.问题提出: 已知多组数据(),,1,2,,i i x y i N = ,由此预测函数()y f x =的表达式。 数据特点:(1)点数较多。(2)所给数据存在误差。 解决方法:构造一条曲线反映所给数据点的变化总趋势,即所谓的“曲线拟合”。 2.直线拟合的概念 设直线方程为y=a+bx 。 则残差为:?i i i e y y =-,1,2,,i N = ,其中?i i y a bx =+。 残差i e 是衡量拟合好坏的重要标志。 可以用MATLAB 软件绘制残差的概念。 x=1:6; y=[3,4.5,8,10,16,20]; p=polyfit(x,y,1); xi=0:0.01:7; yi=polyval(p,xi); plot(xi,yi,x,y, 'o'); y1=polyval(p,x); hold on for i=1:6 plot([i,i],[y(i),y1(i)], 'r'); end 可以绘制出如下图形:

三个准则: (1)max i e 最小 (2)1n i i e =∑最小 (3)21 N i i e =∑最小 3.最小二乘法的直线拟合 问题:对于给定的数据点(),,1,2,,i i x y i N = ,求一次多项式y=a+bx ,使得总误差Q 最小。其中()2 21 1 N N i i i i i Q e y a bx ====-+????∑∑。根据 0,0.Q Q a b ??==?? 2222 1 222N i i i i i i i Q y a b x y a y x b x ab =??=++--+??∑

函数逼近与曲线拟合

实验二 函数逼近与曲线拟合报告 一、问题提出 从随机的数据中找出其规律性,给出其近似表达式的问题,在生产实践和科学实验中大量存在,通常利用数据的最小二乘法求得拟合曲线。 在某冶炼过程中,根据统计数据的含碳量与时间关系,试求含碳量与时间t 的拟合曲线。 t(分) 0 5 10 15 20 25 30 35 40 45 50 55 4(10)y -? 0 1.27 2.16 2.86 3.44 3.87 4.15 4.37 4.51 4.58 4.02 4.64 二、要求 1、用最小二乘法进行曲线拟合; 2、近似解析表达式为23123()t a t a t a t ?=++; 3、打印出拟合函数()t ?,并打印出()j t ?与()j y t 的误差,1,2,,12j = ; 4、另外选取一个近似表达式,尝试拟合效果的比较; 5、* 绘制出曲线拟合图。 三、目的和意义 1、掌握曲线拟合的最小二乘法; 2、最小二乘法亦可用于解超定线代数方程组; 3、探索拟合函数的选择与拟合精度间的关系。 四、实验学时:2学时 五、实验步骤: 1.进入C 或matlab 开发环境; 2.根据实验内容和要求编写程序; 3.调试程序; 4.运行程序; 5.撰写报告,讨论分析实验结果.

解: 实验步骤 (一)算法流程 构造a1、a2、a3的线性方程组------构造误差平方和------对a1、a2、a3求偏导数------令偏导为零求得a1、a2、a3的值。 (二)编程步骤与分析 1. 绘制数据点(t,yi)的散点图 输入程序为: t=[0 5 10 15 20 25 30 35 40 45 50 55]; y=[0 1.27 2.16 2.86 3.44 3.87 4.15 4.37 4.51 4.58 4.02 4.64].*1e-4 plot(t,y,'r*'), legend('实验数据(t,yi)') xlabel('x'), ylabel('y'), title('数据点(t,yi)的散点图'),显示结果为: 2.求参数a1、a2、a3的解析表达式 计算)(x f 在),(i i y x 处的函数值,即输入程序 syms a1 a2 a3 t=[0 5 10 15 20 25 30 35 40 45 50 55]; fi=a1.*t+ a2.*t.^2+ a3.*t.^3 运行后屏幕显示关于a1,a2, a3的线性方程组: fi = [ 0, 5*a1 + 25*a2 + 125*a3, 10*a1 + 100*a2 + 1000*a3, 15*a1 + 225*a2 + 3375*a3, 20*a1 + 400*a2 + 8000*a3, 25*a1 + 625*a2 + 15625*a3, 30*a1 + 900*a2 + 27000*a3, 35*a1 + 1225*a2 + 42875*a3, 40*a1 + 1600*a2 + 64000*a3, 45*a1 + 2025*a2 + 91125*a3, 50*a1 + 2500*a2 + 125000*a3, 55*a1 + 3025*a2 + 166375*a3] 构造误差平方和: y=[0 1.27 2.16 2.86 3.44 3.87 4.15 4.37 4.51 4.58 4.02 4.64].*1e-4;

实验6 曲线拟合与数据分析

实验6 曲线拟合与数据分析 【实验目的】 1.掌握利用Origin进行(非)线性拟合的方法。 2.掌握如何由自定义函数对数据拟合。 3.掌握利用Origin对数据进行插值与外推。 4.掌握如何实现重叠图形的分离。 实验6.1非线性拟合 【实验内容】 1.利用安装目录中的D:\OriginLab\Origin8\Samples\Curve Fitting\ Polynomial Fit.dat数据文件进行二次 多项式拟合,拟合结果如下图。 图6- 1二次多项式拟合结果 2.利用安装目录中的D:\OriginLab\Origin8\Samples\Curve Fitting\ Gaussian.dat文件进行非线性拟合, 拟合结果如下图 图6- 2非线性拟合结果 3.分析分析报表,评估上面两题的拟合效果。 【实验步骤】 1)多项式拟合

1. 导入数据,通过【File 】→【Import 】命令打开安装目录中的D:\OriginLab\Origin8\Samples\Curve Fitting\ Polynomial Fit.dat 文件。 2. 选中A 、B 列数据,生成散点图。 3. 通过【Analysis 】→【Fitting 】→【Fit Polynomial 】命令打开Polynomial Fit 对话框。 图6- 3多项式拟合对话框 4. 如图6-3示,输入输出数据关系Recalculate 选为Manual ,多项式次数Polynomial Order 设置为2。 单击OK 即可得6-1结果。 2) 非线性拟合 1. 导入数据,通过【File 】→【Import 】命令打开安装目录中的D:\OriginLab\Origin8\Samples\Curve Fitting\ Gaussian.dat 文件。 2. 选中A 、B 列数据,生成散点图。 3. 通过【Analysis 】→【Fitting 】→【NonLinear Curve Fit 】命令打开NLFit 对话框。 4. 如图6-4示,拟合函数选择Gauss 函数,单击OK ,得6-2所示结果。 图6- 4非线性拟合对话框 实验6.2自定义函数拟合 【实验内容】 1. 有自定义函数 0bx y y ae =+ 利用安装目录D:\OriginLab\Origin8\Samples\Curve Fitting 下的Exponential Decay.dat 数据文件拟合出函数参数y0,a,b 。

函数逼近与曲线拟合

函数逼近与曲线拟合 3.1函数逼近的基本概念 3.1.1 函数逼近与函数空间 在数值计算中常要计算函数值,如计算机中计算基本初等函数及其他特殊函数;当函数只在有限点集上给定函数值,要在包含该点集的区间上用公式给出函数的 简单表达式,这些都涉及到在区间上用简单函数逼近已知复杂函数的问题,这就是函数逼近问题.上章讨论的插值法就是函数逼近问题的一种.本章讨论的函数逼近,是指“对函数类A中给定的函数,记作,要求在另一类简单的便于计算的函数类B中求函数,使与的误差在某种度量意义下最小”.函数类A通常是区间上的连续函数,记作,称为连续函数空间,而函数类B通常为n次多项式,有理函数或分段低次多项式等.函 数逼近是数值分析的基础,为了在数学上描述更精确,先要介绍代数和分析中一些基本概念及预备知识. 数学上常把在各种集合中引入某些不同的确定关系称为赋予集合以某种空间结构,并将为样的集合称为空间.例如将所有实n维向量组成集合,按向量加法及向量与数的乘法构成实数域上的线性空间,记作,称为n维向量空间.类似地,对次数不超过n(n为正整数)的实系数多项式全体,按通常多项式与多项式加法及数与多项式乘法也构成数域上的一个线性空间,用表示,称为多项式空间.所有定义在上的连续函数集合,按函数加法和数与函数乘法构 成数域上的线性空间,记作.类似地,记为具有p阶的连续导数的函数空间. 定义1设集合S是数域P上的线性空间,元素,如果存在不全为零的数,使得

, (3.1.1)则称线性相关.否则,若等式(3.1.1)只对成立,则称线性无关. 若线性空间S是由n个线性无关元素生成的,即对都有 则称为空间S的一组基,记为,并称空间S为n维空间,系数称为x在基下的坐标,记作,如果S中有无限个线性无关元素,…,则称S为无限维线性空间. 下面考察次数不超过n次的多项式集合,其元素表示为 , (3.1.2)它由个系数唯一确定.线性无关,它是的一组基,故,且是的坐标向量,是维的.对连续函数,它不能用有限个线性无关的函数表示,故是无限维的,但它的任一元素均可用有限维的逼近,使误差 (为任给的小正数),这就是著名的Weierstrass定理.定理1(Weierstrass)设,则对任何,总存在一个代数多项式,使

1、曲线拟合及其应用综述

曲线拟合及其应用综述 摘要:本文首先分析了曲线拟合方法的背景及在各个领域中的应用,然后详细介绍了曲线拟合方法的基本原理及实现方法,并结合一个具体实例,分析了曲线拟合方法在柴油机故障诊断中的应用,最后对全文内容进行了总结,并对曲线拟合方法的发展进行了思考和展望。 关键词:曲线拟合最小二乘法故障模式识别柴油机故障诊断 1背景及应用 在科学技术的许多领域中,常常需要根据实际测试所得到的一系列数据,求出它们的函数关系。理论上讲,可以根据插值原则构造n 次多项式Pn(x),使得Pn(x)在各测试点的数据正好通过实测点。可是, 在一般情况下,我们为了尽量反映实际情况而采集了很多样点,造成了插值多项式Pn(x)的次数很高,这不仅增大了计算量,而且影响了函数的逼近程度;再就是由于插值多项式经过每一实测样点,这样就会保留测量误差,从而影响逼近函数的精度,不易反映实际的函数关系。因此,我们一般根据已知实际测试样点,找出被测试量之间的函数关系,使得找出的近似函数曲线能够充分反映实际测试量之间的关系,这就是曲线拟合。 曲线拟合技术在图像处理、逆向工程、计算机辅助设计以及测试数据的处理显示及故障模式诊断等领域中都得到了广泛的应用。 2 基本原理 2.1 曲线拟合的定义 解决曲线拟合问题常用的方法有很多,总体上可以分为两大类:一类是有理论模型的曲线拟合,也就是由与数据的背景资料规律相适应的解析表达式约束的曲线拟合;另一类是无理论模型的曲线拟合,也就是由几何方法或神经网络的拓扑结构确定数据关系的曲线拟合。 2.2 曲线拟合的方法 解决曲线拟合问题常用的方法有很多,总体上可以分为两大类:一类是有理论模型的曲线拟合,也就是由与数据的背景资料规律相适应的解析表达式约束的曲线拟合;另一类是无理论模型的曲线拟合,也就是由几何方法或神经网络的拓扑结构确定数据关系的曲线拟合。 2.2.1 有理论模型的曲线拟合 有理论模型的曲线拟合适用于处理有一定背景资料、规律性较强的拟合问题。通过实验或者观测得到的数据对(x i,y i)(i=1,2, …,n),可以用与背景资料规律相适应的解析表达式y=f(x,c)来反映x、y之间的依赖关系,y=f(x,c)称为拟合的理论模型,式中c=c0,c1,…c n是待定参数。当c在f中线性出现时,称为线性模型,否则称为非线性模型。有许多衡量拟合优度的标准,最常用的方法是最小二乘法。 2.2.1.1 线性模型的曲线拟合 线性模型中与背景资料相适应的解析表达式为: ε β β+ + =x y 1 (1) 式中,β0,β1未知参数,ε服从N(0,σ2)。 将n个实验点分别带入表达式(1)得到: i i i x yε β β+ + = 1 (2) 式中i=1,2,…n,ε1, ε2,…, εn相互独立并且服从N(0,σ2)。 根据最小二乘原理,拟合得到的参数应使曲线与试验点之间的误差的平方和达到最小,也就是使如下的目标函数达到最小: 2 1 1 ) ( i i n i i x y Jε β β- - - =∑ = (3) 将试验点数据点入之后,求目标函数的最大值问题就变成了求取使目标函数对待求参数的偏导数为零时的参数值问题,即: ) ( 2 1 1 = - - - - = ? ?∑ = i i n i i x y J ε β β β (4)

曲线拟合实验报告

数值分析 课程设计报告 学生姓名 学生学号 所在班级 指导教师

一、课程设计名称 函数逼近与曲线拟合 二、课程设计目的及要求 实验目的: ⑴学会用最小二乘法求拟合数据的多项式,并应用算法于实际问题。 ⑵学会基本的矩阵运算,注意点乘和叉乘的区别。 实验要求: ⑴编写程序用最小二乘法求拟合数据的多项式,并求平方误差,做出离散函数(x i ,y i )和拟合函数的图形; ⑵用MATLAB 的内部函数polyfit 求解上面最小二乘法曲线拟合多项式的系数及平方误差,并用MATLAB 的内部函数plot 作出其图形,并与(1)结果进行比较。 三、课程设计中的算法描述 用最小二乘法多项式曲线拟合,根据给定的数据点,并不要求这条曲线精确的经过这些点,而是拟合曲线无限逼近离散点所形成的数据曲线。 思路分析:从整体上考虑近似函数)(x p 同所给数据点) (i i y x ,误差i i i y x p r -=)(的大小,常用的方法有三种:一是误差i i i y x p r -=)(绝对值的最大值i m i r ≤≤0max ,即误差向量的无穷范数;二是误差绝对值的和∑=m i i r 0 ,即误差向量的1 范数;三是误差平方和∑=m i i r 0 2的算术平方根,即类似于误差向量的2范数。前两 种方法简单、自然,但不便于微分运算,后一种方法相当于考虑2范数的平方,此次采用第三种误差分析方案。 算法的具体推导过程: 1.设拟合多项式为: y =a 0+a 1x +a 2x 1+?+a k x k 2.给点到这条曲线的距离之和,即偏差平方和:

R 2= y i ? a 0+a 1x +?+a k x i k 2 n i =1 3.为了求得到符合条件的a 的值,对等式右边求a i 偏导数,因而我们得到了: ?2 y ? a 0+a 1x +?+a k x i k n i =1x =0 ?2 y ? a 0+a 1x +?+a k x i k n i =1 =0 ?? ?2 y ? a 0+a 1x +?+a k x i k x k n i =1 =0 4.将等式左边进行一次简化,然后应该可以得到下面的等式 a 0n +a 1 x i +?+a k x i k n i =1n i =1 a 0 x i +a 1 x i 2+?+ x i k +1n i =1 n i =1n i =1 a 0 x i k +a 1 x i k +1+?+a k x i 2k n i =1 n i =1 n i =1 5.把这些等式表示成矩阵的形式,就可以得到下面的矩阵: ????????? ???????????=???? ????????????????????????????∑∑∑∑∑∑∑∑∑∑∑=====+==+====n i i n i n i i k n i k i n i k i n i k i n i k i n i i n i i n i k i n i i y y y a a x x x x x x x x 11i 1 10121 11 1112111 a n 6. 将这个范德蒙得矩阵化简后得到 ?? ???? ??????=?????????????????? ??? ??? ? ?n k k n n k k y y y a a a x x x x x x 21102211111 7.因为Y A X =*,那么X Y A /=,计算得到系数矩阵,同时就得到了拟合曲线。

基础实验五 数据拟合与曲线拟合

基础实验五 数据拟合与曲线拟合 一、实验目的 对于某个变化过程中的相互依赖的变量,可建立适当的数学模型,用于分析、预报、决策或控制该过程。对于两个变量可通过用一个一元函数去模拟这两个变量的取值,但用不同的方法可得到不同的模拟函数。 使用最小二乘法来进行数据拟合,用基本函数曲线及其变化模拟给定的曲线,理解拟合方法。 二、实验材料 2.1 曲线拟合 (1)初等函数包括基本初等函数与它们经过加减乘除复合等运算后所得到的函数的图形及其变换。拟合函数为多项式情形理论上已经解决,称为拉格朗日插值多项式。 (2)光滑曲线的有关内容,包括分段函数的连续性、一阶可导性与高阶可导性。 (3)方程或方程组的求解,包括超越方程或方程组的近似解法,线性方程组的精确解。 2.2最小二乘法 给定平面上一组点(i x ,i y )(n i ,,2,1 =)作曲线拟合有多种方法,其中最小二乘法是常 用的一种。最小二乘法的原理是:求)(x f ,使∑=-=n k k k y x f 1 2])([δ达到最小。拟合时,选取一定的拟合函数形式,设拟合函数的基底函数为 ,)(,,)(,)(10x x x m ??? 拟合函数为 ,)()()()(1100x c x c x c x f m m ???+++= 确定m c c c ,,,10 使方差δ达到极小,此时得到的)(x f 即为所求。为使δ取到极值,将)(x f 的 表达式代入,对δ求i c 的偏导数,令其等于零,得到1+m 方程组成的方程组,从中求解i c 。当m =1时,取拟合函数bx a x f +=)(,此做法称为线性拟合,统计学上叫做线性回归。此时,临界方程组为 ?????=??? ??+=??? ??+∑∑∑∑∑=====n i i i n i i n i i n i i n i i y x b x x y b x na 1121 11, 从中解出a 与b ,有y x x l l x f xx xy +-= )()(,其中∑==n i i x n x 11 ,∑==n i i y n y 11 21)(x x l n i i xx -=∑=, ))((1y y x x l i n i i xy --=∑=。 Mathematica 提供了最基本的数据拟合函数Fit ,这个函数使用最小二乘法产生基函数的线性组合以构造出拟合函数。函数的参数表中包括三项:第一个参数是被拟合的数据;第二个参数是一个表,用于说明拟合用的基函数;第三个参数是拟合变量。 2.3 线性拟合 练习1 为研究某一化学反应过程中温度)(0C x 对产品得率y (%)的影响,测得数据如下:

曲线拟合实例

例如: 已知数据队列buf=【5410。。。。。】 x取值1:n n是队列长度 函数f(x)=a+b*sin(c*x+d) . avg 是队列平均值 a b c d 为参数a范围(2/3,1)*avg b范围(0,1/3)*avg c的范围(0,24*pi) d (0,2*pi) 1、首先定义目标函数 function y=ga_curfit(x) global ydata n t=1:n; y=0; for i=1:n y=y+(ydata(i)-(x(:,1)+x(:,2).*sin(x(:,3).*t(i)+x(:,4)))).^2/n; end y=sqrt(y); end 2、把数据b.txt放在工作空间目录中 然后再命令窗口中输入 clear global ydata n format long g load b.txt ydata=b'; n=length(ydata); avg=sum(ydata)/n; LB=[2/3*avg 0 0 0]; UB=[1*avg 1/3*avg 24*pi 2*pi]; nvars=4; options=gaoptimset; options=gaoptimset(options,'PopulationSize',300); options=gaoptimset(options,'CrossoverFraction',0.8); options=gaoptimset(options,'MigrationFraction',0.1);

options=gaoptimset(options,'Generations',500); options = gaoptimset(options,'TolFun', 1e-50); %options = gaoptimset(options,'InitialPopulation',final_pop); options = gaoptimset(options,'Display', 'final'); options = gaoptimset(options,'PopInitRange', [LB;UB]); options = gaoptimset(options,'PlotFcns', @gaplotbestf); options=gaoptimset(options,'Vectorize','on');%目标函数向量化 [x,fval,exitflag,output,final_pop,scores]=ga(@ga_curfit,nvars,[],[],[],[],LB,UB,[],options); t=1:n; plot(t,ydata,'r*'); hold on plot(t,x(1)+x(2)*sin(x(3)*t+x(4))) legend('数据','拟合') 引言之前曾发帖讨论过常微分方程参数拟合问题,就实际应用而言,还是以非线性代数方程参数拟合问题居多。实现非线性代数方程参数拟合的软件有很多,比如MATLAB、Origin、SPSS和1stOpt等,特别是1stOpt,其代码简单易学,几乎不需调试,即可获得高质量的拟合结果,不过需要指出的是,该软件的拟合过程对操作者而言是一个黑箱。拟合问题,实际上是一类最优化问题。既然说到最优化问题,自然要涉及最优化算法、初值、程序代码。初值的选取一直是困扰局部最优算法的问题,比如在调用MATLAB著名的lsqnonlin函数时,拟合结果对选用的初值具有很大的依赖性。以具有全局搜索能力算法的计算结果,作为初值供局部最优化算法调用,是一种解决初值选取问题的方法。本帖的主要目的正是讨论一种基于遗传算法拟合非线性代数方程参数的方法。 1. 本帖讨论的例子出处本帖讨论的问题与数据,取自2013年全国研究生数学建模竞赛E题,直观起见,现将问题表述如下:已知自变量p,因变量L,L和p满足以下函数式:L=(1-(1-p)^k3)^k1*(1-(1-p)^k4)^k2;且k1,k2≥0,k1+k2≥1 );(需要指出的是,该公式中参数可进一步合并以防止过拟合,拟合结果不唯一,不过,在本帖中并未作合并处理)拟合出k1,k2,k3和k4。 2.结果与讨论运行MATLAB软件,调用lsqnonlin函数,参数初值按k1=1,k2=0,k3=1,k4=0作试探(先不管k1,k2的约束条件,实际上,k1,k2的约束常可自然满足),程序代码如下:clear all;clc

相关文档
最新文档