当前位置:文档之家› 第三章 插值方法与数据拟合

第三章 插值方法与数据拟合

第三章 插值方法与数据拟合
第三章 插值方法与数据拟合

第三章 插值方法与数据拟合

所讨论的问题给复杂的函数

()f x 找一简单的函数()p x 如多项式、三角函数

等,并让其满足一定的条件,让其近似的取代原函数

()f x 。

或 有一数据表格,我们需要找一函数取近似的表征该表数据。

§1 拉格朗日(L a g r a n g e )插值

在函数类中多项式具有最简单的性质。

1230123()...n n p x a a x a x a x a x =+++++

()y f x =在区间[a ,b ]连续的实函数已知在该区间上n +1个不同点i x 的

函数值()1,2,...,i

i y f x i n ==

或 有数据表有1n +对数据 1,2,...,i i

x y i n →= 插值节点

我们需要找一个n 次多项式

1230123()...n n p x a a x a x a x a x =+++++

使得在这些点上函数值等于插值节点的值。

()i i y p x =

1、线性插值

已知两个点的函数值:0

011x y x y →→

做一线性函数使得在两个节点上函数值为节点值。

0011()

()y p x y p x ==

函数为:

0011

01

010110

()()()p x l x y l x y x x x x y y x x x x =+--=+--

基函数()i l x 为一次函数,且在节点上 1()0j i

i j j i

x x l x x x =??=?

≠??

几何意义:过两点做直线。按x 变化量平均。

2、抛物线插值

已知三个点的函数值:0

01122x y x y x y →→→

做二次函数使得在三个节点上函数值为节点值。

001122()

()()y p x y p x y p x ===

函数为:

001122

0012

21012010210122021

()()()()p x l x y l x y l x y x x x x x x x x x x x x y y y x x x x x x x x x x x x =++------=++------ 基函数()i l x 为二次函数,且在节点上 1()0j i i j j i

x x l x x x =??=?

≠??

3、拉格朗日插值

已知n +1个点的函数值:0

011,....,n n x y x y x y →→→ 做n 次函数使得在n +1个节点上函数值为节点值。

0011()

(),...,

()n n y p x y p x y p x ===

函数为:

001122()()()(),...,()n n p x l x y l x y l x y l x y =++++

基函数()i l x 为n 次函数,且在节点上 1()0j i

i j j i

x x l x x x =??=?

≠??

12

0102002110121...........

n n n n x x x x x x y x x x x x x x x x x x x y x x x x x x ---=------+---+

01110111012021

...........

...i i n i i i i i i i i n n n n n n n x x x x x x x x x x y x x x x x x x x x x x x x x x x y x x x x x x -+-+-------+-----+---+---

为了程序设计我们作如下推导:

011

0011

1

00

.....

.....n

n

j j j j j j

j n

n j j i n

j j i j

n j

j i

x x x x y y x x x x x x x x y y x x x x ==≠-==≠--=++----+++--∏

0n

n

j

i

i j i

j

j i

x x y x x

==≠-=-∑

程序结构是什么样子?

D I M

E N S I O N X (N ),Y (N )

读入节点数据 X =.....

T 1=0.0

D O 100 I =0,N T 2=1.0 D O 200 J =0,N

I F (J .E Q .I ) G O T O 200

T 2=T 2* j

i j

x x x x --

200 C O N T I N U E T 1=T 1+T 2*i y

100 C O N T I N U E W R I T E (*,*)X ,T 1 S T O P E N D

拉格朗日插值的唯一性 已知n +1个点的函数值:0011,....,n n x y x y x y →→→

做n 次函数

1230123()...n n p x a a x a x a x a x =+++++

使得在n +1个节点上函数值为节点值。

0011()

(),...,()n n y p x y p x y p x ===

即:

1230102030001230112131111230122232221230123...................n

n n n n n n

n n n n n n a a x a x a x a x y a a x a x a x a x y a a x a x a x a x y a a x a x a x a x y ?+++++=?+++++=??+++++=???

?+++++=?

求得系数0123,,,,...,n a a a a a 则多项式确定 线性方程组,系数矩阵对应的行列式:

12300

00

1

2

31

11112

322

2212

31...1...1 0

.......1...n n

n n n

n

n n

x x x x x x x x x x x x x x x x ≠范德蒙(V a n d e r m o n d e )行列式

所以方程有唯一解。所以多项式唯一。

§2、牛顿插值公式 差分、差商

定义 4.1 称

100110

()()(,)f x f x f x x x x -=-为函数的()f x 的一阶差商,

120101220

(,)(,)

(,,)f x x f x x f x x x x x -=-为()f x 的二阶差商。

一般地,

101010

(,...,)(,...,)

