插值与拟合

插值与拟合
插值与拟合

插值与数据拟合模型

第二讲 插值与数据拟合模型 函数插值与曲线拟合都是要根据一组数据构造一个函数作为近似,由于近似的要求不同,二者的数学方法上是完全不同的。而面对一个实际问题,究竟用插值还是拟合,有时容易确定,有时则并不明显。 在数学建模过程中,常常需要确定一个变量依存于另一个或更多的变量的关系,即函数。但实际上确定函数的形式(线性形式、乘法形式、幂指形式或其它形式)时往往没有先验的依据。只能在收集的实际数据的基础上对若干合乎理论的形式进行试验,从中选择一个最能拟合有关数据,即最有可能反映实际问题的函数形式,这就是数据拟合问题。 一、插值方法简介 插值问题的提法是,已知1+n 个节点n j y x j j ,,2,1,0),,( =,其中j x 互不相同,不妨设b x x x a n =<<<= 10,求任一插值点)(*j x x ≠处的插值*y 。),(j j y x 可以看成是由某个函数)(x g y =产生的,g 的解析表达式可能十分复杂,或不存在封闭形式。也可以未知。 求解的基本思路是,构造一个相对简单的函数)(x f y =,使f 通过全部节点,即),,2,1,0()(n j y x f j j ==,再由)(x f 计算插值,即*)(*x f y =。 1.拉格朗日多项式插值 插值多项式 从理论和计算的角度看,多项式是最简单的函数,设)(x f 是n 次多项式,记作 0111)(a x a x a x a x L n n n n n ++++=-- (1) 对于节点),(j j y x 应有 n j y x L j j n ,,2,1,0,)( == (2) 为了确定插值多项式)(x L n 中的系数011,,,,a a a a n n -,将(1)代入(2),有 ???????=++++=++++=++++---n n n n n n n n n n n n n n n n y a x a x a x a y a x a x a x a y a x a x a x a 01110111110001010 (3) 记 T n T n n n n n n n n n n y y y Y a a a A x x x x x x X ),,,(,),,,(,11110011111 100 ==?????? ? ??=---- 方程组(3)简写成 Y XA = (4) 注意X det 是Vandermonde 行列式,利用行列式性质可得 ∏≤<≤-= n k j j k x x X 0)(det 因j x 互不相同,故0det ≠X ,于是方程(4)中A 有唯一解,即根据1+n 个节点可以确定唯一的n 次插值多项式。 拉格朗日插值多项式 实际上比较方便的做法不是解方程(4)求A ,而是先构造一组基函数: n i x x x x x x x x x x x x x x x x x l n i i i i i i n i i i ,,2,1,0,) ())(()()())(()()(110110 =--------=+-+- (5) )(x l i 是n 次多项式,满足

插值法和拟合实验报告(数值计算)

插值法和拟合实验报告 一、 实验目的 1.通过进行不同类型的插值,比较各种插值的效果,明确各种插值的优越性; 2.通过比较不同次数的多项式拟合效果,了解多项式拟合的原理; 3.利用matlab 编程,学会matlab 命令; 4.掌握拉格朗日插值法; 5.掌握多项式拟合的特点和方法。 二、 实验题目 1.、插值法实验 将区间[-5,5]10等分,对下列函数分别计算插值节点 k x 的值,进行不同类型 的插值,作出插值函数的图形并与)(x f y =的图形进行比较: ;11)(2x x f += ;a r c t a n )(x x f = .1)(42 x x x f += (1) 做拉格朗日插值; (2) 做分段线性插值; (3) 做三次样条插值. 2、拟合实验 给定数据点如下表所示: 分别对上述数据作三次多项式和五次多项式拟合,并求平方误差,作出离散函数 ),(i i y x 和拟合函数的图形。 三、 实验原理 1.、插值法实验

∏∑∏∏∏∑∑≠==≠=≠=≠=+-==--= =-= ==-=-=----==++==j i j j i i i i i n i i n n j i j j n j i j j i i n j i j j n i i i n i i n n n o i n i i n x x x x x y x l x L x x c n i x x c x x x c x x x x x x x x c y x l x L y x l y x l y x l x L ,00 ,0,0,01100 00 )(l )()() (1 ,1,0, 1)()(l ) ()())(()()()()()()()(, 故, 得 再由,设 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实现插值与拟合实验 张体强1026222 张影 晁亚敏 [摘要]:在测绘学中,无论是图形处理,还是地形图处理等,大多离不开插值与拟合的应用,根据插值与拟合原理,构造出插值和拟合函数,理解其原理,并在matlab平台下,实现一维插值,二维插值运算,实现多项式拟合,非线性拟合等,并在此基础上,联系自己所学专业,分析其生活中特殊例子,提出问题,建立模型,编写程序,以至于深刻理解插值与拟合的作用。 [关键字]: 测绘学插值多项式拟合非线性拟合 [ Abstract]: in surveying and mapping, whether the graphics processing, or topographic map processing and so on, are inseparable from the interpolation and fitting application, according to the interpolation and fitting theory, construct the fitting and interpolation function, understanding its principle, and MATLAB platform, achieve one-dimensional interpolation, two-dimensional interpolation, polynomial fitting, non-linear fitting, and on this basis, to contact their studies, analysis of their living in a special example, put forward the question, modeling, programming, so that a deep understanding of interpolation and fitting function. [ Key words]: Surveying and mapping interpolation polynomial fitting nonlinear

计算方法--插值法与拟合实验

实验三 插值法与拟合实验 一、实验目的 1. 通过本实验学会利用程序画出插值函数,并和原图形相比较 2. 通过本实验学会拟合函数图形的画法,并会求平方误差 二、实验题目 1. 插值效果的比较 实验题目:区间[]5,5-10等分,对下列函数分别计算插值节点k x 的值,进行不同类型的插值,作出插值函数的图形并与)(x f y =的图形进行比较: 2 11)(x x f +=; x x f arctan )(=; 4 41)(x x x f += (1) 做拉格朗日插值; (2) 做三次样条插值. 2. 拟合多项式实验 实验题目:给定数据点如下表所示: 分别对上述数据作三次多项式和五次多项式拟合,并求平方误差,作出离散函数),(i i y x 和拟合函数的图形. 三、实验原理 本实验应用了拉格朗日插值程序、三次样条插值程序、多项式拟合程序等实验原理. 四、实验内容 1(1) figure x=-5:0.2:5; y=1./(1+x.^2); plot(x,y,'r'); hold on %拉格朗日插值 x1=-5:1:5; y1=1./(1+x1.^2); xx=-4.5:0.5:4.5; yy=malagr(x1,y1,xx); plot(xx,yy,'+') %三次样条插值 dy0=1./(1+25); dyn=1./(1+25);

m=maspline(x1,y1,dy0,dyn,xx); plot(xx,m,'ok') 1(2) x=-5:0.2:5; y=atan(x); plot(x,y,'r'); hold on %拉格朗日插值 x1=-5:1:5; y1=atan(x1); xx=-4.5:0.5:4.5; yy=malagr(x1,y1,xx); plot(xx,yy,'+') %三次样条插值 dy0=1./(1+25); dyn=1./(1+25); m=maspline(x1,y1,dy0,dyn,xx); plot(xx,m,'ok') 1(3) x=-5:0.2:5; y=x.^2./(1+x.^4); plot(x,y,'r'); hold on %拉格朗日插值 x1=-5:1:5; y1=x1.^2./(1+x1.^4); xx=-4.5:0.5:4.5; yy=malagr(x1,y1,xx); plot(xx,yy,'+') %三次样条插值 dy0=1./(1+25); dyn=1./(1+25); m=maspline(x1,y1,dy0,dyn,xx); plot(xx,m,'ok') 2. x=[-1.5 -1.0 -0.5 0.0 0.5 1.0 1.5]'; y=[-4.45 -0.45 0.55 0.05 -0.44 0.54 4.55]'; plot(x,y,'or'); hold on %三次多项式拟合 p1=mafit(x,y,3);

(完整版)Matlab学习系列13.数据插值与拟合

13. 数据插值与拟合 实际中,通常需要处理实验或测量得到的离散数据(点)。插值与拟合方法就是要通过离散数据去确定一个近似函数(曲线或曲面),使其与已知数据有较高的拟合精度。 1.如果要求近似函数经过所已知的所有数据点,此时称为插值问 题(不需要函数表达式)。 2.如果不要求近似函数经过所有数据点,而是要求它能较好地反 映数据变化规律,称为数据拟合(必须有函数表达式)。 插值与拟合都是根据实际中一组已知数据来构造一个能够反映数据变化规律的近似函数。区别是:【插值】不一定得到近似函数的表达形式,仅通过插值方法找到未知点对应的值。【拟合】要求得到一个具体的近似函数的表达式。 因此,当数据量不够,但已知已有数据可信,需要补充数据,此时用【插值】。当数据基本够用,需要寻找因果变量之间的数量关系(推断出表达式),进而对未知的情形作预测,此时用【拟合】。

一、数据插值 根据选用不同类型的插值函数,逼近的效果就不同,一般有:(1)拉格朗日插值(lagrange插值) (2)分段线性插值 (3)Hermite (4)三次样条插值 Matlab 插值函数实现: (1)interp1( ) 一维插值 (2)intep2( ) 二维插值 (3)interp3( ) 三维插值 (4)intern( ) n维插值 1.一维插值(自变量是1维数据) 语法:yi = interp1(x0, y0, xi, ‘method’) 其中,x0, y0为原离散数据(x0为自变量,y0为因变量);xi为需要插值的节点,method为插值方法。 注:(1)要求x0是单调的,xi不超过x0的范围; (2)插值方法有‘nearest’——最邻近插值;‘linear’——线性插值;‘spline’——三次样条插值;‘cubic’——三次插值;

matlab中插值拟合与查表

MATLAB中的插值、拟合与查表 插值法是实用的数值方法,是函数逼近的重要方法。在生产和科学实验中,自变量x与因变量y的函数y = f(x)的关系式有时不能直接写出表达式,而只能得到函数在若干个点的函数值或导数值。当要求知道观测点之外的函数值时,需要估计函数值在该点的值。 如何根据观测点的值,构造一个比较简单的函数y=φ(x),使函数在观测点的值等于已知的数值或导数值。用简单函数y=φ(x)在点x处的值来估计未知函数y=f(x)在x点的值。寻找这样的函数φ(x),办法是很多的。φ(x)可以是一个代数多项式,或是三角多项式,也可以是有理分式;φ(x)可以是任意光滑(任意阶导数连续)的函数或是分段函数。函数类的不同,自然地有不同的逼近效果。在许多应用中,通常要用一个解析函数(一、二元函数)来描述观测数据。 根据测量数据的类型: 1.测量值是准确的,没有误差。 2.测量值与真实值有误差。 这时对应地有两种处理观测数据方法: 1.插值或曲线拟合。 2.回归分析(假定数据测量是精确时,一般用插值法,否则用曲线拟合)。 MATLAB中提供了众多的数据处理命令。有插值命令,有拟合命令,有查表命令。 2.2.1 插值命令 命令1 interp1 功能一维数据插值(表格查找)。该命令对数据点之间计算内插值。它找出一元函数f(x)在中间点的数值。其中函数f(x)由所给数据决定。各个参量之间的关系示意图为图2-14。 格式 yi = interp1(x,Y,xi) %返回插值向量yi,每一元素对应于参量xi,同时由向量x 与Y的内插值决定。参量x指定数据Y的点。若Y为一矩阵,则按Y的每列计算。yi是阶数为length(xi)*size(Y,2)的输出矩阵。 yi = interp1(Y,xi) %假定x=1:N,其中N为向量Y的长度,或者为矩阵Y的行数。 yi = interp1(x,Y,xi,method) %用指定的算法计算插值: ’nearest’:最近邻点插值,直接完成计算;

数学建模案例分析插值与拟合方法建模1数据插值方法及应用

第十章 插值与拟合方法建模 在生产实际中,常常要处理由实验或测量所得到的一批离散数据,插值与拟合方法就是要通过这些数据去确定某一类已经函数的参数,或寻求某个近似函数使之与已知数据有较高的拟合精度。插值与拟合的方法很多,这里主要介绍线性插值方法、多项式插值方法和样条插值方法,以及最小二乘拟合方法在实际问题中的应用。相应的理论和算法是数值分析的内容,这里不作详细介绍,请参阅有关的书籍。 §1 数据插值方法及应用 在生产实践和科学研究中,常常有这样的问题:由实验或测量得到变量间的一批离散样点,要求由此建立变量之间的函数关系或得到样点之外的数据。与此有关的一类问题是当原始数据 ),(,),,(),,(1100n n y x y x y x 精度较高,要求确定一个初等函数)(x P y =(一般用多项式或分段 多项式函数)通过已知各数据点(节点),即n i x P y i i ,,1,0,)( ==,或要求得函数在另外一些点(插值点)处的数值,这便是插值问题。 1、分段线性插值 这是最通俗的一种方法,直观上就是将各数据点用折线连接起来。如果 b x x x a n =<<<= 10 那么分段线性插值公式为 n i x x x y x x x x y x x x x x P i i i i i i i i i i ,,2,1,,)(11 1 11 =≤<--+--= ----- 可以证明,当分点足够细时,分段线性插值是收敛的。其缺点是不能形成一条光滑曲线。 例1、已知欧洲一个国家的地图,为了算出它的国土面积,对地图作了如下测量:以由西向东方向为x 轴,由南向北方向为y 轴,选择方便的原点,并将从最西边界点到最东边界点在x 轴上的区间适当的分为若干段,在每个分点的y 方向测出南边界点和北边界点的y 坐标y1和y2,这样就得到下表的数据(单位:mm )。

数值计算插值法与拟合实验

实验报告三 一、实验目的 通过本实验的学习,各种插值法的效果,如多项式插值法,牛顿插值法,样条插值法,最小二乘法拟合(即拟合插值),了解它们各自的优缺点及插值。 二、实验题目 1、 插值效果比较 实验题目:将区间[]5,5-10等份,对下列函数分别计算插值节点k x 的值,进行不同类型的插值,作出插值函数的图形并与)(x f y =的图形进行比较: 211)(x x f +=;x x f arctan )(=;4 2 1)(x x x f +=。 (1) 做拉格朗日插值; (2) 做三次样条插值。 2、 拟合多项式实验 实验题目:给定数据点如下表所示: i x -1.5 -1.0 -0.5 0.0 0.5 1.0 1.5 i y -4.45 -0.45 0.55 0.05 -0.44 0.54 4.55 分别对上述数据做三次多项式和五次多项式拟合,并求平方误差,作出离散函数()i i y x ,和拟合函数的图形。 三、实验原理 n 阶拉格朗日插值 设已知n x x x ,,,10 及()()()x L n i x f y n i i ,,,1,0 ==为不超过n 次的多项式,且满足 插值条件()().,,1,0n i y x L i i n ==由对()x L 2的构造经验,可设 ()()()()(),11000 n n n i i i n y x l y x l y x l y x l x L +++==∑= 其中,()()n i x L i ,,1,0 =均为n 次多项式且满足() .,,1,0,, ,0, ,1n j i j i j i x l j i =?? ?≠==不难验 证,这样构造出的()x L n 满足插值条件。因此问题归结为求()()n i x l i ,,1,0 =的表达式。因 ()i j x i ≠是n 次多项式()x l i 的n 个根,故可设

数值分析实验插值与拟合

《数值分析》课程实验一:插值与拟合 一、实验目的 1. 理解插值的基本原理,掌握多项式插值的概念、存在唯一性; 2. 编写MA TLAB 程序实现Lagrange 插值和Newton 插值,验证Runge 现象; 3. 通过比较不同次数的多项式拟合效果,理解多项式拟合的基本原理; 4. 编写MA TLAB 程序实现最小二乘多项式曲线拟合。 二、实验内容 1. 用Lagrange 插值和Newton 插值找经过点(-3, -1), (0, 2), (3, -2), (6, 10)的三次插值公式,并编写MATLAB 程序绘制出三次插值公式的图形。 2. 设 ]5,5[,11 )(2 -∈+= x x x f 如果用等距节点x i = -5 + 10i /n (i = 0, 1, 2, …, n )上的Lagrange 插值多项式L n (x )去逼近它。不妨取n = 5和n = 10,编写MATLAB 程序绘制出L 5(x )和L 10(x )的图像。 (2) 编写MA TLAB 程序绘制出曲线拟合图。 三、实验步骤 1. (1) Lagrange 插值法:在线性空间P n 中找到满足条件: ?? ?≠===j i j i x l ij j i , 0, , 1)(δ 的一组基函数{}n i i x l 0)(=,l i (x )的表达式为 ∏ ≠==--= n i j j j i j i n i x x x x x l ,0),,1,0()( 有了基函数{}n i i x l 0)(=,n 次插值多项式就可表示为 ∑==n i i i n x l y x L 0 )()( (2) Newton 插值法:设x 0, x 1, …, x n 是一组互异的节点,y i = f (x i ) (i = 0, 1, 2, …, n ),f (x )在处的n 阶差商定义为

插值法与数据拟合法

第七讲插值方法与数据拟合 § 7.1 引言 在工程和科学实验中,常常需要从一组实验观测数据(x i , y i ) (i= 1, 2, …, n) 揭示自变量x与因变量y 之间的关系,一般可以用一个近似的函数关系式y = f (x) 来表示。函数f (x) 的产生办法因观测数据与要求的不同而异,通常可采用两种方法:插值与数据拟合。 § 7.1.1 插值方法 1.引例1 已经测得在北纬32.3?海洋不同深度处的温度如下表: 根据这些数据,我们希望能合理地估计出其它深度(如500米、600米、1000米…)处的水温。 解决这个问题,可以通过构造一个与给定数据相适应的函数来解决,这是一个被称为插值的问题。 2.插值问题的基本提法 对于给定的函数表 其中f (x) 在区间[a, b] 上连续,x0,x1,…,x n为[a, b] 上n + 1个互不相同的点,要求在一个性质优良、便于计算的函数类{P(x)} 中,选出一个使 P(x i ) = y i,i= 0, 1, …, n(7.1.1) 成立的函数P(x) 作为 f (x) 的近似,这就是最基本的插值问题(见图7.1.1)。 为便于叙述,通常称区间[a, b] 为插值区间,称点x0,x1,…,x n为插值节点,称函数类{P(x)} 为插值函数类,称式(7.1.1) 为插值条件,称函数P(x) 为插值函数,称f (x) 为被插函数。求插值函数P(x) 的方法称为插值法。 § 7.1.2 数据拟合 1.引例2 在某化学反应中,已知生成物的浓度与时间有关。今测得一组数据如下: 根据这些数据,我们希望寻找一个y = f (t) 的近似表达式(如建立浓度y与时间t之间的经验公式等)。从几何上看,就是希望根据给定的一组点(1, 4.00),…,(16, 10.60),求函数y = f (t) 的图象的一条拟合曲

清华大学_计算方法(数学实验)实验2插值与拟合

实验 2 插值与拟合 系班姓名学号 【实验目的】 1、掌握用MATLAB计算拉格朗日、分段线性、三次样条三种插值的方法,改变节点的数目, 对三种插值结果进行初步分析。 2、掌握用MATLAB作线性最小二乘的方法。 3、通过实例学习如何用插值方法与拟合方法解决实际问题,注意二者的联系和区别。 【实验内容】 预备:编制计算拉格朗日插值的M文件: 以下是拉格朗日插值的名为y_lagrl的M文件: function y=y_lagr1(x0,y0,x) n=length(x0);m=length(x); for i=1:m z=x(i); s=0.0; for k=1:n p=1.0; for j=1:n if j~=k p=p*(z-x0(j))/(x0(k)-x0(j)); end end s=p*y0(k)+s; end y(i)=s; end 第1题(d) 选择函数y=exp(-x2) (-2≤x≤2),在n个节点上(n不要太大,如5~11)用拉格朗日、分段线性、三次样条三种插值方法,计算m个插值点的函数值(m要适中,如50~100)。通过数值和图形输出,将三种插值结果与精确值进行比较。适当增加n,在作比较,由此作初步分析。 运行如下程序: n=7;m=61;x=-2:4/(m-1):2; y=exp(-x.^2); z=0*x; x0=-2:4/(n-1):2; y0=exp(-x0.^2); y1=y_lagr1(x0,y0,x); y2=interp1(x0,y0,x); y3=interp1(x0,y0,x,'spline');

[x'y'y1'y2'y3'] plot(x,z,'w',x,y,'r--',x,y1,'b:',x,y2,'m',x,y3,'b') gtext('y=exp(-x^2)'),gtext('Lagr.'),gtext('Piece.-linear.'),gtext ('Spline'), 将三种插值结果y1,y2,y3与精确值y 项比较,显然y1在节点处不光滑,拉格朗日插值出现较大的振荡,样条插值得结果是最好的.增加n 值(使n=11),再运行以上程序,得到的图形如右图所示,比较这两个图可发现,节点增加后,三种插值方法结果的准确度均有所提高,因此可近似地认为:增加节点个数可以提高插值结果的准确程度。 第3题 用给定的多项式,如y=x 3-6x 2+5x-3,产生一组数据(x i ,y i ,i=1,2,…,n ),再在yi 上添加随机干扰(可用rand 产生(0,1)均匀分布随机数,或用randn 产生N (0,1)分布随机数),然后用x i 和添加了随机干扰的y i 作3次多项式拟合,与原系数比较。如果作2或4次多项式拟合,结果如何? 解:2 编制y_2_3.m 文件 n=15; x=0:8/(n-1):8; y=x.^3-6*x.^2+5*x-3; z=0*x; y0=y+rand(1,15); f=polyfit(x,y0,m); r=polyval(f,x) pl2ot(x,z,'k',x,y,'r:'r,'b') 程序及运行结果如下:m=2 ,y_2_3 f = 5.9888 -31.9916 17.6679 m=3 ,y_2_3

计算方法上机作业插值与拟合实验报告

计算方法实验 题目: 班级: 学号: 姓名:

目录 计算方法实验 (1) 1 实验目的 (3) 2 实验步骤 (3) 2.1环境配置: (3) 2.2添加头文件 (3) 2.3主要模块 (3) 3 代码 (4) 3.1主程序部分 (4) 3.2多项式方程部分 (4) 3.3核心算法部分 (8) 3.4数据结构部分 (13) 4运行结果 (19) 4.1拉格朗日插值法运行结果 (19) 4.2牛顿插值法运行结果 (20) 4.3多项式拟合运行结果 (20) 5总结 (21) 拉格朗日插值法 (21) 牛顿插值法 (21) 多项式拟合 (21) 6参考资料 (22)

1 实验目的 1.通过编程对拉格朗日插值法、牛顿插值法以及多项式拟合数据的理解 2.观察上述方法的计算稳定性和求解精度并比较各种方法利弊 2 实验步骤 2.1环境配置: VS2013,C++控制台程序 2.2添加头文件 #include "stdio.h" #include "stdlib.h" #include "stdafx.h" 2.3主要模块 程序一共分成三层,最底层是数据结构部分,负责存储数据,第二层是交互部分,即多项式方程部分,负责输入输出获得数据,最上层是核心的算法部分,负责处理已获得的数据。具体功能如下: ●数据结构部分 数据结构部分是整个程序的最底层,负责存储部分。因方程系数作为数据元素插入和删除操作较少,而顺序表空间利用率大且查看方便,故此程序选用顺序表保存系数。数据结构文件中写的是有关顺序表的所有基本操作以供其他文件调用。本次实验使用列主元高斯消元法作为求解方程组的方法,所以也用了二维顺序表存储数组。综上,数据结构部分文件是前两个试验的文件内容和,稍作修改。 ●常系数微分方程部分 多项式方程部分是程序的第二层,内容主要是常系数微分方程导数的计算和显示菜单部分。 ●算法部分 算法部分分为两个文件,一个是插值部分,一个是拟合部分。 插值部分文件负责有关插值的核心算法,处于整个程序最上层部分,负责拉格朗日插值法和牛顿插值法的具体实现过程。调用方程文件的函数,将获得的数据进行处理运算,将结果返回给方程主函数和输出的第二层。每种方法有两个函数,一个为仅仅实现一次插值的算法,另一个是和方程部分联系的

插值与拟合例题

1 山区地貌:在某山区测得一些地点的高程如下表:(平面区域1200<=x<=4000,1200<=y<=3600),试作出该山区的地貌图和等高线图,并对几种插值方法进行比较。

2 用给定的多项式,如y=x3-6x2+5x-3,产生一组数据(xi,yi,i=1,2,…,n),再在yi上添加随机干扰(可用rand产生(0,1)均匀分布随机数,或用rands产生N(0,1)分布随机数),然后用xi 和添加了随机干扰的yi作的3次多项式拟合,与原系数比较。如果作2或4次多项式拟合,结果如何? 3 用电压V=10伏的电池给电容器充电,电容器上t时刻的电压为,其中V0是电容器的初始电压,是充电常数。试由下面一组t,V数据确定V0,。 2用给定的多项式,如y=x3-6x2+5x-3,产生一组数据(xi,yi,i=1,2,…,n),再在yi上添加随机干扰(可用rand产生(0,1)均匀分布随机数,或用rands产生N(0,1)分布随机数),然后用xi和添加了随机干扰的yi作的3次多项式拟合,与原系数比较。 分别作1、2、4、6次多项式拟合,比较结果,体会欠拟合、过拟合现象。 解:程序如下: x=1:0.5:10; y=x.^3-6*x.^2+5*x-3; y0=y+rand; f1=polyfit(x,y0,1)%输出多项式系数 y1=polyval(f1,x);%计算各x点的拟合值 plot(x,y,'+',x,y1) grid on title('一次拟合曲线'); figure(2); f2=polyfit(x,y0,2)%2次多项式拟合 y2=polyval(f2,x); plot(x,y,'+',x,y2);

数据插值与数据拟合

数据插值与数据拟合 1、一维数据插值: y=interp1(x0,y0,x,’method’) ‘method’共有四种方法选择: ‘nearest’ 最近点插值法取较近点的值 ‘linear’线性插值法用直线连接数据点 ‘spline’样条插值法用三次样条曲线通过数据点 ‘cubic’立方插值法用三次曲线通过数据点 例:对,,用个节点(等分)作上述四种插值,用m=21个插值点(等分)作图比较结果; 练习: 根据程序washu.可得,x=0:3的193个数据,即对应得y值,现在将 x=0:56图形形状不变 从而得到x=1:56的对应的y值,并且比较分析,哪一种插值效果好 2、 数据拟合 P=polyfit(x,y,n)返回系数从高到低 polyval(p,x) 例、在化工生产中获得的氯气的等级随生产时间下降。假定在时,与之间有如下形式的非线性模型: 现收集了44组数据: 80.49160.43280.41 80.49180.46280.40 100.48180.45300.40 100.47200.42300.40 100.48200.42300.38 100.47200.43320.41 120.46200.41320.40 120.46220.41340.40 120.45220.40360.41 120.43240.42360.38

140.45240.40380.40 140.43240.40380.40 140.43260.41400.39 160.44260.40420.39 160.43260.41 要求利用该数据求的值,以确定模型。 练习 问题1: N P K 施肥量(kg/ha) 产量 (t/ha) 施肥量 (kg/ha) 产量 (t/ha) 施肥量 (kg/ha) 产量 (t/ha) 0 34 67 101 135 202 259 336 404 47115.18 21.36 25.72 32.29 34.03 39.45 43.15 43.46 40.83 30.75 24 49 73 98 147 196 245 294 342 33.46 32.47 36.06 37.96 41.04 40.09 41.26 42.17 40.36 42.73 47 93 140 186 279 372 465 558 651 18.98 27.35 34.86 38.52 38.44 37.73 38.43 43.87 42.77 46.22 (1)将上面第一个表中以施肥量为自变量n,产量为函数y,用最小二乘法拟合函数,输出a1,b1,c1的值,给出拟合误差R^2,并进行图形比较(2) 将上面第二个表中以施肥量为自变量p,产量为函数y,用最小二乘法拟合函数,输出a,b的值,给出拟合误差R^2,并进行图形比较 (3) 将上面第三个表中以施肥量为自变量k,产量为函数y,用最小二乘法拟合函数,输出a3,b3,c3的值,给出拟合误差R^2,并进行图形比较Quadratic: Compound:

数值分析实验插值与拟合

《数值分析》课程实验一:插值与拟合 一、实验目的 1. 理解插值的基本原理,掌握多项式插值的概念、存在唯一性; 2. 编写MATLAB 程序实现Lagrange 插值和Newton 插值,验证Runge 现象; 3. 通过比较不同次数的多项式拟合效果,理解多项式拟合的基本原理; 4. 编写MATLAB 程序实现最小二乘多项式曲线拟合。 二、实验内容 1. 用Lagrange 插值和Newton 插值找经过点(-3, -1), (0, 2), (3, -2), (6, 10)的三次插值公式,并编写MATLAB 程序绘制出三次插值公式的图形。 2. 设 ]5,5[,11 )(2 -∈+= x x x f 如果用等距节点x i = -5 + 10i /n (i = 0, 1, 2, …, n )上的Lagrange 插值多项式L n (x )去逼近它。不妨取n = 5和n = 10,编写MATLAB 程序绘制出L 5(x )和L 10(x )的图像。 3. 在某冶炼过程中,根据统计数据的含碳量与时间关系如下表,试求含碳量与时间t 的拟合曲线。

(1) 用最小二乘法进行曲线拟合; (2) 编写MATLAB 程序绘制出曲线拟合图。 三、实验步骤 1. (1) Lagrange 插值法:在线性空间P n 中找到满足条件: ?? ?≠===j i j i x l ij j i , 0,, 1)(δ 的一组基函数{}n i i x l 0)(=,l i (x )的表达式为 ∏ ≠==--= n i j j j i j i n i x x x x x l ,0),,1,0()( 有了基函数{}n i i x l 0)(=,n 次插值多项式就可表示为 ∑==n i i i n x l y x L 0)()( (2) Newton 插值法:设x 0, x 1, …, x n 是一组互异的节点,y i = f (x i ) (i = 0, 1, 2, …, n ),f (x )在处的n 阶差商定义为 1102110] ,,,[],,,[],,,[x x x x x f x x x f x x x f n n n n --= - 则n 次多项式 ) ())(](,,[) )(](,,[)](,[)()(11010102100100----++--+-+=n n n x x x x x x x x x f x x x x x x x f x x x x f x f x N 差商表的构造过程:

Matlab中插值拟合函数汇总和使用说明

Matlab中插值拟合函数汇总和使用说明 命令1 interp1 功能一维数据插值(表格查找)。该命令对数据点之间计算内插值。它找出一元函数f(x)在中间点的数值。其中函数f(x)由所给数据决定。 x:原始数据点 Y:原始数据点 xi:插值点 Yi:插值点 格式 (1)yi = interp1(x,Y,xi) 返回插值向量yi,每一元素对应于参量xi,同时由向量x 与Y 的内插值决定。参量x 指定数据Y 的点。 若Y 为一矩阵,则按Y 的每列计算。yi 是阶数为 length(xi)*size(Y,2)的输出矩阵。 (2)yi = interp1(Y,xi) 假定x=1:N,其中N 为向量Y 的长度,或者为矩阵Y 的行数。(3)yi = interp1(x,Y,xi,method) 用指定的算法计算插值: ’nearest’:最近邻点插值,直接完成计算; ’linear’:线性插值(缺省方式),直接完成计算; ’spline’:三次样条函数插值。对于该方法,命令interp1 调用

函数spline、ppval、mkpp、umkpp。这些命令生成一系列用于分段多项式操作的函数。命令spline 用它们执行三次样条函数插值; ’pchip’:分段三次Hermite 插值。对于该方法,命令interp1 调用函数pchip,用于对向量x 与y 执行分段三次内插值。该方法保留单调性与数据的外形; ’cubic’:与’pchip’操作相同; ’v5cubic’:在MATLAB 5.0 中的三次插值。 对于超出x 范围的xi 的分量,使用方 法’nearest’、’linear’、’v5cubic’的插值算法,相应地将返回NaN。对其他的方法,interp1 将对超出的分量执行外插值算法。 (4)yi = interp1(x,Y,xi,method,'extrap') 对于超出x 范围的xi 中的分量将执行特殊的外插值法extrap。(5)yi = interp1(x,Y,xi,method,extrapval) 确定超出x 范围的xi 中的分量的外插值extrapval,其值通常取NaN 或0。 例1 1. 2.>>x = 0:10; y = x.*sin(x); 3.>>xx = 0:.25:10; yy = interp1(x,y,xx); 4.>>plot(x,y,'kd',xx,yy) 例2 1.

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

曲线拟合的数值计算方法实验 郑发进 2012042020022 【摘要】实际工作中,变量间未必都有线性关系,如服药后血药浓度与时间的关系;疾病疗效与疗程长短的关系;毒物剂量与致死率的关系等常呈曲线关系。曲线拟合(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=(c1,c2,…c n)是一些待定参数。

插值和拟合参考答案

插值和拟合 实验目的:了解数值分析建模的方法,掌握用Matlab进行曲线拟合的方法,理解用插值法建模的思想,运用Matlab一些命令及编程实现插值建模。 实验要求:理解曲线拟合和插值方法的思想,熟悉Matlab相关的命令,完成相应的练习,并将操作过程、程序及结果记录下来。 实验内容: 一、插值 1.插值的基本思想 ·已知有n +1个节点(xj,yj),j = 0,1,…, n,其中xj互不相同,节点(xj, yj)可看成由某个函数y= f (x)产生; ·构造一个相对简单的函数y=P(x); ·使P通过全部节点,即P (xk) = yk,k=0,1,…, n ; ·用P (x)作为函数f ( x )的近似。 2.用MA TLAB作一维插值计算 yi=interp1(x,y,xi,'method') 注:yi—xi处的插值结果;x,y—插值节点;xi—被插值点;method—插值方法(‘nearest’:最邻近插值;‘linear’:线性插值;‘spline’:三次样条插值;‘cubic’:立方插值;缺省时:线性插值)。注意:所有的插值方法都要求x是单调的,并且xi不能够超过x的范围。 练习1:机床加工问题 机翼断面下的轮廓线上的数据如下表: x 0 3 5 7 9 11 12 13 14 15 y 0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6 用程控铣床加工机翼断面的下轮廓线时 每一刀只能沿x方向和y方向走非常小的一步。 表3-1给出了下轮廓线上的部分数据 但工艺要求铣床沿x方向每次只能移动0.1单位. 这时需求出当x坐标每改变0.1单位时的y坐标。 试完成加工所需的数据,画出曲线. 步骤1:用x0,y0两向量表示插值节点; 步骤2:被插值点x=0:0.1:15; y=interp1(x0,y0,x,'spline'); 步骤3:plot(x0,y0,'k+',x,y,'r') grid on >> x0=[0 3 5 7 9 11 12 13 14 15 ]; >> y0=[0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6 ]; >> x=0:0.1:15;y=interp1(x0,y0,x,'spline');plot(x0,y0,'k+',x,y,'r') grid on

相关文档
最新文档