实验题目用正交多项式做小二乘曲线拟合

合集下载

数值分析--32正交多项式与最小二乘拟合

数值分析--32正交多项式与最小二乘拟合
多项式 /* generalized polynomial */. 常见多项式:
j 0 n
{ j(x) = x j } 对应代数多项式 /* algebraic polynomial */
{ j(x) = cos jx }、{ j(x) = sin jx } { j(x), j(x) }对应三 角多项式 /* trigonometric polynomial */ { j(x) = e kj x , ki kj } 对应指数多项式 /* exponential
n
定理 Ba = c 存在唯一解 0(x), 1(x), … , n(x) 线性无关。
证明:若存在一组系数 {i } 使得 0 0 + 1 1 + ... + n n 0 则等式两边分别与0, 1, … , n作内积,得到:
0 ( 0 , 0 ) + 1 ( 1 , 0 ) + ... + n ( n , 0 ) 0 ( , ) + ( , ) + ... + ( , ) 0 1 1 1 n n 1 0 0 1 . . . ( , ) + ( , ) + ... + ( , ) 0 1 1 n n n n 0 0 n
1 2 49 3 y P( x) x + x 2 10 2
cond ( B ) 7623
|| B || 484,
|| B
1
||
63 4
§6 Orthogonal Polynomials & L-S Approximation
j 例:连续型拟合中,取 j ( x) x , ( x) 1, y( x) C[0, 1]

数值分析论文--曲线拟合的最小二乘法

数值分析论文--曲线拟合的最小二乘法

---------------------------------------------------------------最新资料推荐------------------------------------------------------ 数值分析论文--曲线拟合的最小二乘法曲线拟合的最小二乘法姓名:徐志超学号:2019730059 专业:材料工程学院:材料科学与工程学院科目:数值分析曲线拟合的最小二乘法一、目的和意义在物理实验中经常要观测两个有函数关系的物理量。

根据两个量的许多组观测数据来确定它们的函数曲线,这就是实验数据处理中的曲线拟合问题。

这类问题通常有两种情况:一种是两个观测量 x 与 y 之间的函数形式已知,但一些参数未知,需要确定未知参数的最佳估计值;另一种是 x 与 y 之间的函数形式还不知道,需要找出它们之间的经验公式。

后一种情况常假设 x 与 y 之间的关系是一个待定的多项式,多项式系数就是待定的未知参数,从而可采用类似于前一种情况的处理方法。

在两个观测量中,往往总有一个量精度比另一个高得多,为简单起见把精度较高的观测量看作没有误差,并把这个观测量选作x,而把所有的误差只认为是y 的误差。

设 x 和 y 的函数关系由理论公式 y=f(x; c1, c2, cm)1 / 13(0-0-1)给出,其中 c1, c2, cm 是 m 个要通过实验确定的参数。

对于每组观测数据(xi, yi) i=1, 2,, N。

都对应于 xy 平面上一个点。

若不存在测量误差,则这些数据点都准确落在理论曲线上。

只要选取m 组测量值代入式(0-0-1),便得到方程组yi=f (x;c1,c2,cm)(0-0-2)式中 i=1,2,, m.求 m 个方程的联立解即得 m 个参数的数值。

显然Nm 时,参数不能确定。

在 Nm 的情况下,式(0-0-2)成为矛盾方程组,不能直接用解方程的方法求得 m 个参数值,只能用曲线拟合的方法来处理。

计算方法 第三章曲线拟合的最小二乘法20191103

计算方法 第三章曲线拟合的最小二乘法20191103

§2 多项式拟合函数
例3.1 根据如下离散数据拟合曲线并估计误差
x 1 23 4 6 7 8 y 2 36 7 5 3 2
解: step1: 描点
7
*
step2: 从图形可以看出拟
6 5
*
合曲线为一条抛物线:
4
y c0 c1 x c2 x2
3 2 1
* *
* * *
step3: 根据基函数给出法

18
定理 法方程的解是存在且唯一的。
证: 法方程组的系数矩阵为
(0 ,0 ) (1 ,0 )
G
(0
,1
)
(1 ,1 )
(0 ,n ) (1 ,n )
(n ,0 )
(
n
,
1
)
(n ,n )
因为0( x),1( x), ...,n( x)在[a, b]上线性无关,
所以 G 0,故法方程 GC F 的解存在且唯一。
第三章 曲线拟合的最小二乘法
2
最小二乘拟合曲线
第三章 曲线拟合的最小二乘
2021/6/21

3
三次样条函数插值曲线
第三章 曲线拟合的最小二乘
2021/6/21

4
Lagrange插值曲线
第三章 曲线拟合的最小二乘
2021/6/21

5
一、数据拟合的最小二乘法的思想
已知离散数据: ( xi , yi ), i=0,1,2,…,m ,假设我们用函
便得到最小二乘拟合曲线
n
* ( x) a*j j ( x) j0
为了便于求解,我们再对法方程组的导出作进一步分析。
第三章 曲线拟合的最小二乘

通过最小2乘法和多项式拟合求解线性方程。

通过最小2乘法和多项式拟合求解线性方程。

《Matlab实验报告》实验序号:01 日期:2011年10月2日问题背景描述:有一组测试数据如下表,数据具有Y=x2的变化趋势,用最小二乘法求解Y。

X 1 1.5 2 2.5 3 3.5 4 4.5 5Y —1.4 2.7 3 5.9 8.4 12.2 16.6 18.8 26.2实验目的:1.学会用MA TLAB软件求解线性代数问题。

2. 通过实例学习多项式拟合和使用最小2乘法的超定系统。

实验原理与数学模型:多项式拟合,最小2乘法,实验所用软件及版本:Matlab6.1主要内容(要点):通过最小2乘法和多项式拟合求解线性方程。

实验过程记录(含基本步骤、主要程序清单及异常情况记录等):方法一:最小2乘法程序如下:x=[1 1.5 2 2.5 3 3.5 4 4.5 5]'y=[-1.4 2.7 3 5.9 8.4 12.2 16.6 18.8 26.2]'e=[ones(size(x)) x.^2]c=e\y;x1=[1:0.1:5]';y1=[ones(size(x1)),x1.^2]*c;plot(x,y,'ro',x1,y1,'k')实验结果:由图可知拟合效果很好,故:y=x2方法二:多项式拟合程序如下:x=[1 1.5 2 2.5 3 3.5 4 4.5 5]'y=[-1.4 2.7 3 5.9 8.4 12.2 16.6 18.8 26.2]'e=[ones(size(x)) x.^2];c=lsqlin(e,y);x1=[1:0.1:5]'y1=[ones(size(x1)),x1.^2]*c;plot(x,y,'w0',x1,y1,'k')实验结果:由图可知拟合效果较好,故:y=x2思考与深入:。

Lab04.曲线拟合的最小二乘法实验

Lab04.曲线拟合的最小二乘法实验

Lab04.曲线拟合的最小二乘法实验【实验目的和要求】1.让学生体验曲线拟合的最小二乘法,加深对曲线拟合的最小二乘法的理解;2.掌握函数ployfit和函数lsqcurvefit功能和使用方法,分别用这两个函数进行多项式拟合和非多项式拟合。

【实验内容】1.在Matlab命令窗口,用help命令查询函数ployfit和函数lsqcurvefit功能和使用方法。

2.用多项式y=x3-6x2+5x-3,产生一组数据(x i,y i)(i=1,2,…,n),再在y i上添加随机干扰(可用rand产生(0,1)均匀分布随机数,或用randn产生N(0,1)均匀分布随机数),然后对x i和添加了随机干扰的y i用Matlab提供的函数ployfit用3次多项式拟合,将结果与原系数比较。

再作2或4次多项式拟合,分析所得结果。

3.用电压V=10伏的电池给电容器充电,电容器上t时刻的电压为τt eVVVtv ---=)()(,其中V0是电容器的初始电压,τ是充电常数。

对于下面的一组t,v数据,用Matlab提供的函数lsqcurvefit确定V和τ。

【实验仪器与软件】1.CPU主频在1GHz以上,内存在128Mb以上的PC;2.Matlab 6.0及以上版本。

实验讲评:实验成绩:评阅教师:年月日Lab04.曲线拟合的最小二乘法实验1.在Matlab命令窗口,用help命令查询函数ployfit和函数lsqcurvefit功能和使用方法。

在MATLAB中,用polyfit函数来求得最小二乘拟合多项式的系数,polyfit函数的调用格式为:[P,S]=polyfit(X,Y,m)。

函数根据采样点X和采样点函数值Y,产生一个m次多项式P及其在采样点的误差向量S。

其中X,Y是两个等长的向量,P是一个长度为m+1的向量,P的元素为多项式系数,得到的多项式为降序。

同样可以用lsqcurvefit函数来求得最小二乘拟合多项式的系数,调用格式为:x = lsqcurvefit(fun,x0,xdata,ydata)。

用正交多项式做最小二乘拟合

用正交多项式做最小二乘拟合

(5.10)
(k 1,2,, n 1).
这里 Pk (x) 是首项系数为1的 k 次多项式, 根据 Pk (x) 的 正交性,得
3
m




k 1
( xi ) xi Pk2 ( xi )
i0
m
( xi )Pk2 ( xi )
( xPk ( x), Pk ( x)) (Pk ( x), Pk ( x))
3.5.2 用正交多项式做最小二乘拟合
用最小二乘法得到的法方程组(5.6),其系数矩阵
G是病态的.
如果 0 (x),1(x),,n (x) 是关于点集 {xi} (i 0,1,, m) 带权 (xi ) (i 0,1,, m)
函数族,即
( j ,k )

m i0
(xi ) j (xi )k (xi )
8
m
ak*

( f , Pk ) (Pk , Pk )

( xi ) f ( xi )Pk ( xi )
i0
m
( xi )Pk2 ( xi )
i0
(k 0,1,, n),
并逐步把 ak*Pk (x)累加到 S (x) 中去,最后就可得到所求的
拟合曲线
y S (x) a0*P0 (x) a1*P1(x) an*Pn (x). 这里 n可事先给定或在计算过程中根据误差确定.
bk
sin
kx),
其中
n m,
ak

ห้องสมุดไป่ตู้
2 2m 1
2m j 0
fj
cos 2πjk 2m 1
(k 0,1,, m),
16

正交最小二乘曲线拟合法

正交最小二乘曲线拟合法

第32卷第3期2007年5月测绘科学Science of Surveying and Mapp ingVol 132No 13May 1作者简介:丁克良(1968Ο),男,河南淮阳人,工程师,博士,主要从事现代测量数据处理和GPS 卫星导航教学和研究工作。

E Οmail:hyiding@1631com收稿日期:2006Ο11Ο07基金项目:国家自然科学基金项目(40504003)正交最小二乘曲线拟合法丁克良①,欧吉坤②,赵春梅③(①北京建筑工程学院测绘和城市信息学院测绘工程系,北京 100044;②中国科学院测量与地球物理研究所,武汉 430077;③中国测绘科学研究院大地测量与地球动力学研究所,北京 100039)【摘 要】在最小二乘曲线拟合中,自变量的误差常常被略而不计,提出采用正交最小二乘法拟合曲线。

该方法以正交距离残差平方和极小为准则,同时顾及了因变量和自变量的误差;基于间接平差原理详细推导了相关模型和算法。

实际计算表明,采用正交最小二乘法拟合曲线,拟合效果整体上优于普通最小二乘法。

【关键词】最小二乘;曲线拟合;正交最小二乘;精度评定【中图分类号】P22 【文献标识码】A 【文章编号】1009Ο2307(2007)03Ο0018Ο031 引言曲线拟合问题是诸多试验和工程实际中广泛应用的数据处理方法。

测量工作中,通常根据测定的一系列坐标点,选取一定的数学模型拟合直线、二次曲线或者其他高次曲线。

拟合的目的是根据测量点寻求曲线的特征,求解曲线的相关参数,为工程建设管理提供必要的基础信息。

如在既有铁路工程、又有公路工程测量中,常常根据一系列的测量点和线路工程的特点求解线路工程的线形特征,为线路工程维修养护、二线工程建设、行车安全分析等提供必要的基础信息[1Ο4]。

在GI S 数据获取中,通常根据一系列的实际测量点或者是地图数字化点拟合道路、水系、等高线等曲线[5,6]。

这类问题的做法通常是根据线形的特点选取一定的数学模型,以待求的线形参数作为未知参数,以测点的纵坐标或者横坐标为观测值,采用最小二乘法处理。

拟合多项式的最小二乘法

拟合多项式的最小二乘法

数值计算理论报告题目:有一只对温度敏感的电阻,已经测得了一组温度T 和电阻R 的数据如下,问当温度为60o C时,电阻有多大?多项式拟合:已知变量x ,y 之间的函数关系为: n n-112n n+1y=a x +a x ++a x+a通过实验获得一组{i x ,i y | i =1,2,3,···,m}测量数据,确定出系数12n+1a a a (,,,)。

当n=1时,函数为线性关系若函数为线性关系,其形式为:y=ax+b (1)式中a, b 为要用实验数据确定的常数。

由实验测得的数据是总是存在着误差,所以,把各组数据代入(1)式中,两边并不相等。

相应的作图时,数据点也并不能准确地落在公式对应的直线上,误差的的平方和为:为了使拟合出的近似曲线能尽量反映所给数据的变化趋势,要求在所有数据点上的残差|)(|||i i i y x f -=δ都较小。

为达到上述目标,可以令上述偏差的平方和最小,即min ])([)(2121=-=∑∑==ii N i i N i y x f δ称这种方法为最小二乘原则,利用这一原则确定拟合多项式)(x f 的方法即为最小二乘法多项式拟合。

按最小二乘法,当a, b 选择适当,能使为最小时y=ax+b 才是最佳曲线。

用偏导数的方法求出此式的最小值。

以上是线性拟合的基本原理。

程序:x0=[20.5, 32.7, 51.0, 73.0, 95.7]; %t 的行向量y0=[765, 826, 873, 942, 1032]; %r 的列向量%plot(x0,y0,'r'); %画连续的图形,颜色设置为红()2112∑∑=--==∂n i bx a y n i v i i in=1;P=polyfit(x0,y0,n) %生成拟合多项式xx=0:1:100;z=polyval(P,xx); %计算z的值plot(xx,z,'-b',x0,y0,'.r') %绘图legend('拟合曲线','原始数据','Location','SouthEast') %注标题xlabel('x')zz=polyval(P,60); %计算60时拟合多项式的值display(zz)当n=1时,即线性拟合。

最小二乘法的基本原理和多项式拟合

最小二乘法的基本原理和多项式拟合

最小二乘法的基本原理和多项式拟合一 最小二乘法的基本原理从整体上考虑近似函数)(x p 同所给数据点),(i i y x (i=0,1,…,m)误差i i i y x p r -=)((i=0,1,…,m)的大小,常用的方法有以下三种:一是误差i i i y x p r -=)((i=0,1,…,m)绝对值的最大值im i r ≤≤0max ,即误差 向量T m r r r r ),,(10 =的∞—范数;二是误差绝对值的和∑=mi ir 0,即误差向量r 的1—范数;三是误差平方和∑=mi ir02的算术平方根,即误差向量r 的2—范数;前两种方法简单、自然,但不便于微分运算 ,后一种方法相当于考虑 2—范数的平方,因此在曲线拟合中常采用误差平方和∑=mi ir02来 度量误差i r (i=0,1,…,m)的整体大小。

数据拟合的具体作法是:对给定数据 ),(i i y x (i=0,1,…,m),在取定的函数类Φ中,求Φ∈)(x p ,使误差i i i y x p r -=)((i=0,1,…,m)的平方和最小,即∑=mi ir2=从几何意义上讲,就是寻求与给定点),(i i y x (i=0,1,…,m)的距离平方和为最小的曲线)(x p y =(图6-1)。

函数)(x p 称为拟合函数或最小二乘解,求拟合函数)(x p 的方法称为曲线拟合的最小二乘法。

在曲线拟合中,函数类Φ可有不同的选取方法.6—1二 多项式拟合假设给定数据点),(i i y x (i=0,1,…,m),Φ为所有次数不超过)(m n n ≤的多项式构成的函数类,现求一Φ∈=∑=nk k k n x a x p 0)(,使得[]min )(00202=⎪⎭⎫⎝⎛-=-=∑∑∑===mi mi n k i k i k i i n y x a y x p I (1)[ ] ∑ = = - mi ii y x p 02 min ) (当拟合函数为多项式时,称为多项式拟合,满足式(1)的)(x p n 称为最小二乘拟合多项式。

用正交多项式做最小二乘拟合matlab

用正交多项式做最小二乘拟合matlab

用正交多项式做最小二乘拟合matlab
最小二乘拟合是一种常见的数据拟合方法,可以解决许多实际问题。

在matlab中使用正交多项式进行最小二乘拟合是一个非常有用的技巧。

正交多项式是一组特殊的多项式函数,具有许多优良的数学性质。

这些性质使得正交多项式非常适合用于最小二乘拟合。

在matlab中,我们可以使用polyfit函数来进行最小二乘拟合。

该函数可以使用正交多项式来拟合数据。

具体步骤如下:
1. 导入数据:将需要拟合的数据导入matlab中。

2. 选择正交多项式阶数:根据实际情况,选择合适的正交多项式阶数。

通常来说,阶数越高,拟合精度越好,但同时也会增加计算量和过拟合的风险。

3. 计算正交多项式系数:使用polyfit函数计算正交多项式的系数,即使用最小二乘法拟合数据。

4. 输出拟合结果:使用polyval函数在拟合曲线上进行插值,得到拟合预测结果。

在matlab中,可以使用plot函数绘制原始数据和拟合曲线进行对比。

使用正交多项式进行最小二乘拟合可以提高拟合的准确性和稳定性,适用于许多实际问题。

正交多项式曲线拟合

正交多项式曲线拟合

二乘拟合的精度优于普通最小二乘拟合, 因此在曲 线拟合中这种方法更有适用性。 ( 1)在实际工作中观测量的误差很小可以忽略 时, 还是应该采用普通最小二乘法来拟合曲线 , 这 种方法简 单实用计 算量比较 小, 因 而应用比 较广 泛。 ( 2)在正交多项式最小二乘拟合中可以看出这 种方法顾及了自变量和因变量的误差, 从理论上来 讲这种方法拟合的曲线更合理。但是这种方法在 具体计算中怎样批量的导入数据并且计算出结果 来还需要编一个程序来计算。
6162根据测量平差原理的间接平差方法对上述误差方程进行求解得bbb由间接平差的精度评定得出单位权中误差oov2k一十1实例分析本算例的目的在于比较验证笔者介绍的这种方法来拟合曲线与普通最小二乘法拟合曲线的精离散点的坐标tab1thecoordinatesofdiscretepointsy05082114125135141622532中给出的数据分别用两种方法进行拟合并且比较两种拟合方法的精度使用的两种方法都是拟合二次曲线
x1
0
j= 0
jaj x k x1 x2 xk
2 2 2
0
j- 1
yi ) ] 其实残差 ri 是到过曲线某点切线的垂直距离, 拟合 的准则为所有坐标点到拟合曲线的正交距离平方 和最小。 因此这种拟合方法称为正交距离回归 ( 丁 克良, 2010 ) (图 2), 又称正交多项式最小二乘拟合 法。 拟合曲线的观测方程可以表示为 x ^ i = x i + vxi y ^ i = y i + vyi
k

4 结论
从上述的实例分析可以看出, 正交多项式最小
Orthogonal Polyno m ial Curve F itting
ZHU X iao dong, LU T ie d ing, CH EN X i jiang ( F aculty of Geom atics , E ast China Inst itute o f T echnology , Fuzhou , JX 344000 , Ch in a) Abstract : Th is paper in troduces prin c ip le of least squares f ittin g curve and f inds the ir shortages. In view of these shortages , putting in a new least squares fitting of o rthogona l po lynom ia.l Th is way can com pensate a phenom enon th at the consequence is different in least squares f ittin g curve w hile x fitt ing y or y fitt ing x. Th is degree o f preci sio n is m ore higher than least squares f ittin g curve , and th is m ethod o f po ly nom ial coe ff icients accordin g to th e ir accuracy can independen tly choose th e iteration ti m es, m ake m ore accura te results . K ey W ords: least squares f ittin g orthogonal po ly nom ia l random erro r residua l

数值分析曲线拟合的最小二乘法实验报告

数值分析曲线拟合的最小二乘法实验报告

数值分析曲线拟合的最小二乘法实验报告数值分析曲线拟合的最小二乘法实验报告篇一:数值分析设计曲线拟合的最小二乘法曲线拟合的最小二乘法一、目的和意义在科学实验的统计方法研究中,往往要从一组实验数据?xi,yi??i?0,1,2,?,m?中,寻找自变量x与因变量y之间的函数关系y?F?x?。

由于观测数据往往不准确,因此不要求y?F?x?经过所有点?xi,yi?,而只要求在给定点xi上误差而只要求所在所有给定点xi上的误差?i?F(xi)?yi ?i?0,1,2,?,m?按某种标准最小。

若记????0,?1,?2,?,?m?,就是要求向量?的范数如果用最大范数,计算上困难较大,通常采用欧式范数?最小。

2T 作为误差度量的标准。

F?x?的函数类型往往与实验的物理背景以及数据的实际分布有关,它一般含有某些待定参数。

如果F?x?是所有待定参数的线性函数,那么相应的问题称为线性最小二乘问题,否则称为非线性最小二乘问题。

最小二乘法还是实验数据参数估计的重要工具。

这是因为这种方法比其他方法更容易理解,即使在其他方法失效的情况下,用最小二乘法还能提供解答,而且从统计学的观点分析,用该方法求得各项估计具有最优统计特征,因此这一方法也是系统识别的重要基础。

线性最小二乘问题可以借助多元微分学知识通过求解法方程组得到解答。

用最小二乘法求拟合曲线时,首先要确定S?x?的形式。

这不单纯是数学问题,还与所研究问题的运动规律以及所得观测数据?xi,yi?有关;通常要从问题的运动规律以及给定数据描图,确定S?x?的形式,并通过实际计算选出较好的结果。

为了使问题的提法更有一般性,通常把最小二乘法中的? 22 都考虑为加权平方和22 ? ????xi???S?xi??f?xi??? i?0 m 2 这里??xi??0是?a,b?上的加权函数,它表示不同点?xi,f?xi?处的数据比重不同。

?二、计算方法在某冶炼过程中,根据统计数据的含碳量与时间关系,试求含碳量y与时间t的拟合曲线。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验题目:用正交多项式做小二乘曲线拟合实验题目: 用正交多项式做最小二乘的曲线拟合 学生组号: 6 完成日期: 2011/11/27 1 实验目的针对给定数据的煤自燃监测数据中煤温与NO 22,之间的非线性关系,用正交多项式做最小二乘曲线拟合。

2 实验步骤2.1 算法原理设给定n+1个数据点:(yx kk,),k=0,1,···,n ,则根据这些节点作一个m 次的最小二乘拟合多项式pm(x )=a+x a x a a mm x +++ (2)21=x a jmj j ∑=0①其中,m ≤n,一般远小于n.。

若要构造一组次数不超过m的在给定点上正交的多项式函数系{)(x Qj(j=0,1,...,m)},则可以首先利用{)(x Qj(j=0,1,...,m)}作为基函数作最小二乘曲线的拟合,即pm(x )=)(...)()(11x x x Qq Q q Q q mm+++ ②根据②式,其中的系数qj(j=0,1,...,m)为∑∑===nk kjnk kjkjx Q x Q y q2)()(,j=0,1,...,m ③将④代入③后展开就成一般的多项式。

构造给定点上的正交多项式)(x Qj(j=0,1,...,m)的递推公式如下:⎪⎪⎩⎪⎪⎨⎧-=--=-==-+1,...,2,1),()()()()()(1)(11010m j x x x x x x x QQ Q Q Q j jj j j βαα ④其中αj=dx x jk j=0,j=0,1,...,m-1 ⑤βj=dd j j1-,j=1,2,...,m-1 ⑥∑==nk k jjx Q d2)(,j=0,1,...,m-1 ⑦则实际计算过程中,根据⑤式逐步求出个正交多项式)(x Qj,并用公式④计算出q j,并将每次计算展开后累加到拟合多项式①中。

2.2 算法步骤用三个向量B,T,S,存放多项式)(1x Qj -,)(x Q j,)(1x Qj +的系数。

(1) 构造)(0x Q ,设)(0x Q =b,根据④式,得b=1。

再根据⑦③⑤式,计算:d=n+1dy q nk k000∑==dx nk k00∑==α最后将)(0x Q q 项展开后累加到拟合多项式中,则q 0b 0=a(2)构造)(1x Q ,设)(1x Q =t+t1x ,根据递推公式④,则可知,t 0=-α0,t 1=1。

由公式⑦③⑤⑥求得,∑==nk k x Q d 0211)(dx Q y q nk kk111)(∑==dx x k kk111∑==α dd11=β最后将)(11x Q q 展开累加到拟合多项式①中,有at q a t q a 111010⇒⇒+(3)对于j=2,3,……,m,逐步递推Qj(x )根据递推公式④有Qj(x )=(x-α1-j )Q j 1-(x )-β1-j Qj 2-(x )=(x-α1-j )(tj 1-xj 1-+….+t t x 01+)-β1-j (b j 2-xj 2-+….+b b x 01+)假设Qj(x )=x s jj+xs j j 11--+…..+x s 1+s则可以得到计算sk(k=0,1,…,j )的公式:ts j j1-=t t sj j j j 2111----+-=α,111b t t s k j k k j kβα----+-= k=j-2,….,2,1,011010b t t sj k j βα----+-=然后分别根据 ⑦式③式⑤式与⑥式计算下列量:)(02x Q dk nk jj∑==)(0x Q y q kJnk kj∑==/dj)()(2x Q x x k jk nk k j∑==α/d jdd j jj1-=β再将)(x Qq Jj项展开后累加到拟合多项式①中,即有,a sq a k kjk=>+ k=j-1,….,1,0a sq j jj=>最后,,为了便于循环使用向量B,T,与S,应将向量T 传递给B ,向量S 传递送给T,即 b tk k=>,k=j-1,…,1,0t sk k=>,k=j,…,1,0在实际计算中,为了防止运算溢出,将xk用xk—x -来代替,其中x -=∑=+n k kx n 011在这种情况下,拟合多项式的形式为 )()(10x x a a px m--+=+)(22x x a --+…..+)(x x a mm--2.3 程序流程图3 实验结果分析温度数据:51.1 52.8 54.8 57.2 58.3 62.7 65.2 67.7 70.6 73.5 75.7 78.680.8 84.8 87.8 89.5 92.1 96.4 103.1 112.5 120.8 134.7 152.4 159.1氧气数据:20.13 19.9 19.61 18.98 19.61 19.32 19.73 19.59 19.38 20.18 19.98 19.58 19.74 19.26 19.59 18.77 18.66 17.47 17.01 16.33 15.95 13.76 5.91 5.43 氮气数据:79.5 79.67 79.59 80.24 80 80.31 79.35 80.1 80.37 79.7 79.78 80.1580 80.46 80.09 80.9 80.99 82.06 82.33 83.02 83.31 84.84 90.85 93.96 实验结果:注:dt(0)为误差的平方和,dt(1)为误差的绝对值之和,dt(2)误差绝对值最大值。

氧气与温度的拟合曲线:氮气与温度的拟合曲线:4 实验结论这次实验我们的拟合曲线是选择三次拟合曲线,虽说更高次的拟合曲线可以达到更好的效果,但是由于在计算机计算的过程中舍入误差的存在,使得次数高的项系数为零。

由于数据是观测得来,而我们的误差最大不超过1.4,所以误差在允许范围内,故从误差以及各方面的考虑,我们最终选择三次来拟合曲线。

为了能够达到视觉上的效果,我们在实验结果处附上了用matlab 所拟合得到的曲线,从图中可以看出,随着温度的不断增加氧气的含量在降低,且降低率随温度的增加而增加,但是对于氮气却是随着温度的增加而增加,且增加率随温度的增加而增加。

由于温度的不断增加,经过一定的化学变换,放出氮气,同时消耗氧气,而且在温度相对高时(在一定的温度范围内),其化学反应的速率快,这就是对上述结果的一个解释。

5 问题归纳与总结在本次试验中,组员在分析问题的过程中主要遇到了一下几方面的问题,下面一一表述并给出解决办法。

问题一:αj,βj分别Qj(x )之间的关系解决办法:观察公式,找出关系,将公式分解,分步求出分子分母,将分母用)(02x Q dk nk jj∑==表示。

问题2:Qj(x )的迭代问题解决办法:分别用三个向量B,T,S 分别存在)(1x Qj -,)(x Q j,)(1x Qj +的系数,用b tk k=>, t sk k=>,依次迭代问题3:系数拟合问题解决办法:将上一次正交多项式次数相等的对应系数加到下一次的系数, 即: ,a sq a k kjk=>+ k=j-1,….,1,0a sq j jj=>问题4:Qj(xk)的算法解决方法:Qj(xk)是一个j 次多项式,从j 次到1次,递减乘x 来增加次数,再加上s[k].Qj(x i)= (s s sj j jx x 21)(--++)Qj(xi)= (s s sx s j j j j x x 3212)(---+++)……..Qj (x)=xs j j+xs jj11--+…..+ xs1+s0问题5:溢出问题解决方法:由于给定温度数据过大,次数大时会出现溢出,所以采用平移思想用x--x来表示x,图像不变。

参考文献李庆扬,王能超,易大义.数值分析.北京:清华大学出版社,2008附录(源代码)#include "stdio.h"#include "math.h"double spir(double x[],double y[],int n,double a[],int m,double dt[]) {int i,j,k;double z,p,c,g,q,d1,d2,s[20],t[20],b[20];for(i=0;i<=m-1;i++)//系数的初始化a[i]=0.0;if(m>n)m=n;if(m>20)m=20;z=0.0;for(i=0;i<=n-1;i++)z=z+x[i]/(1.0*n);//温度平均值b[0]=1.0;//Q0(x)多项式系数d1=1.0*n;p=0.0;c=0.0;for(i=0;i<=n-1;i++){p=p+(x[i]-z);c=c+y[i];}c=c/d1;p=p/d1;a[0]=c*b[0];if(m>1) //构造Q1(x){t[1]=1.0;t[0]=-p;d2=0.0;c=0.0;g=0.0;for(i=0;i<=n-1;i++){q=x[i]-z-p;d2=d2+q*q;c=c+y[i]*q;g=g+(x[i]-z)*q*q;}c=c/d2;p=g/d2;q=d2/d1;d1=d2;a[1]=c*t[1];a[0]=c*t[0]+a[0];}for(j=2;j<=m-1;j++) //构造Qj(x) {s[j]=t[j-1];s[j-1]=-p*t[j-1]+t[j-2];if(j>=3)for(k=j-2;k>=1;k--)s[k]=-p*t[k]+t[k-1]-q*b[k];s[0]=-p*t[0]-q*b[0];d2=0.0;c=0.0;g=0.0;for(i=0;i<=n-1;i++){q=s[j];for(k=j-1;k>=0;k--)q=q*(x[i]-z)+s[k];d2=d2+q*q;c=c+y[i]*q;g=g+(x[i]-z)*q*q;}c=c/d2;p=g/d2;q=d2/d1;d1=d2;a[j]=c*s[j];t[j]=s[j];for(k=j-1;k>=0;k--){a[k]=c*s[k]+a[k];b[k]=t[k];t[k]=s[k];}}//计算误差的平方和、误差的绝对值之和与误差绝对值的最大值dt[0]=0.0;dt[1]=0.0;dt[2]=0.0;for(i=0;i<=n-1;i++){q=a[m-1];for(k=m-2;k>=0;k--)q=a[k]+q*(x[i]-z);p=q-y[i];if(fabs(p)>dt[2])dt[2]=fabs(p);dt[0]=dt[0]+p*p;dt[1]=dt[1]+fabs(p);}return z;}void main(){int i;double a[8],dt[3],z;double x[24]={51.1,52.8,54.8,57.2,58.3,62.7,65.2,67.7,70.6,73.5,75.7,78.6,80.8,//温度数据84.8,87.8,89.5,92.1,96.4,103.1,112.5,120.8,134.7,152.4,159.1};double y1[24]={20.13,19.9,19.61,18.98,19.61,19.32,19.73,19.59,19.38,20.18,19.98,//氧气数据19.58,19.74,19.26,19.59,18.77,18.66,17.47,17.01,16.33,15.95,13.76,5.91,5.43};double y2[24]={79.5,79.67,79.59,80.24,80,80.31,79.35,80.13,80.37,79.7,79.78,80.15,80,80.46,80.09,80.9,80.99,82.06,82.33,83.02,83.31,84.84,90.85,93.96};//氮气数据printf("----------------正交多项式拟合-------------\n");printf("输出温度数据:\n");for(i=0;i<=23;i++)printf("%lf\t",x[i]);printf("\n输出氧气数据:\n");for(i=0;i<=23;i++)printf("%lf\t",y1[i]);z=spir(x,y1,24,a,4,dt);//函数的调用来求拟合函数系数、误差printf("\n");for(i=0;i<=3;i++)printf("a(%2d)=%lf\n",i,a[i]);printf("\n");for(i=0;i<=2;i++)printf("dt(%2d)=%lf ",i,dt[i]);//误差的输出printf("\n\n");printf("输出氧气与温度拟合的正交多项式:\n\n");printf("p(x)=%lf",a[0]);for(i=1;i<=3;i++)printf("+(%lf)*(x-%lf)^%d",a[i],z,i);printf("\n\n");printf("输出温度数据:\n");for(i=0;i<=23;i++)printf("%lf\t",x[i]);printf("\n输出氮气数据:\n");for(i=0;i<=23;i++)printf("%lf\t",y2[i]);z=spir(x,y2,24,a,4,dt);//函数的调用来求拟合函数系数、误差printf("\n");for(i=0;i<=3;i++)printf("a(%2d)=%lf\n",i,a[i]);//函数系数的输出printf("\n");for(i=0;i<=2;i++)printf("dt(%2d)=%lf ",i,dt[i]);//误差的输出printf("\n\n");printf("输出氮气与温度拟合的正交多项式:\n\n");printf("y(x)=%lf",a[0]);for(i=1;i<=3;i++)printf("+(%lf)*(x-%lf)^%d",a[i],z,i);printf("\n");}。

相关文档
最新文档