(,,...,)n n n n f x x f x x f x x x x x --=

-

()f x 的n 阶差商。为统一起见,补充定义0()f x 为零阶差商。

由差商定义,显然有

01010110

()()

(,)f x f x f x x x x x x =+

--

120101220

012010210122021(,)(,)

(,,)()()()()()()()()()

f x x f x x f x x x x x f x f x f x x x x x x x x x x x x x -=

-=++

------

如此类推,可以证明

010

011()

(,,...,)()...()()...()

n

j n j j j j j j j n f x f x x x x x x x x x x x =-+=----∑

由此看出,差商的值与节点01,,...,n x x x 的排列次序无关,即

011012,0(,,...,)(,,...,)...(,,...,)n n n f x x x f x x x f x x x x ===这

种性质称为差商对称性。

定义4.2 设函数()y f x =在等距节点0(0,1,...,)i x x ih i n =+=上

的函数值为

()i i f x f =,其中h 为常数,称做步长。称

1i i i f f f +?=- 向前差分 1i i i f f f -?=- 向后差分

112

2

(/2)(/2)i i i i i f f x h f x h f

f

δ+-

=+--=- 中心差分 分别为()f x 在i x 处以h 为步长的一阶向前差分,一阶向后差分和一阶中心

差分。

符号?、?、δ分别称为向前差分算子,向后差分算子和中心差分算子。

由一阶差分的定义出发,可定义二阶差分

21212i i i i i i f f f f f f +++?=?-?=-+, 21122i i i i i i f f f f f f ---?=?-?=-+,

211112

2

2i i i i i i f f

f

f f f δδδ+-+-=-=-+。

一般地刻定义n 阶差分为

111n n n i i i f f f --+?=?-? 111n n n i i i f f f ---?=?-?

11112

2

n n n i i i f f

f

δδδ--+

-

=- 如果令i

i If f =,1i i Ef f +=,则称I

为不变算子,E 为移位算子。由于

1()i i i i i i f f f Ef If E I f +?=-=-=-,

于是

E I ?=-。

同理可得

1I E -?=-,

1/21/2E E δ=-

牛顿插值公式

有了差商的概念,前面介绍的线性插值与抛物插值可表示为

11()()(,)()k k k k N x f x f x x x x +=+-,

抛物插值

2111111()()(,)()

(,,)()()k k k k k k k k k N x f x f x x x x f x x x x x x x ----+-=+-+--

事实上,按差商定义

000()()(,)()f x f x f x x x x =+-,

0010121(,)(,)(,,)()f x x f x x f x x x x x =+-,

0101201220110101(,,)(,,)(,,,)()(,,...,,)(,,...,)(,,...,,)()

n n n n f x x x f x x x f x x x x x x f x x x x f x x x f x x x x x x -=+-=+-

反复用后一个式子代入前面的式子,可得

001001201010110101()()(,)()(,,)()()(,,...,)()()...()(,,...,,)()()...()

n n n n f x f x f x x x x f x x x x x x x f x x x x x x x x x f x x x x x x x x x x -=+-+--+

+---+--- 记

001001011()()(,)()...(,,...,)()()...()n n n N x f x f x x x x f x x x x x x x x x -=+-+

+--- (*)

0101()(,,...,,)()()...()n n n R x f x x x x x x x x x x =---(**)

于是

()()()n n f x N x R x =+

由于

()0

(0,1,2,...,)n i R x i n ==,

故必有

()()

(0,1,2,...,)n i i N x f x i n ==

所以式(*)为n 次插值多项式,由插值多项式的唯一性讨论可知

()()n n N x L x ≡,

且有

(1)01()

(,,...,,)(1)!n n f f x x x x n ξ+=

+。

式(*)称作牛顿基本插值公式,它的各项系数就是函数的各阶差商,每增加一个插值节点,只需在原来的基础上多计算一项,这一性质称作牛顿插值公式的承继性。

利用牛顿插值公式时,一般分两步: 第一步:造差商表 节

点 函数值 一阶差商

二阶差商 三阶差商 。。。。 X 0 X 1 X 2 X 3 X 4 X 5 … X n F (x 0) F (x 1) F (x 2) F (x 3) F (x 4) F (x 5) …

F (x n )

F (x 0,x 1) F (x 1,x 2) F (x 2,x 3) F (x 3,x 4) F (x 4,x 5) …

F (x n -1,x n )

F (x 0,x 1,x 2) F (x 1,x 2,x 3) F (x 2,x 3,x 4) F (x 3,x 4,x 5) …

F (x n -2,x n -1,x n )

F (x 0,x 1,x 2,x 3) F (x 1,x 2,x 3,x 4) F (x 2,x 3,x 4,x 5) …

F (x n -3,x n -2,x n -1,x n )

第二步:利用

001001011()()(,)()...(,,...,)()()...()n n n N x f x f x x x x f x x x x x x x x x -=+-+

+---

例如:节点表 i 0 1 2 3 4 5 X i 0.0 1.0 2.0 3.0 4.0 5.0 F (x i ) 0.0

2.0

12.0

42.0

116.0

282.0

差商表 X i

F (x i )

一阶

二阶

三阶

四阶

五阶

1 2 3 4

0 2 12 42

2 10 30

4 10

2

5 6

116 282

74 166

22 46

4 8

0.5 1

0.1

500101201230123402420()()()()

()()()()()()()()()()()()

.50.1N x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x =+-+--+---+----+-----即:

5()(1)(1)(2)

(1)(2)(3)(1)(2)(3)(4)(1)(2)(3)(4)(5)

02420.50.1N x x x x x x x x x x x x x x x x =+-+--+---+----+-----

§3、厄密(H e r m i t e )插值简介

高次插值逼近效果往往不理想,原因是高次函数变化复杂。 所以节点的增加并不一定能提高节点之间多项式()n p x 与函数()f x 的逼近

程度。 例如: 函数

2

1

()1f x x =

+在区间[-5,5]进行插值,我们取1n +个等分节点进行

插值。会得到在节点上和函数值相等,节点之间误差很大。这种现象叫龙格(R u n g e )现象。

而利用分段低次多项式去逼近函数

()f x 的效果要优于光滑的高次多项式。

所以可用分段线性插值。线性插值计算简单,随节点密度增加越逼近函数,但缺点是光滑度不好(导数不连续)

分段三次厄密插值,就是要求函数值在节点上相等,函数的一阶导数也相等。 设函数()f x 在1n +个互异的节点0,1,2,...,i

x i n =上函数值和导数

为:

012012,,,...,',',',...,'n

n y y y y y y y y

进行分段插值

在区间1[,]k k x x +上作插值,使得在两端点函数值和导数值为:

11,','k k k k y y y y ++

四个方程,我们构造三次多项式:

2330123()P x a a x a x a x =+++

使得3311()

()k k k k P x y P x y ++== 3311'()''()'k k

k k P x y P x y ++==

31111()()()'()'()k k k k k k k k P x y a x y a x y x y x ββ++++=+++

则11(),(),

(),()k k k k a x a x x x ββ++为三次多项式且满足:

11,()0,()0,()0()1k k k k k k k k a x x a x x ββ++====

111111()0,,()()0,()01k k k k k k k k a a x x x x ββ++++++==== 11'()0,'()0,,''()0()1k k k k k k k k a x a x x x ββ++==== 111111'()0,'()0,'')((1

)0,k k k k k k k k a x a x x x ββ++++++====

由此可求得最后11(),(),

(),()k k k k a x a x x x ββ++

2

11112111111()(12)

0()()(12)

0[,]

k k k k k

k k k

k k

k k k k k k k

k k x x x x x x x k x x x x x x x x a x x x x k n x x x x x x x +-++++++-+--?+≤≤=?--??--=+≤≤=?--?????

略去略去

2

111

2

111

11()()0()()()0[,]k k k k k

k k k k k k k k k k x x x x x x x k x x x x x x x x x x k n x x x x x β---+++-+-?-≤≤=?-??-=-≤≤=?-?????

略去

略去

§4、数据拟合

问题的提出:有一组数据,数据很多,且往往有误差。需要有一函数反映这组数据。因为不同数据段误差不一样(可信度不同),同时数据多时函数中的参数有限,所以,并不要求函数通过每一个数据点。但函数尽可能科学的反映数据。往往要确定函数中的参数,使得某种统计偏差尽可能的小。

或者说在某函数类中找一函数()x ?,使得某判断量最小或最大。 往往取偏差的平方和:2

21

[()]m

i i i y x σ?==-∑ 最小。

或2

2

1

()[]m

i i i i

y x E ?χ=-=

最小,i E 为i y 的误差。

当函数不一样时,22,χσ的数值不一样,这种以函数为自变量,以数为函数值的函数关系数学上叫做泛函。

{}{}

{}{}

2

2

2

1

()

[(()]

)m

i i i y y y x f x x x σ?σ?=→→==-∑

一、用多项式进行最小二乘数据拟合

现在考察m 对实验数据或()y f x =的一个表函数(,)i i x y ,1,2,3,...,i m =。 函数类最简单的是多项式,于是我们首先取次数不超过n 的代数多项式{}()n P x 为H ,即取{}()n H P x =。于是当{}()()n y x P x ?=∈时有

20120

()...n

n i

i i x a a x a x a x a x ??==++++=∑,

其中01,,...,n a a a 取遍所有可能的实数就得到{}()n P x 的全体。 我们的目的就是要在{}()n P x 中找出一个函数0()n

i i i x a x ?==∑

使偏差()i i y x ?-的平方和

[]

2

011

()(,,...,)()m

n i i i a a a a y x ψψ?===-∑达到极小。

对于给定的一组数据(,)i i x y ,1,2,3,...,i m =来说,()i a ψ以01,,...,n a a a 为参数,也就是对应{}()i i P x 中一不同的()x ?,()a ψ有不同的值,于是问题归结为选取

01,,...,n a a a 使()a ψ取极小。

另外我们还要求n m <。因为当n m ≥时即1n m +>,n 次多项式由1n +个系数所决定,而数据对只有m 对,即使作出()(1,2,...,)i i x y i m ?==才m 个条件,而1m n <+,故()x ?至少还有一个自由度,它是不确定的,但此时的()x ?都使

()a ψ为0,当然就是极小了。所以对于n m ≥的问题本身就没有意义。

下面我们分几步来叙述使()a ψ达到极小的 01,,...,n a a a 的确定及最小的()a ψ值 01(,,...,)n

a a a ψ。 第一步: 01,,...,n

a a a 所满足的方程。

[]2

011

()(,,)()m

n i i i a a a a y x ψψ?===-∑ 0

()n

j j

j x a x ?==∑

根据微积分学,极小的 01,,...,n

a a a 应满足偏导数为零: 10

2()0,0,1,2,...,m n

j k j i i i i j k

y a x x k n a ψ==?=--==?∑∑。 N +1个方程 即:

1101

1

0,0,1,2,...,0,0,1,2,...,m m

n

k

j k j i i i i

i i j m

n m

k

j k j

i i i i j i y x a x x k n y x a x k n

===+===-==-==∑∑

∑∑∑∑

若令

1

1

,

m

m

k

k i i k i k i i y x T x S ====∑∑。

于是有方程组

n

j j k

k j a

S

T +==∑ 0,1,2,...,k n =。

这就是使ψ取极小的

01,,...,n a a a 应满足的方程。 解线性方程组得到,0,1,2,...,k a k n =

方程的系数矩阵为

011

21112............n n n n n n S S S S S S G S S S +++????

??=????????

我们来证明系数据正对应的行列式的值不为零。

即1det 0n G +≠,因为若1det 0n G +=,则齐次方程组1010,((,,))T n n G a a a a a +== ,就有非零解01(,,)T n a a a a = ,从而将齐次方程组第k 个方程乘以k

a 并对所有k

从0到n 作和有

00

1

100100

2

00

0()()

()n n n n m

k j

k j k j k j i k j k j i m

n n

k j

k j i i k j m

n

n

k

j k i j i i k j m

n

k k j k k a a S a a x a a x a x a x a x ++=====+============?=∑∑∑∑∑∑∑∑∑∑∑∑∑

即0

0,

1,2,...,n

k k j k a x j m ===∑

意味着n 次多项式,有不同的m 个零点,且m>n,所以,

0,1,2,...,k a k n =全为零。

二、 用函数进行最小二乘曲线拟合

现在我们将前面用多项式进行拟合的情况推广到一般函数进行拟合。 设12(),(),...,()n x x x ???是n 个在[],a b 上定义的连续函数。 所谓函数组12(),(),...,

()n x x x ???是线性相关的,就是说存在n 个不全为零

的实数01,,...,n a a a 使112

2()()...()0n n a x a x a x ???+++=在[],a b 上成立。

若上述等式在[],a b 上除非01,,...,n a a a 全为零时成立,就说12(),(),...,()n x x x ???是线性无关的。

现设12(),(),...,()n x x x ???在[],a b 上线性无关的。 设12....,

()m a x x x b y f x =<<<==在i x 之值为()i i y f x =。

引入向量记号:12((),(),...,())T

m

x x x ????=?显然?为m 维列向量。 所谓用函数12(),(),...,()n x x x ???去进行数据(,),1,2,...,i i x y i m =的最小二乘曲线拟合,就是用线性拟合

1

()()

n

k k k Q x c x ?==∑

去逼近函数()y f x =,使二者在各点i x 上偏差的加权平方和

2

121

()(,,...,)()()()m

n j j j j c c c c x f x Q x ψψω=??==-??∑ **

在由12(),(),...,()n x x x ???的一切可能的线性组合1

()n

k k

k c x ?

=∑所组成的函

数类H 中为极小。 若在 ** 中取1()1,()k k x x x ω?-==。于是使极小的问题就变成前面多项

式数据拟合了。

与前面要求n m <一样,这里应要求1n m -<或n m ≤,否则若n m >,则

n 个m 维向量12,,...,n ???,必然线性相关。

于是求 ** 的极小的问题就完全与求()a ψ的极小一样了。只不过这里是函数

12,,...,n ???,比前面复杂,所以引入了新的内积写法。

为书写简化,引进“内积” 1(,)()()()m

k l j

k

j

l

j

j x x x ??ω??==∑,

而称

1/2

21/21

(,)

(()())m

k k j k j k

j x x ??ω??===∑

为m 维列向量

k ?的范数或长度。

其中()x ω为[],a b 上给定的正连续函数,称为权函数。

2

121

()(,,...,)()()()m

n j j j j c c c c x f x Q x ψψω=??==-??∑ 1

()()n

k k k Q x c x ?==∑

第一步:建立使()c ψ取极小的c

所满足的方程。与前面一样,应有:

112()()()0m n

k j j k j i j j k i

x y c x x c ψω??==???=--=?????∑∑ 11()()()0m

n

k j j k j i j j k x y c x x ω??==??-=????

∑∑

111

()()()()()0m m n

k

j

j i

j

j

k

j

i

j

j j k x y x x c x x ω?ω??===-=∑∑∑

1

1

1

()()()()()0m

n

m

k

j j i j j k j i j j k j x y x c x x x ω?ω??===-=∑∑∑

记作:

1

(,())(,)0n

k i k i k y x c ???=-=∑

亦即(设12(,,...,)T

m

y y y y =)

1

(,)(,)1,2,...,n

k

k i i k c

y i n ???===∑

注意:上式中未知数是k c

,是个线性方程组。 写成矩阵形式为

1111211221222212(,)(,)...(,)(,)(,)(,)...(,)(,)(,)(,)...(,)(,)n n n n n n n n c y y c y c ??????????????????????????????????????

???????=?????????????????????

?????

解此方程组得到最佳拟合参数,即得到表达式1

()()n

k

k

k Q x c x ?==

∑。

三、最速下降法

很多问题都可以化成求最小值的问题。 例如1:多项式拟合

m 对实验数据或()y f x =的一个表函数(,)i i x y ,1,2,3,...,i m =。 取n 次多项式2

0120

()...n

n

i

i i x a a x a x a x a x

??==++++=∑,

其中01,,...,n a a a 时代定系数。

我们的目的就是要在{}()n P x 中找出一个函数(确定一组01,,...,n a a a )

()n

i i i x a x ?==∑使偏差()

i i y x ?-的平方和

[]

2

011

()(,,...,)()m

n i i i a a a a y x ψψ?===-∑达到极小。

例如2:函数拟合 用1

()()n

k

k

k Q x c x ?==

去逼近函数()y

f x =,使二者在各点i x 上偏差的加权平方和

2

121

()(,,...,)()()()m

n j j j j c c c c x f x Q x ψψω=??==-??∑

在由12(),(),...,()n x x x ???的一切可能的线性组合1

()n

k k

k c x ?

=∑所组成的函数

类H 中为极小。(确定一组01,,...,n c c c )。 例如3:一般拟合

m 对实据(,,)i i i x y e ,1,2,3,...,i

m

=

用()x ?拟合数据,()x ?可以是函数,也可以是很长的一段计算过程。

()x ?中有01,,...,n c c c n 个参数

{}()x ?

要确定一组参数01,,...,n c c c 使得()x ?能尽可能好的反映数据。 什么叫好呢?

对计算机来说就是一个数的大小问题,

所以你可以根据实际情况构造各种判断好坏的表达式。 常用的有:

[]

2

21

()m

i i i y x σ?==-∑ 加权重因子 []2

2

1

()()m

i

i

i

i x y x σω?==

-∑

2

21()m

i i i i y x E ?χ=??-=????∑ 加权重因子 2

21()()m i i i i i y x x E ?χω=??-=??

??

m 对实据(,,)i i i x y e ,1,2,3,...,i

m

=是确定的,

2χ的大小完全由01,,...,n c c c 确定。

也即2χ是01,,...,n c c c 的函数。2

01(,,...,)n c c c χ

例如4:方程组求解

11211212(,,...,)(,,...,)..........

(,,...,)n i n i n n n

f x x x b f x x x b f x x x b ===

构造

[]2

2121(,,...,)n

i i n i b f x x x σ==-∑ *

当是解时为零,近似解不为零,越接近零近似越好。 问题又归结为求一组数12,,....,n x x x 使得*尽可能小。

做法和前边的最小二乘法不一样,不是一次算出,而是逐次逼近。 这类求最小值问题经常用最速下降法求。 问题归结为求某函数某的最小值,不妨设函数为1(,...,)n f x x

先取一组近似参数1,...,n x x

01(,,...,)n f x x x 不为最小,记成矢量式0()f X

但随01,,...,n x x x 变化函数值也变化 变化最好使函数值减小,怎么变减小最快呢? 由数学知识我们有01(,,...,)n f x x x 的梯度矢量为

01123(,,...,)(

,,,...,)n n

df df df df

f x x x dx dx dx dx ??= 该方向就是增大最快方向,反方向就为减小最快方向。(最速下降的含义) 上式求时也可用数值球微分(后讲)。 所以

(1)

(0)1,2,3,...,i

i

i

i

df x

x

a i n dx =-=

带入01(,,...,)n f x x x 得到新值。 在此基础上再次寻找方向,继续逼近。

插值与数据拟合模型

第二讲 插值与数据拟合模型 函数插值与曲线拟合都是要根据一组数据构造一个函数作为近似,由于近似的要求不同,二者的数学方法上是完全不同的。而面对一个实际问题,究竟用插值还是拟合,有时容易确定,有时则并不明显。 在数学建模过程中,常常需要确定一个变量依存于另一个或更多的变量的关系,即函数。但实际上确定函数的形式(线性形式、乘法形式、幂指形式或其它形式)时往往没有先验的依据。只能在收集的实际数据的基础上对若干合乎理论的形式进行试验,从中选择一个最能拟合有关数据,即最有可能反映实际问题的函数形式,这就是数据拟合问题。 一、插值方法简介 插值问题的提法是,已知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、拟合实验

插值与拟合(使用插值还是拟合)

利用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

第五章插值与拟合答案—牟善军

习题5.1: Matlab程序如下: clc,clear 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); plot(x,y,'+',x,y1); grid on title('一次拟合曲线'); figure(2); f2=polyfit(x,y0,2) y2=polyval(f2,x); plot(x,y,'+',x,y2); grid on title('二次拟合曲线'); figure(3); f4=polyfit(x,y0,4) y3=polyval(f4,x); plot(x,y,'+',x,y3); grid on title('四次拟合曲线'); figure(4); f6=polyfit(x,y0,6) y4=polyval(f6,x); plot(x,y,'+',x,y4); grid on title('六次拟合曲线'); 计算结果及图如下 f1 = 43.2000 -148.8307 f2 = 10.5000 -72.3000 90.0443

f4 = 0.0000 1.0000 -6.0000 5.0000 -2.3557 f6 = -0.0000 0.0000 -0.0000 1.0000 -6.0000 5.0000 -2.3557 5.2高程数据问题解答如下:matlab程序: clc,clear x0=0:400:5600 y0=0:400:4800 z0=[1350 1370 1390 1400 1410 960 940 880 800 690 570 430 290 210 150 1370 1390 1410 1430 1440 1140 1110 1050 950 820 690 540 380 300 210 1380 1410 1430 1450 1470 1320 1280 1200 1080 940 780 620 460 370 350 1420 1430 1450 1480 1500 1550 1510 1430 1300 1200 980 850 750 550 500

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

实验三 插值法与拟合实验 一、实验目的 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’——三次插值;

第4、5讲 插值与拟合 作业参考答案

第四、五讲作业题参考答案 一、填空题 1、拉格朗日插值基函数在节点上的取值是( 0或1 )。 2、当1,1,2x =-,时()034f x =-, ,,则()f x 的二次插值多项式为 ( 2527 633 x x +- )。 3、由下列数据 所确定的唯一插值多项式的次数为( 2次 )。 4、根据插值的定义,函数()x f x e -=在[0,1]上的近似一次多项式1()P x = ( 1(1)1e x --+ ),误差估计为( 18 )。 5、在做曲线拟合时,对于拟合函数x y ax b = +,引入变量变换y =( 1 y ),x =( 1 x )来线性化数据点后,做线性拟合y a bx =+。 6、在做曲线拟合时,对于拟合函数Ax y Ce =,引入变量变换( ln()Y y = )、 X x =和B C e =来线性化数据点后,做线性拟合Y AX B =+。 7、设3()1f x x x =+-,则差商[0,1,2,3]f =( 1 )。 8、在做曲线拟合时,对于拟合函数()A f x Cx =,可使用变量变换(ln Y y =)(ln X x = )和B C e =来线性化数据点后,做线性拟合Y AX B =+。 9、设(1)1,(0)0,(1)1,(2)5,()f f f f f x -====则的三次牛顿插值多项式为 ( 3211 66x x x +-),其误差估计式为( 4()(1)(1)(2),(1,2)24f x x x x ξξ+--∈-) 10、三次样条插值函数()S x 满足:()S x 在区间[,]a b 内二阶连续可导, (),,0,1,2,,,k k k k S x y x y k n ==(已知)且满足()S x 在每一个子区间1[,] k k x x +上是( 三次多项式 )。

数学建模案例分析插值与拟合方法建模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 )。

第五章数据拟合.

第五章 数据拟合 这就是数据拟合成曲线的思想,简称为曲线拟合(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 等,对于这些曲线,拟合前须作变量代换,转化为线性函数。

matlab实现插值法和曲线拟合电子教案

m a t l a b实现插值法和 曲线拟合

插值法和曲线拟合 电子科技大学 摘要:理解拉格朗日多项式插值、分段线性插值、牛顿前插,曲线拟合,用matlab编程求解函数,用插值法和分段线性插值求解同一函数,比较插值余项;用牛顿前插公式计算函数,计算函数值;对于曲线拟 合,用不同曲线拟合数据。 关键字:拉格朗日插值多项式;分段线性插值;牛顿前插;曲线拟合 引言: 在数学物理方程中,当给定数据是不同散点时,无法确定函数表达式,求解函数就需要很大的计算量,我们有多种方法对给定的表格函数进行求解,我们这里,利用插值法和曲线拟合对函数进行求解,进一步了解函数性质,两种方法各有利弊,适合我们进行不同的散点函数求解。 正文: 一、插值法和分段线性插值 1拉格朗日多项式原理 对某个多项式函数,已知有给定的k + 1个取值点: 其中对应着自变量的位置,而对应着函数在这个位置的取值。 假设任意两个不同的x j都互不相同,那么应用拉格朗日插值公式所得到的拉格朗日插值多项式为: 其中每个为拉格朗日基本多项式(或称插值基函数),其表达式为: [3] 拉格朗日基本多项式的特点是在上取值为1,在其它的点 上取值为0。 2分段线性插值原理 给定区间[a,b], 将其分割成a=x 0

数值分析实验插值与拟合

《数值分析》课程实验一:插值与拟合 一、实验目的 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) 的图象的一条拟合曲

数值分析实验插值与拟合

《数值分析》课程实验一:插值与拟合 一、实验目的 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 差商表的构造过程:

数据插值与数据拟合

数据插值与数据拟合 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:

插值和拟合参考答案

插值和拟合 实验目的:了解数值分析建模的方法,掌握用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

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.

关于几种曲线拟合基本方法的比较

关于几种曲线拟合基本方法的比较 学院:材料科学与工程学院专业:材料学(博)姓名:郑文静学号:1014208040 在实际工作中,变量之间的关系未必都是线性关系,更多时候,它们之间呈现出了曲线关系,在科学实验或社会活动中,通过实验或观测得到一些x和y数据,为了对位置点进行研究,很多时候,我们通过曲线拟合的方式,将这些离散点近似为一条连续的曲线,从而来预测或者得到所需结果。曲线拟合的方法很多,本文中,主要讨论了曲线拟合的三种基础方法--插值法、磨光法、最小二乘法的特点,并对其在科学实验和生产实践中的应用性进行了比较。 插值法是函数逼近的一种基本方法,插值法就是通过函数在有限个点处的取值情况,估算出函数在其他点处的近似值。插值法中,选取不同的插值公式,来满足实际或运算需求,得到拟合的函数。其中,最基础的插值方法是三弯矩法,该方法是利用拉格朗日插值为基础,已知平面中的n+1个不同点,寻找一条n次多项式曲线通过这些点。该曲线具有唯一性。另外,还有三转角法,该方法是利用Henmiter插值为基础,其思路与三弯矩法相同,已知条件有所差别,在Henmiter插值中,不仅已知函数在一些点的函数值,而且,还知道它在这些点的导数值,甚至知道其高阶导数值,要求所求函数不仅满足过这些点,同时也要求其导函数,甚至高阶导函数满足条件。采用Henmiter插值法求得的多项式比拉格朗日法求得的多项式有较高的光滑逼近要求。此外,还有以分段和B-样条函数为基础的δ-基函数法,其中,样条函数是:对于[a,b]上的划分,称函数S(x)为[a,b]上关于划分△的k次样条函数,记做S k,△[a,b]。该方法避免了高次插值可能引起的大幅度波动现象,在实际中通常采用分段低次插值来提高近似程度。插值法常用于填充图像变换时像素之间的空隙。 磨光法是适应保凸性要求的数据拟合方法。积分可以改变函数的光滑度,而微商是积分的逆运算,对函数进行积分,然后在微商,可以将函数还原。而差商近似为微商,对函数积分后差商,可以将函数近似还原,同时可以更光滑,这种变换就是磨光。可以采用其他方法拟合得到函数,对于不光滑的点采用一次或多次磨光,得到更加光滑连续的函数。这种方法常用于外形设计。 最小二乘法也是函数逼近的一种基本方法。该方法不要求拟合曲线通过已知点,而是通过最小化误差的平方和寻找数据的最佳函数匹配。其解题步骤是:首先通过数据点,确定其可能所属的函数类型;然后,设出函数,并求出误差平方和的表达式;之后,由表达式对函

第五章 插值与最小二乘法

第五章 插值与最小二乘法 5.1 插值问题与插值多项式 实际问题中若给定函数是区间上的一个列表函数 ,如果,且f(x)在区间上是连续的,要求用一个简单的,便于计算的解析表达式在区间上近似f(x),使 (5.1.1) 就称为的插值函数,点称为插值节点,包含插值节点的区间称为插值区间. 通常,其中是一组在上线性 无关的函数族,表示组成的函数空间表示为 (5.1.2) 这里是(n+1)个待定常数,它可根据条件(5.1.1)确定.当 时,表示次数不超过n次的多项式集合, ,此时 (5.1.3) 称为插值多项式,如果为三角函数,则为三角插值,同理还有 分段多项式插值,有理插值等等.由于计算机上只能使用+、-、×、÷运算,故常用的就是多项式、分段多项式或有理分式,本章着重讨论多项式插值及分段多项式插值,其他插值问题不讨论. 从几何上看,插值问题就是求过n+1个点的曲线,使它近似于已给函数,如图5-1所示.

插值法是一种古老的数学方法,它来自生产实践.早在一千多年前,我国科学家在研究历法时就应用了线性插值与二次插值,但它的基本理论却是在微积分产生以后才逐步完善的,其应用也日益广泛.特别是由于计算机的使用和航空、造船、精密机械加工等实际问题的需要,使插值法在理论上和实践上得到进一步发展.尤其是近几十年发展起来的样条(Spline)插值,获得了极为广泛的应用,并成为计算机图形学的基础. 本章主要讨论如何求插值多项式、分段插值函数、三次样条插值、插值多项式的存在唯一性及误差估计等.此外,还讨论列表函数的最小二乘曲线拟合问题与正交多项式. 讲解: 插值多项式就是根据给定n+1个点 ,求一个n次多项式: 使 即 这里是n+1个待定系数,根据n+1个条件得到的方程组是关于参数 的线性方程组。当节点互异时由于系数行列式 所以解是存在唯一的。但直接求解较复杂,也得不到统一的表达式。所以通常求插值多项式不用这种方法,而使用下节给出的基函数方法。 5.2 Lagrange插值 5.2.1 线性插值与二次插值 最简单的插值问题是已知两点及,通过此两点的插值多项式是一条直线,即两点式

插值方法与数据拟合

第三章 插值方法与数据拟合 所讨论的问题给复杂的函数 ()f x 找一简单的函数()p x 如多项式、三角函数 等,并让其满足一定的条件,让其近似的取代原函数 ()f x 。 或 有一数据表格,我们需要找一函数取近似的表征该表数据。 §1 拉格朗日(L a g r a n g e )插值 在函数类中多项式具有最简单的性质。 1230123()...n n p x a a x a x a x a x =+++++ 设 ()y f x =在区间[a ,b ]连续的实函数已知在该区间上n +1个不同点i x 的函 数值()1,2,...,i i y f x i n == 或 有数据表有1n +对数据 1,2,...,i i x y i n →= 插值节点 我们需要找一个n 次多项式 1230123()...n n p x a a x a x a x a x =+++++ 使得在这些点上函数值等于插值节点的值。 ()i i y p x = 1、线性插值 已知两个点的函数值:0 011x y x y →→ 做一线性函数使得在两个节点上函数值为节点值。 0011() ()y p x y p x == 函数为:

0011 01 010110 ()()()p x l x y l x y x x x x y y x x x x =+--=+-- 基函数()i l x 为一次函数,且在节点上 1()0j i i j j i x x l x x x =??=?≠?? 几何意义:过两点做直线。按x 变化量平均。 2、抛物线插值 已知三个点的函数值:0 01122x y x y x y →→→ 做二次函数使得在三个节点上函数值为节点值。 001122() ()()y p x y p x y p x === 函数为: 001122 0012 21012010210122021 ()()()()p x l x y l x y l x y x x x x x x x x x x x x y y y x x x x x x x x x x x x =++------=++------ 基函数()i l x 为二次函数,且在节点上 1()0j i i j j i x x l x x x =??=?≠?? 3、拉格朗日插值 已知n +1个点的函数值:0 011,....,n n x y x y x y →→→ 做n 次函数使得在n +1个节点上函数值为节点值。 0011() (),...,()n n y p x y p x y p x === 函数为:

相关主题
文本预览
相关文档 最新文档