数值分析--第2章 插值法
数值分析--第2章插值法
第2章 插值法
在科学研究与工程技术中,常常遇到这样的问题:由实验或测量得到一批离散样点,要求作出一条通过这些点的光滑曲线,以便满足设计要求或进行加工。反映在数学上,即已知函数在一些点上的值,寻求它的分析表达式。此外,一些函数虽有表达式,但因式子复杂,不易计算其值和进行理论分析,也需要构造一个简单函数来近似它。
解决这种问题的方法有两类:一类是给出函数)(x f 的一些样点,选定一个便于计算的函数)(x ?形式,如多项式、分式线性函数及三角多项式等,要求它通过已知样点,由此确定函数)(x ?作为)(x f 的近似,这就是插值法;另一类方法在选定近似函数的形式后,不要求近似函数过已知样点,只要求在某种意义下在这些样点上的总偏差最小。这类方法称为曲线(数据)拟合法。
设已知函数f 在区间],[b a 上的1+n 个相异点i
x 处的函数值(),0,,i
i
f f x i n ==,要求构造一个简单函数()x ?作为函数()f x 的近似表达式()()f x x ?≈,使得
()(),0,1,,i
i
i
x f x f i n ?=== (2-1) 这类问题称为插值问题。称f 为被插值函数;()x ?为插值函数;n
x x ,,0 为插值节点;(2-1)为插值条件。
若插值函数类{()}x ?是代数多项式,则相应的插值问题为代数插值。若{()}x ?是三角多项式,则相应的插值问题称为三角插值。若{()}x ?是有理分式,则相应的插值问题称为有理插值。
§1 Lagrange 插值
1.1 Lagrange 插值多项式
设函数f 在1+n 个相异点0
1
,,,n
x x x 上的值n i x f f i
i ,,1,0),( ==是已知的,在次数不超过n 的多项式集合n P 中,求()n
L x 使得
(),0,1,,n i i
L x f n n == (2-2) 定理2.1 存在惟一的多项式n
n P L ∈满足插值条件(2-2)。
证明 我们采用构造性的证明方法。假如我们能够构造出n 次多项式()i
l x ,使得
1,(),0,1,,0,i j ij
i j
l x i j n i j
δ=?===?≠?
, (2-3) 那么
∑==n
i i i n x l f x L 0)
()( (2-4)
是满足插值条件(2-2)的插值多项式。
余下的问题就是如何构造出满足式(2-3)的n 次多项式(),0,1,,i
l x i n =。由于当j i ≠时,()0,0,1,,i
j
l x i j n ==,,即111,,,,,i i n x x x x -+是()i l x 的零点,因此()i
l x 必然具有形式
∏≠=+--=----=n
i
j j j
i n i i i i x x c x x x x x x x x c x l 0110)()())(()()(
又因1)(=i
i
x l ,故∏≠=-=n
i
j j j
i i x x c 0)(,因此
∏
∏∏≠=≠=≠=--=--=
n
i
j j j
i
j n
i
j j j
i
n
i j j j
i x x x x x x x x x l 000)
()
()
()
()( (2-5)
多项式)(x L n
的惟一性是极其简单的事实,只要注意到n 次多项式只有1+n 个零点这一事实。□ 公式∑==n
i i i n x l f x L 0
)()(称为Lagrange 插值公式,相应的)
(x L n
称为Lagrange 插值多项式,0,1,,i
l i n =,称为节点n
x x ,,0 上的n 次插值基函数。
令(),0,1,,k
f x x k n ==,由插值多项式的存在惟一性可得 0
(),0,1,,n
k k
i i
i x l x x k n ===∑ (2-6)
由(2-6)知,任取()n
n
p x P ∈,那么()n
p x 均可用0
1
,,,n
l l l 线性表出。由此看出,0
1
span{,,}n
l l l 就是n
P 。在(2-6)中取0k =,则0
()1n
i
i l x ==∑。
为了今后的需要,我们引入以下记号
∏=+-=n
j j
n x x x 0
1
)()(ω (2-7)
容易求得
∑∏=≠=+-='n
m n
m
j j j n
x x x 00
1)()(ω及∏≠=+-='n
k
j j j k k n x x x 01)()(ω 将其代入插值基函数的表达式
)
()()
()
()()(110i n i n n
i j j j i j i x x x x x x x x x l ++≠='-=
--=∏
ωω 于是插值公式可写为
∑=++'-=n
i i
n i
n i
n
x x x x f x L 0
1
1)
()()
()(ωω (2-8)
1.2 插值余项及估计
称)()()(x L x f x R n
-=为Lagrange 插值多项式)(x L n
的余项. 定理 2.2 设],[b a C f n ∈,且}
1(+n f 在),(b a 内存在,)(x L n
是以n
x x ,,0 为插值节点函数f 的Lagrange 插值多项,则对],[b a 内的任意点x ,插值余项为
)
,(),()!
1()
()()()(1)1(b a x n f x L x f x R n n n ∈+=-=++ξωξ (2-9)
证明 对],[b a 上任意的点x ,且),,0( n i x x i
=≠,构造辅助函数
)
()
()
()()()(11x R x t t L t f t G n n n ++-
-=ωω
显然
)()
()
()()()(11=--=++x R x x x L x f x G n n n ωω,又由插值条件
)
,,0( 0)(n i x R i ==可知),,0( 0)(n i x G i
==,故函数)(t G 在],[b a 内至少
有2+n 个零点n
x x x ,,,0
。根据罗尔(Rolle )定理,函数)(t G '在),(b a 内至少存在1+n 个零点,反复应用罗尔(Rolle )定理,可以得出)()
1(t G n +在),(b a 内至少存在一个零点,设为ξ,即
0)()
1(=+ξn G
由于
)()
()!
1()()(1
)
1()1(x R x n t f t G n n n ++++-=ω 所以有
)
()!
1()
()()1(1ξω+++=
n n n f n x x R □
推论1 设b
x x x a n =<<= 10
,)
1(11],,[),(max +-≤≤∈-=n n j j
n
j f b a C f x x
h 在)
,(b a 上存在,则有
∞
++∞
+≤-)1(1
)!
1(n n n
f n h L f (2-10)
其中[,]
sup x a b ∞
∈?=?
。
证明 对],[b a 上任意的x ,可设x 属于],[b a 的一个子区间],[1
+k k
x x ,由此可以得出
h
k x x h x x h k n x x h x x h x x x x k n k k k )1(,,2;
)(,,2,4
))((0122
1+≤-≤--≤-≤-≤---++
从而有
10
4
!)(+=≤
-∏n n
j j h n x x
此不等式与式(2-9)相结合有
]
,[,)
1(4)()()1(1
b a x f n h x L x f n n n ∈?+≤-∞++
由此可得到估计式(2-10)。证毕。
算法2.1
(1) 输入数据,, (0,1,,)i
i
x x y i n =
(2) 对0,1,,i n =,计算0()
()n
j
i
j i j
j i
x x l x x =≠-=-∏
(3)
n
i i
i L f l ==∑
(4) 输出()L f x ≈,停机。
例1 已给sin 0.320.314567,sin 0.340.333487,sin 0.360.352274===,用线性插值及抛物线插值计算sin 0.3367的值,并估计截断误差。
解 由题意取
1
1
2
2
0.32,0.314567,0.34,0.333487,0.36,0.352274x y x y x y ====== 用线性插值计算,取0
0.32x =及1
0.34x =,由公式(2-4)得
1101
0110
0.33670.3367sin 0.3367(0.3367)0.330365x x
L y y x x x x
--≈=+=-- 其截断误差由(2-9)得
2
101()()()2
M R x x x x x ≤
--
其中
01
2max ()
x x x M f x ≤≤''=。因()sin f x x
''=-,可取
01
21max sin sin 0.3335
x x x M x x ≤≤==≤,有
115(0.3367)sin 0.3367(0.3367)
1
0.33350.01670.00330.92102
R L -=-≤???≤?
用抛物插值计算sin 0.3367时,由公式(2-4)得
02911220
12
010*********()()()()()()
()()()()()()()
x x x x x x x x x x x x L x y y y x x x x x x x x x x x x ------=++------
有
2sin(0.3367)(0.3367)0.330374.
L ≈=
这个结果与6位有效数字的正弦函数表完全一样,这说明查表时用二次插值精度已相当高了。其截断误差限由(2-9)得
3
2
1
2
()()()(),6
M
R x x x x x x x ≤--- 其中02
3
0max ()cos 0.828
x x x M f x x ≤≤'''==<,于是
6
22(0.3367)sin0.3367(0.3367)0.17810R L -=-≤?
§2 均差与Newton 插值公式
2.1 均差及其性质
Lagrange 插值公式结构紧凑和形式简单,在理论分析中甚为方便。但Lagrange 插值公式也有其缺点,当插值节点增加、减少或其位置变化时,全部插值基函数均要随之变化,从而整个插值公式的结构将发生变化,这在实际计算中是非常不利的。Newton 插值公式可以克服这个缺点。
定义 2.1 设有函数()f x ,0
1
2
,,,x x x 为称
00
()()
[,] (0)k k k f x f x f x x k x x
-=≠-为)(x f 关于点0,k
x x 的一阶均差。 001011
[,][,]
[,,]k k k f x x f x x f x x x x x -=
-
为)(x f 关于点0
1
,,k
x x x 的二阶均差。一般地,有了1-k 阶均差之后,称
1
2
1
1
1
1
[,,,,][,,,]
[,,,]k k
k n
k
k f x x x x f x x x f x x x x x
----=- (2-11)
为)(x f 关于点k
x x x ,,,1
的k 阶均差(差商)。 均差有如下的基本性质:
性质 1 各阶均差具有线性性,即若)()()(x b x a x f ?φ+=,则对任意正整数k ,都有
],,,[],,,[],,,[1
1
1
k
k
k
x x x b x x x a x x x f ?φ+=
性质2 k 阶均差可表示成)(,),(),(1
k
x f x f x f 的线性组合,即
010
()
[,,,]()
k
j
k
j j
f x f x x x x ω=='∑ 这个性质可用归纳法证明。它也表明均差与节点的排列次序无关,称为均差的对称性。
性质 3 若()f x 是m 次多项式,则一阶均差[,]i
f x x 是1m -次多项式。
证明 如果()f x 是m 次多项式,则()()()i
P x f x f x =-也是m 次多项式,且()0i
P x =。于是)(x P 可分解为()()()i
P x x x Q x =-,其中)(x Q 是1-m 次多项式。所以
()()()()
[,]()i i
i
i i
f x f x x x Q x f x x Q x x x x x
--===-- 是1-m 次多项式。证毕。
推论 设)(x f 是m 次多项式,则0
1
[,,,,]
m f x x x x 恒等于零。
2.2 牛顿插值多项式
由各阶均差的定义,依次可得
00000110101012201201010()()()[,][,][,]()[,,][,,][,,]()[,,,] [,,
,][,,
,]()[,,
,]
n n n n f x f x x x f x x f x x f x x x x f x x x f x x x f x x x x x f x x x x f x x x f x x x x x f x x x -=+-=+-=+-=+-
将以上各式分别乘以
0010111,(),()(),
,()()()
n x x x x x x x x x x x x -------,然后相加并消去两
边相等的部分,即得
0010012010101010()()[,]()[,,]()()
[,,
,]()()[,,,
,]()
()
()(),
n n 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 f x x x x x x x x N x R x -=+-+--+
+--+--=+
其中
0010012010101()()[,]()[,,]()()
[,,
,]()
()
n n n N x f x f x x x x f x x x x x x x f x x x x x x x -=+-+--+
+-- (2-12)
011()[,,,
,]()
n n n R x f x x x x x ω+= (2-13)
显然,()n
N x 是至多n 次的多项式。而由
1
1
()[,,,,]()0 (0,1,,)n
i
i
n
n i
R x f x x x x x i n ω+===
即得()()0 (0,1,,)n
i
n
i
R x N x i n ===。这表明()n
N x 满足插值条件(2-2),因而它是()f x 的n 次插值多项式。这种形式的插值多项式称为Newton 插值多项式。
由插值多项式的唯一性知,
n 次Newton 插值多项式与Lagrange 插值多项式是相等的,即()()n
n
N x L x =,它们只是形式的不同。因此Newton 与Lagrange 余项也是相等的,即
(1)
0111
()
()[,,,,]()()(,)(1)!
n n n n n f R x f x x x x x x a b n ξωωξ+++==∈+, 由此可得均差与导数的关系 )(!
1
],,,[)
(1
ξn n
f n x x x f = (2-14) 其中00(,),min{},max{}i
i
i n
i n
a b a x b x ξ≤≤≤≤∈==。
由式(2-9)表示的余项称为微分型余项,式(2-13)表示的余项称为均差型余项。对列表函数或高阶导数不存在的函数,其余项可由均差型余项给出。
Newton 插值的优点是:每增加一个节点,插值多项式只增加一项,即
1
1
1
1
()()[,,,]()()()n n
n n
N x N x f x x x x x x x x x ++=+---
因此便于递推运算。而且Newton 插值的计算量小于Lagrange 插值。
注1:以上推导过程只强调0
1
,,,n
x x x 是1n +个不同的节点,并不意味着0
1
,,,n
x x x 是按由小到大或由大到小的顺序排列。事实上,0
1
,,,n
x x x 按任意大小排列,以上推导成立。
作出Newton 插值多项式的步骤:1)列表计算各阶均差,如表2-1;
表2-1
i x i
y 一阶均差 二阶均差 n 阶均
差 0
x 0
y
1
1
x 1
y ],[10x x f
)
(0x x -
2x 2
y
12[,]f x x 012[,,]f x x x
1
0()j
j x x =-∏ 3
x 3
y
23[,]
f x x 123[,,]
f x x x
2
()j
j x x =-∏
n
x n
y
1[,]
n n f x x -
2
1
[,,]n n n
f x x x --
0[,
,]
n f x x 1
()n j
j x x -=-∏
2)将表2-1中下划线对角线项与最后一列的同行对应项相乘后相加,即得Newton 插值多项式。 算法2.2
(1) 输入数据,, (0,1,,)i
i
x x f i n = (2) 计算各阶差商。对(1,,)
i n =
1
(,1,,)k k k
k k i
f f
f k n n i x x
---?=-- (3)
1011()k n
k j k j p f f x x -==??=+-??
??
∑∏
(4) 输出()p f x ≈,停机。 例2 设x x f =)(,并已知
x 2.0 2.1 2.2 ()f x
1.414214 1.449138 1.483240
试用二次Newton 插值多项式2
()N x 计算)15.2(f 的近似值,并讨论其误差。
解 先按均差表2-1对例2构造均差表,具体数据见表2-2
表2-2
k
x )
(k x f 一阶均
差
二阶均差 2.0 1.414214
2.1 1.449138 0.34924
2.2 1.483240
0.34102 04110.0-
利用Newton 插值公式(2-12)有
2() 1.4142140.34924( 2.0)0.04110( 2.0)( 2.1)
N x x x x =+----
取15.2=x ,得2
(2.15) 1.466292N =。
由于f 在区间]2.2,0.2[上充分光滑,因此可以利用误差估计公式(2-11)。注意到
(3)
2()(8)
f x x x =,(3)
2.0 2.2
max ()0.06629x f x ≤≤=
从而得到
(3)3
22.0 2.2
0.001
max ()()0.066290.5524171043
x f x N x -≤≤-≤
?=??
)
15.2(f 的真值为466288.1,因此得出5
104.0)15.2(-?-=R 。由此
看出,在较小区间上用式(2-10),可得到一个较好估计。
例3 给出()f x 的函数表2-3,求4次牛顿插值多项式,并由此计算(0.596)f 的近似值。
首先根据给定函数表造出均差表2-3。
表 2.3
k
x )
(k
x f 一阶 二阶 三阶 四阶 五阶 0.40 0.4107
5
0.55 0.57815 1.116
00
0.65 0.69675 1.18600 0.280
00
0.80 0.88811 1.27573 0.35893 0.197
33
0.90 1.02652 1.38410 0.43348 0.21300 0.031
34
1.05
1.25382 1.51533 0.52483 0.22863 0.03126 -0.00012
从均差表看到4阶均差近似常数,故取4次插值多
项式4
()N x 作近似即可。
4()0.41075 1.116(0.4)0.28(0.4)(0.55)
0.19733(0.4)(0.55)(0.65)
0.03134(0.4)(0.55)(0.65)(0.8),
N x x x x x x x x x x x =+-+--+---+----
于是
4(0.596)(0.596)0.63192,
f N ≈= 截断误差
9
4055()[,
,](0.596) 3.6310R x f x x ω-≈≤?
这说明截断误差很下,可忽略不计。
此例的截断误差估计中,5阶均差0
4
[,,,]f x x x 用05
[,,]0.00012f x x =-近似。另一种方法是取0.596x =,由
(0.596)0.63192f ≈,
可求得04[,,,]f x x x 的近似值,从而可得4
()R x 的近似。
§3 差分与等距节点插值公式
前面所讨论的Lagrange 插值多项式和用均差表示的Newton 插值多项式,其节点可以是不等距的。如果函数()f x 在插值区间[,]a b 上变化很剧烈,则采用不等距节点插值多项式更适宜。如果()f x 在插值区间[,]a b 上变化平缓,采用等距节点可使插值多项式简化。
3.1差分及其性质
当节点等距分布时,即相邻两个节点之差(称为步长)为常数,此时关于节点间函数的平均变化率(均差)可用函数值之差(差分)来表示。
定义2.2 设函数()y f x =在等距节点0
(0,1,,)k
x x kh k n =+=上的值)(k
k x f f =为已知,这里h 为一常数,称为步长,引入记号
1k k k
f f f +?=- (2-15) 1
k k k f f f -?=- (2-16)
1
12
2
11
()()22
k k k
k k f f x h f x h f f δ+
-
=+--=- (2-17) k
k f f ?,?和k
f δ分别称为f 在k
x 处以h 为步长的向前一阶差分、向后一阶差分和中心一阶差分。符号,,δ??分别称为向前差分算子,向后差分算子及中心差分算子。
利用一阶差分可定义二阶差分为
21 (0,1,
,)
k k k f f f k n +?=?-?=
一般地,可定义m 阶差分为
1111111111
1111112
2
m m m m m k k k k k m m m m m k k k k k m m m m m k k k k k f f f f f f f f f f f f f f
f
δδδδδδδ----+---------+
-
?=??=??=?-??=??=??=?-?===-
并规定k
k
k
k
f f f f ==?=0
δ?,称其为零阶差分。
为以下讨论方便起见,再引入常用的算子符号
1+=k k f f E ,k
k f f =+-11
E ,2
12
1+
=k k
f f E ,2
12
1-
-
=k k
f f E ,k
k f f =I
称E 为步长h 的移位算子,I 为单位算子(也称为不变算子)。显然
n k k n
f f +=E ,n
k k n
f f --=)(1E ,I EE E E ==--11及I E Δ-=,1
--=?E I 下面给出差分的一些基本性质:
性质1各阶差分具有线性性,即若)()()(x b x a x f ?φ+=,则对任意正整数m ,都有
n n n
k k k
f a b φ??=?+?
对于算子,δ?具有类似的性质。
性质2 各阶差分可表示成函数值的线性组合,例如
0()(1)(1)n
n
n n
j n j
j
k k k n k j
j j n n f f E f f
j j
-+-==????
=-=-=- ? ?????
∑∑ΔE I (2-18) 100()(1)(1)n n
n n n j j n
n j k k k k j n
j j n n f f E f f j j ----+-==?????=-=-=- ? ?????
∑∑I E (2-19)
∑=-+-???? ??-=-=n j j
n k j k n
k n f j n f E E f 02
2121)1()(δ (2-20)
其中
)!(!!j n j n C j n j n -==???
? ??为二项式展开式的系数。
性质3 可用各阶均差表示函数值,例如,可用向前差分表示n k
f +
k
j
n
j k
n
k n n k f j n f f f ?∑=+???
?
??=+==0
)(ΔI E (2-21)
性质4 各种差分之间可以转化
2
,n
n
n
n
k
k n
k
n k f f f f δ--?=?=? (2-22)
性质5 可用差分表示均差,例如
n
k n
n
k
n
n
n
k k k
f h
n f h n x x x f +++?==!1
!1],,,[1
? (2-23) 结合式(2-14),可得差分与导数的关系
()
1
![,,,]() n
n
n
n k
k
k k n
k
k n
f n h f x x x h f x x ξξ+++?==<< (2-24) 由式(2-24)可看出,若()f x 是一个n 次多项式,则它的n 阶差分为常数。因此,如果一个列表函数的n 阶差分已接近常数,则用一个n 次多项式去逼近它是恰当的。
3.2等距节点插值公式
将Newton 插值多项式(2-12)中各阶均差用差分代替,就可得到各种形式的等距节点插值公式。这里我们只推导常用的前插与后插公式。 给定等距节点),,1,0( 0
n k kh x x =+=后,要计算0
x 附近点x 的函数值()f x ,可令)10( 0
≤≤+=t th x x ,于是
1
1)()1()()(+=+--=-=∏k k
j j
k h k t t t x x x ω
将此式及式(2-23)代入式(2-12),则得
2
00000
(1)(1)
(1)()2!
!
n
n t t t t t n N x th f t f f f n ---++=+?+
?++? (2-25)
此公式称为Newton 前插公式。其余项为
1
1
1
1
()(1)()
()()(),(,)(1)!(1)!
n n n n n
f t t t n R x x h f x x n n ξωξξ++++--==∈++ (2-26) 如果要求函数表示n
x 附近的函数值()f x ,此时应用牛顿插值公式(2-12),插值点应按1
,,n
n x x - 0
,x 的次序排列,有
1121
101
()()[,]()[,,]()()[,,,]()()
n n n n n n n n n n n n n N x f x f x x x x f x x x x x x x f x x x x x x x -----=+-+--+
+--
作变换 (10)
n
x x th t =+-≤≤,并利用公式(2-23),代入上式
得
n
n
n n n n n f n n t t t f t t f t f th x N ?-++++?++
?+=+!
)1()1(!2)1()(2 (2-27)
此式称为Newton 向后插值公式。其余项为
1
1
1
1
()(1)()
()()(),(,)(1)!(1)!
n n n n n
f t t t n R x x h f x x n n ξωξξ++++++==∈++ (2-28) 注2:1.用相同节点进行插值,向前向后两种公式只是形式上的差别,其计算结果是相同的;
2.求节点n
x 附近的函数值时,由关系j
j
n n j
f f -?=?,同样可表示成向前差分的形式
2120
(1)(1)(1)
()2!!
n
n n n n n t t t t t n N x th f t f f f n --+++-+=+?+?++?; 3.Newton 向后插值公式(2-27)在推导微分方程数值解方面能起到很好的作用。
构造Newton 向前、向后插值公式的具体步骤:1)计算各阶差分,见表2-4
表2-4
i
x i
y 一阶差分 二阶差分 三阶差分 … n 阶差
分 0
x 0
f 1 1
x 1f 0f ?(1
f ?)
t
2x 2f 12
()f f ??
20f ?22()
f ?
(1)2
t t - 3
x 3
f
23()
f f ?? 21f ?(23
f ?)
3
0f ?3
3()
f ?
2
1()3!j t j =-∏
n
x n
f
1n f -?()n f ?
22
n f -?(
2n f ?) 3
3
n f -?
3
()n
f ?
0n
f ?()
n
n f ?
1
1()!n j t j n -=-∏
1
t
(1)2
t t -
2
1()3!j t j =-∏ (10)
1()!
n j t j n -=-∏
2)将以上表中下划线对角线项与对应行右端因子乘积求和即得Newton 向前插值多项式;Newton 向后插值公式则为最后的节点所在行的各阶差分值与对应列下端因子乘积之和。
例 4 已知sin y x =的函数表如下,分别用牛顿向前、向后插值公式求57891.0sin 的近似值。
x 0.4 0.5 0.6 0.7
sin x
0.38942 0.47943 0.56464 0.64422 解 取0
1230.4,0.5,0.6.0.7
x x x x ====,有0.1h =。按表2-4计算
得
i
x
i
y
一阶差分 二阶差分 三阶差分
0.4 0.38942 1
0.5 0.47943 0.09001 t
0.6 0.56464 0.08521 -0.00480 1
(1)2
t t - 0.7 0.64422 0.07958 -0.00563 -0.00083
(1)(2)3!
t
t t ++
1 t (1)2t t - (1)(2)3!t
t t ++ Newton 向前插值公式为 3011
()0.389420.090010.00480(1)0.00083(1)(2)
26
N x th t t t t t t +=+-?--?--
将
00.578910.4 1.7891
0.1
x x t h --===代入上式得
3sin 0.57891(0.57891)
1
0.389420.09001 1.78910.00480 1.78910.7891
2
1
0.00083 1.78910.78910.21096
0.54711
N ≈=+?-???+????=
由式(2-26),误差为
4
6
(0.1)(0.57891) 1.78910.7891(0.2109)( 1.2109)sin 2104!
R ξ-=???-?-
Newton 向后插值公式为
330.005630.00083
()0.644220.07958(1)(1)(2)23!
N x th t t t t t t +=+-
+-++
将3
1.2109
x x
t h
-
==-代入上式得
1
sin 0.578910.644220.07958 1.21090.00563( 1.2109)(0.2109)
2
1
0.00083( 1.2109)(0.2109)0.78913!
0.54711
≈-?-??-?--??-?-?=
查表可得sin0.578910.5471118=。 如果取0
1
2
0.4,0.5,0.6x x x ===,用二阶Newton 向后插值公式,则得
32
1
()0.564640.085210.00480(1)2
N x th t t t +=+-?+ 2
0.2109x x t h
-=
=-代入上式得
1
sin 0.578910.564640.08521(0.2109)0.00480(0.2109)0.7891
2
0.54707
≈+?--??-?=
其误差为
3
4
(0.1)(0.57891)(0.2109)0.7891 1.7891cos 0.5103!
R ξ-=??-??≤?
例 5 给出()cos f x x =在,0,1,,6,0.1k
x kh k h ===处的函数值,试用4次等距节点插值公式计算(0.048)f 及(0.566)f 的近似值并估计误差。
解 构造差分表2-5。用牛顿向前插值公式(2-25)计
算(0.048)f 的近似值,取0.048,0.1x h ==,0
0.48x t h
-==,用表2-5上半部差分,得
表 2.5
()k
f x f ?()f ? 22
()f f ?? 33()
f f ??
44()
f f ??
55()
f f ??
1.00000 0.99500 0.98007 0.95534 0.92106 0.87758 0.82534
-0.00500 -0.01493 -0.02473 -0.03428 -0.04348 -0.05224 -0.00993 -0.00980 -0.00955 -0.00920 -0.00876 0.00013 0.00025 0.00035 0.00044
0.00012 0.00010 0.00009
-0.00002 -0.00001
4(0.48)(0.481)
(0.048) 1.000000.48(0.00500)(0.00993)
2
1
(0.48)(0.481)(0.482)(0.00013)3!1
(0.48)(0.481)(0.482)(0.483)(0.00012)4!
0.99885cos 0.048,
N -=+?-+
-+
--+---=≈
误差估计由(2-26)可得
575
4(0.048)(1)(2)(3)(4) 1.584510,5!
M R t t t t t h -≤
----≤?
其中5
sin0.60.565.M =≤
计算(0.566)f 可用牛顿向后插值公式(4.12),
6
6
0.566,0.6,0.34x x
x x t h
-====-,用差分表2-5中下半部差分,
得
40.00876
(0.566)0.825340.34[0.05224(0.66)(
2
0.000440.00009
(1.66)(
2.66))]624
0.84405
N -=--+++?=
于是cos0.5660.84405≈,误差估计由(2-28)得
575
4(0.566)(1)(2)(3)(4) 1.706410,5!
M R t t t t t h -≤
++++≤?
其中5
0.565.
M
=
§4 埃尔米特(Hermite )插值
如果对插值函数,不仅要求它在节点处与被插值函数取值相同,而且要求它与函数有相同的一阶、二阶甚至更高阶的导数值,这就是Hermite 插值问题。本节主要讨论在节点处插值函数与函数的值及一阶导数值均相等的Hermite 插值。
设已知函数()y f x =在1+n 个不同的插值节点n
x x x ,,,1
上的函数值()(0,1,,j
j
f f x j == )n 和导数值()(0,1,,)j
j
m f x j n '==,要求插值多项式()H x ,满足条件 2121
() (0,1,,)()n j j
n j
j
H x f
j n H x m
++=??=?
'=??
(2-29) 这里给出了22n +个条件,可唯一确定一个次数不超过12+n 次的多项式21
21
()()n n H x H x P ++=∈。
我们仿照与构造Lagrange 插值公式相类似的方法来解决Hermite 插值问题。
定理2.3 存在惟一的∈+12n H 1
2+n P 满足插值条件(2-29)。 证明 可以设想,如果我们能够构造出两组12+n 次多项式:n j j
j ,,1,0,, =βα,并满足条件
数值分析参考答案(第二章)doc资料
数值分析参考答案(第 二章)
第二章 插值法 1.当1,1,2x =-时,()0,3,4f x =-,求()f x 的二次插值多项式。 解: 0120121200102021101201220211,1,2, ()0,()3,()4;()()1 ()(1)(2)()()2()()1 ()(1)(2) ()()6 ()()1 ()(1)(1) ()()3 x x x f x f x f x x x x x l x x x x x x x x x x x l x x x x x x x x x x x l x x x x x x x ==-===-=--==-+-----==------= =-+-- 则二次拉格朗日插值多项式为 2 20()()k k k L x y l x ==∑ 0223()4() 14 (1)(2)(1)(1)23537623l x l x x x x x x x =-+=---+-+=+- 2.给出()ln f x x =的数值表 用线性插值及二次插值计算ln0.54的近似值。 解:由表格知, 01234012340.4,0.5,0.6,0.7,0.8;()0.916291,()0.693147()0.510826,()0.356675()0.223144 x x x x x f x f x f x f x f x ======-=-=-=-=- 若采用线性插值法计算ln0.54即(0.54)f , 则0.50.540.6<<
2 112 1 221 11122()10(0.6)()10(0.5)()()()()() x x l x x x x x x l x x x x L x f x l x f x l x -==----= =---=+ 6.93147(0.6) 5.10826(0.5)x x =--- 1(0.54)0.62021860.620219L ∴=-≈- 若采用二次插值法计算ln0.54时, 1200102021101201220212001122()() ()50(0.5)(0.6) ()() ()() ()100(0.4)(0.6) ()()()() ()50(0.4)(0.5) ()() ()()()()()()() x x x x l x x x x x x x x x x x l x x x x x x x x x x x l x x x x x x x L x f x l x f x l x f x l x --==------==-------= =----=++ 500.916291(0.5)(0.6)69.3147(0.4)(0.6)0.51082650(0.4)(0.5) x x x x x x =-?--+---?--2(0.54)0.615319840.615320L ∴=-≈- 3.给全cos ,090x x ≤≤的函数表,步长1(1/60),h '==若函数表具有5位有效数字,研究用线性插值求cos x 近似值时的总误差界。 解:求解cos x 近似值时,误差可以分为两个部分,一方面,x 是近似值,具有5位有效数字,在此后的计算过程中产生一定的误差传播;另一方面,利用插值法求函数cos x 的近似值时,采用的线性插值法插值余项不为0,也会有一定的误差。因此,总误差界的计算应综合以上两方面的因素。 当090x ≤≤时, 令()cos f x x = 取0110,( )606018010800 x h ππ ===?=
数值分析课后题答案
数值分析 第二章 2.当1,1,2x =-时,()0,3,4f x =-,求()f x 的二次插值多项式。 解: 0120121200102021101201220211,1,2, ()0,()3,()4;()()1 ()(1)(2)()()2()()1 ()(1)(2) ()()6 ()()1 ()(1)(1) ()()3 x x x f x f x f x x x x x l x x x x x x x x x x x l x x x x x x x x x x x l x x x x x x x ==-===-=--==-+-----==------= =-+-- 则二次拉格朗日插值多项式为 2 20 ()()k k k L x y l x ==∑ 0223()4() 14 (1)(2)(1)(1)23 537623 l x l x x x x x x x =-+=---+ -+= +- 6.设,0,1,,j x j n =L 为互异节点,求证: (1) 0()n k k j j j x l x x =≡∑ (0,1,,);k n =L (2)0 ()()0n k j j j x x l x =-≡∑ (0,1,,);k n =L 证明 (1) 令()k f x x = 若插值节点为,0,1,,j x j n =L ,则函数()f x 的n 次插值多项式为0 ()()n k n j j j L x x l x == ∑。 插值余项为(1)1() ()()()()(1)! n n n n f R x f x L x x n ξω++=-= + 又,k n ≤Q
(1)()0 ()0 n n f R x ξ+∴=∴= 0()n k k j j j x l x x =∴=∑ (0,1,,);k n =L 0 000 (2)()() (())()()(()) n k j j j n n j i k i k j j j i n n i k i i k j j i j x x l x C x x l x C x x l x =-==-==-=-=-∑∑∑∑∑ 0i n ≤≤Q 又 由上题结论可知 ()n k i j j j x l x x ==∑ ()()0 n i k i i k i k C x x x x -=∴=-=-=∑原式 ∴得证。 7设[]2 (),f x C a b ∈且()()0,f a f b ==求证: 21 max ()()max ().8 a x b a x b f x b a f x ≤≤≤≤''≤- 解:令01,x a x b ==,以此为插值节点,则线性插值多项式为 10 101010 ()() ()x x x x L x f x f x x x x x --=+-- =() () x b x a f a f b a b x a --=+-- 1()()0()0 f a f b L x ==∴=Q 又 插值余项为1011 ()()()()()()2 R x f x L x f x x x x x ''=-= -- 011 ()()()()2 f x f x x x x x ''∴= --
数值分析拉格朗日插值法上机实验报告
课题一:拉格朗日插值法 1.实验目的 1.学习和掌握拉格朗日插值多项式。 2.运用拉格朗日插值多项式进行计算。 2.实验过程 作出插值点(1.00,0.00),(-1.00,-3.00),(2.00,4.00)二、算法步骤 已知:某些点的坐标以及点数。 输入:条件点数以及这些点的坐标。 输出:根据给定的点求出其对应的拉格朗日插值多项式的值。 3.程序流程: (1)输入已知点的个数; (2)分别输入已知点的X坐标; (3)分别输入已知点的Y坐标; 程序如下: #include
插值算法*/ { int i,j; float *a,yy=0.0; /*a作为临时变量,记录拉格朗日插值多项*/ a=(float*)malloc(n*sizeof(float)); for(i=0;i<=n-1;i++) { a[i]=y[i]; for(j=0;j<=n-1;j++) if(j!=i) a[i]*=(xx-x[j])/(x[i]-x[j]); yy+=a[i]; } free(a); return yy; } int main() { int i; int n; float x[20],y[20],xx,yy; printf("Input n:");
scanf("%d",&n); if(n<=0) { printf("Error! The value of n must in (0,20)."); getch();return 1; } for(i=0;i<=n-1;i++) { printf("x[%d]:",i); scanf("%f",&x[i]); } printf("\n"); for(i=0;i<=n-1;i++) { printf("y[%d]:",i);scanf("%f",&y[i]); } printf("\n"); printf("Input xx:"); scanf("%f",&xx); yy=lagrange(x,y,xx,n); printf("x=%f,y=%f\n",xx,yy); getch(); } 举例如下:已知当x=1,-1,2时f(x)=0,-3,4,求f(1.5)的值。
数值分析常用的插值方法
数值分析报告 班级: 专业: 流水号: 学号: 姓名:
常用的插值方法 序言 在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点。插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值。 早在6世纪,中国的刘焯已将等距二次插值用于天文计算。17世纪之后,牛顿、拉格朗日分别讨论了等距和非等距的一般插值公式。在近代,插值法仍然是数据处理和编制函数表的常用工具,又是数值积分、数值微分、非线性方程求根和微分方程数值解法的重要基础,许多求解计算公式都是以插值为基础导出的。 插值问题的提法是:假定区间[a,b〕上的实值函数f(x)在该区间上n+1个互不相同点x0,x1……x n处的值是f(x0),……f(x n),要求估算f(x)在[a,b〕中某点的值。其做法是:在事先选定的一个由简单函数构成的有n+1个参数C0, C1,……C n的函数类Φ(C0,C1,……C n)中求出满足条件P(x i)=f(x i)(i=0,1,……n)的函数P(x),并以P(x)作为f(x)的估值。此处f(x)称为被插值函数,x0,x1,……xn 称为插值结(节)点,Φ(C0,C1,……C n)称为插值函数类,上面等式称为插值条件,Φ(C0,……C n)中满足上式的函数称为插值函数,R(x)=f(x)-P(x)称为插值余项。
求解这类问题,它有很多种插值法,其中以拉格朗日(Lagrange)插值和牛顿(Newton)插值为代表的多项式插值最有特点,常用的插值还有Hermit 插值,分段插值和样条插值。 一.拉格朗日插值 1.问题提出: 已知函数()y f x =在n+1个点01,,,n x x x L 上的函数值01,,,n y y y L ,求任意一点 x '的函数值()f x '。 说明:函数()y f x =可能是未知的;也可能是已知的,但它比较复杂,很难计算其函数值()f x '。 2.解决方法: 构造一个n 次代数多项式函数()n P x 来替代未知(或复杂)函数()y f x =,则 用()n P x '作为函数值()f x '的近似值。 设()2012n n n P x a a x a x a x =++++L ,构造()n P x 即是确定n+1个多项式的系数 012,,,,n a a a a L 。 3.构造()n P x 的依据: 当多项式函数()n P x 也同时过已知的n+1个点时,我们可以认为多项式函数 ()n P x 逼近于原来的函数()f x 。根据这个条件,可以写出非齐次线性方程组: 20102000 20112111 2012n n n n n n n n n n a a x a x a x y a a x a x a x y a a x a x a x y ?++++=?++++=?? ? ?++++=?L L L L L 其系数矩阵的行列式D 为范德萌行列式: ()20 0021110 2111n n i j n i j n n n n x x x x x x D x x x x x ≥>≥= = -∏L L M M M M L
数值分析常用的插值方法
数值分析 报告 班级: 专业: 流水号: 学号: 姓名:
常用的插值方法 序言 在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点。插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值。 早在6世纪,中国的刘焯已将等距二次插值用于天文计算。17世纪之后,牛顿、拉格朗日分别讨论了等距和非等距的一般插值公式。在近代,插值法仍然是数据处理和编制函数表的常用工具,又是数值积分、数值微分、非线性方程求根和微分方程数值解法的重要基础,许多求解计算公式都是以插值为基础导出的。 插值问题的提法是:假定区间[a,b〕上的实值函数f(x)在该区间上 n+1 个互不相同点x 0,x 1 (x) n 处的值是f(x ),……f(x n ),要求估算f(x)在[a,b〕 中某点的值。其做法是:在事先选定的一个由简单函数构成的有n+1个参数C , C 1,……C n 的函数类Φ(C ,C 1 ,……C n )中求出满足条件P(x i )=f(x i )(i=0,1,…… n)的函数P(x),并以P(x)作为f(x)的估值。此处f(x)称为被插值函数,x 0,x 1 ,……xn 称为插值结(节)点,Φ(C 0,C 1 ,……C n )称为插值函数类,上面等式称为插值条件, Φ(C 0,……C n )中满足上式的函数称为插值函数,R(x)= f(x)-P(x)称为 插值余项。
求解这类问题,它有很多种插值法,其中以拉格朗日(Lagrange)插值和牛顿(Newton)插值为代表的多项式插值最有特点,常用的插值还有Hermit 插值,分段插值和样条插值。 一.拉格朗日插值 1.问题提出: 已知函数()y f x =在n+1个点01,, ,n x x x 上的函数值01,, ,n y y y ,求任意一点 x '的函数值()f x '。 说明:函数()y f x =可能是未知的;也可能是已知的,但它比较复杂,很难计算其函数值()f x '。 2.解决方法: 构造一个n 次代数多项式函数()n P x 来替代未知(或复杂)函数()y f x =,则 用()n P x '作为函数值()f x '的近似值。 设()2012n n n P x a a x a x a x =+++ +,构造()n P x 即是确定n+1个多项式的系数 012,,,,n a a a a 。 3.构造()n P x 的依据: 当多项式函数()n P x 也同时过已知的n+1个点时,我们可以认为多项式函数 ()n P x 逼近于原来的函数()f x 。根据这个条件,可以写出非齐次线性方程组: 20102000 201121112012n n n n n n n n n n a a x a x a x y a a x a x a x y a a x a x a x y ?+++ +=?++++=??? ?+++ +=? 其系数矩阵的行列式D 为范德萌行列式: () 200021110 2 111n n i j n i j n n n n x x x x x x D x x x x x ≥>≥= = -∏
(完整)数值分析知识点,推荐文档
第一章绪论(1-4) 一、误差来源及分类 二、误差的基本概念 1.绝对误差及绝对误差限 2.相对误差及相对误差限 3.有效数字 三、数值计算的误差估计 1.函数值的误差估计 2.四则运算的误差估计 四、数值计算的误差分析原则 第二章插值(1.2.4-8) 一、插值问题的提法(定义)、插值条件、插值多项式的存在唯一性 二、拉格朗日插值 1.拉格朗日插值基函数的定义、性质 2.用拉格朗日基函数求拉格朗日多项式 3.拉格朗日插值余项(误差估计) 三、牛顿插值 1.插商的定义、性质 2.插商表的计算 3.学会用插商求牛顿插值多项式 四、等距节点的牛顿插值 1.差分定义、性质及计算(向前、向后和中心) 2.学会用差分求等距节点下的牛顿插值公式 五、学会求低次的hermite插值多项式 六、分段插值 1.分段线性插值 2.分段三次hermite插值 3.样条插值 第三章函数逼近与计算(1-6) 一、函数逼近与计算的提法(定义)、常用两种度量标准(一范数、二范数\平方逼近) 二、基本概念 连续函数空间、最佳一次逼近、最佳平方逼近、内积、内积空间、偏差与最小偏差、偏差点、交错点值、平方误差 三、学会用chebyshev定理求一次最佳一致逼近多项式,并估计误差(最大偏差) 四、学会在给定子空间上通过解方程组求最佳平方逼近,并估计误差(平方误差) 五、正交多项式(两种)定义、性质,并学会用chebyshev多项式性质求特殊函数的(降阶)最佳一次逼近多项式 六、函数按正交多项式展开求最佳平方逼近多项式,并估计误差 七、一般最小二乘法(多项式拟合)求线性拟合问题 第四章数值分析(1-4) 一、数值求积的基本思想及其机械求积公式
数值分析 插值法
第二章插值法 2.在区间[-1,1]上分别取n=10,20用两组等距节点对龙哥函数f(x)=1/(1+25*x^2)做多项式插值及三次样条插值,对每个n值,分别画出插值函数及f(x)的图形。 (1)多项式插值 ①先建立一个多项式插值的M-file; 输入如下的命令(如牛顿插值公式): function [C,D]=newpoly(X,Y) n=length(X); D=zeros(n,n) D(:,1)=Y' for j=2:n for k=j:n D(k,j)=(D(k,j-1)- D(k-1,j-1))/(X(k)-X(k-j+1)); end end C=D(n,n); for k=(n-1):-1:1 C=conv(C,poly(X(k))) m=length(C); C(m)= C(m)+D(k,k); end ②当n=10时,我们在命令窗口中输入以下的命令: clear,clf,hold on; X=-1:0.2:1; Y=1./(1+25*X.^2); [C,D]=newpoly(X,Y); x=-1:0.01:1; y=polyval(C,x); plot(x,y,X,Y,'.'); grid on; xp=-1:0.2:1; z=1./(1+25*xp.^2); plot(xp,z,'r') 得到插值函数和f(x)图形:
③当n=20时,我们在命令窗口中输入以下的命令:clear,clf,hold on; X=-1:0.1:1; Y=1./(1+25*X.^2); [C,D]=newpoly(X,Y); x=-1:0.01:1; y=polyval(C,x); plot(x,y,X,Y,'.'); grid on; xp=-1:0.1:1; z=1./(1+25*xp.^2); plot(xp,z,'r') 得到插值函数和f(x)图形:
数值分析第二章复习与思考题
第二章复习与思考题 1.什么是拉格朗日插值基函数它们是如何构造的有何重要性质 答:若n 次多项式()),,1,0(n j x l j Λ=在1+n 个节点n x x x <<<Λ10上满足条件 (),,,1,0,, ,0, ,1n k j j k j k x l k j Λ=?? ?≠== 则称这1+n 个n 次多项式()()()x l x l x l n ,,,10Λ为节点n x x x ,,,10Λ上的n 次拉格朗日插值基函数. 以()x l k 为例,由()x l k 所满足的条件以及()x l k 为n 次多项式,可设 ()()()()()n k k k x x x x x x x x A x l ----=+-ΛΛ110, 其中A 为常数,利用()1=k k x l 得 ()()()()n k k k k k k x x x x x x x x A ----=+-ΛΛ1101, 故 ()()()() n k k k k k k x x x x x x x x A ----= +-ΛΛ1101 , 即 ()()()()()()()()∏ ≠=+-+---=--------=n k j j j k j n k k k k k k n k k k x x x x x x x x x x x x x x x x x x x x x l 0110110)(ΛΛΛΛ. 对于()),,1,0(n i x l i Λ=,有 ()n k x x l x n i k i k i ,,1,00 Λ==∑=,特别当0=k 时,有 ()∑==n i i x l 0 1. 2.什么是牛顿基函数它与单项式基{ }n x x ,,,1Λ有何不同 答:称()()()(){ }10100,,,,1------n x x x x x x x x x x ΛΛ为节点n x x x ,,,10Λ上的牛顿基函数,利用牛顿基函数,节点n x x x ,,,10Λ上的n 次牛顿插值多项式()x P n 可以表示为 ()()()()10010---++-+=n n n x x x x a x x a a x P ΛΛ 其中[]n k x x x f a k k ,,1,0,,,,10ΛΛ==.与拉格朗日插值多项式不同,牛顿插值基函数在增加节点时可以通过递推逐步得到高次的插值多项式,例如 ()()()()k k k k x x x x a x P x P --+=++Λ011,
数值分析第二章 习题
第二章 习 题 1. 已知函数()f x 在3,1,4x =的值分别为4,2,5,求Lagrange 插值多项式的表达式. 2. 已知函数 ()f x 在3x =和 4的值分别为0.5和0.64,用线性插值求此函数在 3.8x =的函数值. 3. 证明:对于 ()f x 的以01x x <为节点的一次插值多项式1()p x ,有 2 101()()()8 x x f x p x M ??≤,01x x x ≤≤, 其中01 max ()x x x M f x ≤≤′′= . 4. 已知函数 ()f x 的函数值表: x 0.1 0.2 0.3 0.4 0.5 ()f x 0.70010 0.40160 0.10810 -0.17440 -0.43750 试利用这个函数表求函数()f x 在0.3和0.4之间的零点. 5. 设 01,,,n x x x ???为1n +个互异的节点,()k l x 为n 阶 Lagrange 插值基函数, 0()()n k k x x x ω==?∏.证明: (1) 0()1n k k l x =≡∑; (2) 0(),0,1,2,,k n j j k k x l x x j n =≡=???∑; (3) ()()0,0,1,2,,n j k k k x x l x j n =?≡=???∑; (4)() ()()() k k k x l x x x x ωω= ′?.
6. 若73()1f x x x =?+,求0172,2,,2f ???????和018 2,2,,2f ???????. 7. 设 53()1f x x x =++,求以1x =?,-0.8,0,0.5,1为插值节点的Newton 插值多 项式和插值余项. 8. 已知函数值表: x 0 1 4 3 6 ()f x -7 8 5 14 求Newton 插值多项式的表达式. 9. 分别在下列情况下计算 1n ?次多项式()p t 在指定点t 的的值,各需要多少次乘 法运 算? (a)多项式()p t 按照单项式基函数展开; (b)多项式()p t 按照Lagrange 基函数展开; (c)多项式()p t 按照Newton 基函数展开. 10. 在区间[]0,/2π上使用5个等距节点对函数sin t 进行插值,试计算最大误差. 在 []0,/2π上选取若干点,比较函数值和插值多项式的值,验证误差界. 如果希望最大误 差为10 10 ?,需要多少个插值节点? 11. 一直平面曲线()y f x =过点(0,1) ,(1,3),(2,4),试求一个三次多项式3()p x ,使其经过这3个点,并且满足3(1)1p ′=;然后给出余项3()()()R x f x p x =?的表达式. 12. 试求一个四次多项式4()p x ,使其满足44 44(0)(0)0(1)(1)1p p p p ′′====,,4(2)1p =. 13. 能否通过使用分段二次多项式进行插值,使插值函数是二次连续可微的?为什么? 14. 设[]4 (),f x C a b ∈. 求三次多项式()p x ,使之满足插值条件 11 ()(),0,1,2, ()(),i i p x f x i p x f x ==?? ′′=?
数值分析实验插值与拟合
《数值分析》课程实验一:插值与拟合 一、实验目的 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、用Gauss消元法求解下列方程组: 2x 1-x 2 +3x 3 =1, (1) 4x 1+2x 2 +5x 3 =4, x 1+2x 2 =7; (2) 解: A=[2 -1 3 1;4 2 5 4;1 2 0 7] n=size(A,1);x=zeros(n,1);flag=1; % 消元过程 for k=1:n-1 for i=k+1:n if abs(A(k,k))>eps A(i,k+1:n+1)= A(i,k+1:n+1)-A(k,k+1:n+1)*A(i,k)/A(k,k); else flag=0; return end end end % 回代过程 if abs(A(n,n))>eps x(n)=A(n,n+1)/A(n,n); else flag=0; return end for i=n-1:-1:1 x(i)=(A(i,n+1)-A(i,i+1:n)*x(i+1:n))/A(i,i); end return x A = 2 -1 3 1 4 2 5 4 1 2 0 7
x = 9 -1 -6 11x1-3x2-2x3=3, (2)-23x 1+11x 2 +1x 3 =0, x 1+2x 2 +2x 3 =-1; (2) 解: A=[11 -3 -2 3;-23 11 1 0;1 2 2 -1] n=size(A,1);x=zeros(n,1);flag=1; % 消元过程 for k=1:n-1 for i=k+1:n if abs(A(k,k))>eps A(i,k+1:n+1)= A(i,k+1:n+1)-A(k,k+1:n+1)*A(i,k)/A(k,k); else flag=0; return end end end % 回代过程 if abs(A(n,n))>eps x(n)=A(n,n+1)/A(n,n); else flag=0; return end for i=n-1:-1:1 x(i)=(A(i,n+1)-A(i,i+1:n)*x(i+1:n))/A(i,i); end return x A = 11 -3 -2 3 -23 11 1 0 1 2 2 -1 x = 0.2124 0.5492 -1.1554 4、用Cholesky分解法解方程组 3 2 3 x1 5 2 2 0 x2 3 3 0 12 x3 7
数值分析--第2章 插值法
数值分析--第2章插值法
第2章 插值法 在科学研究与工程技术中,常常遇到这样的问题:由实验或测量得到一批离散样点,要求作出一条通过这些点的光滑曲线,以便满足设计要求或进行加工。反映在数学上,即已知函数在一些点上的值,寻求它的分析表达式。此外,一些函数虽有表达式,但因式子复杂,不易计算其值和进行理论分析,也需要构造一个简单函数来近似它。 解决这种问题的方法有两类:一类是给出函数)(x f 的一些样点,选定一个便于计算的函数)(x ?形式,如多项式、分式线性函数及三角多项式等,要求它通过已知样点,由此确定函数)(x ?作为)(x f 的近似,这就是插值法;另一类方法在选定近似函数的形式后,不要求近似函数过已知样点,只要求在某种意义下在这些样点上的总偏差最小。这类方法称为曲线(数据)拟合法。 设已知函数f 在区间],[b a 上的1+n 个相异点i x 处的函数值(),0,,i i f f x i n ==,要求构造一个简单函数()x ?作为函数()f x 的近似表达式()()f x x ?≈,使得 ()(),0,1,,i i i x f x f i n ?=== (2-1) 这类问题称为插值问题。称f 为被插值函数;()x ?为插值函数;n x x ,,0 为插值节点;(2-1)为插值条件。 若插值函数类{()}x ?是代数多项式,则相应的插值问题为代数插值。若{()}x ?是三角多项式,则相应的插值问题称为三角插值。若{()}x ?是有理分式,则相应的插值问题称为有理插值。
§1 Lagrange 插值 1.1 Lagrange 插值多项式 设函数f 在1+n 个相异点0 1 ,,,n x x x 上的值n i x f f i i ,,1,0),( ==是已知的,在次数不超过n 的多项式集合n P 中,求()n L x 使得 (),0,1,,n i i L x f n n == (2-2) 定理2.1 存在惟一的多项式n n P L ∈满足插值条件(2-2)。 证明 我们采用构造性的证明方法。假如我们能够构造出n 次多项式()i l x ,使得 1,(),0,1,,0,i j ij i j l x i j n i j δ=?===?≠? , (2-3) 那么 ∑==n i i i n x l f x L 0) ()( (2-4) 是满足插值条件(2-2)的插值多项式。 余下的问题就是如何构造出满足式(2-3)的n 次多项式(),0,1,,i l x i n =。由于当j i ≠时,()0,0,1,,i j l x i j n ==,,即111,,,,,i i n x x x x -+是()i l x 的零点,因此()i l x 必然具有形式 ∏≠=+--=----=n i j j j i n i i i i x x c x x x x x x x x c x l 0110)()())(()()( 又因1)(=i i x l ,故∏≠=-=n i j j j i i x x c 0)(,因此 ∏ ∏∏≠=≠=≠=--=--= n i j j j i j n i j j j i n i j j j i x x x x x x x x x l 000) () () () ()( (2-5)
数值分析习题第二章
第二章 习题 1. 当x=1,-1,2时,f(3)=0,-3,4,求f(x)的二次插值多项式。 解:利用二次Lagrange 插值多项式公式, 这里403311210210==-=-==-=y y y x x x ,,,,,,得 ()()()() ()()()()()() ()() ()() 3 723651 34 23211212114021112132222211002-+=-++--=-+-+?++------? -=++=x x x x x x x x x x l y x l y x l y x L 2. 给出()()x x f ln =的数值表,(见表2.1),用线性插值及二次插值计算ln0.54的近似值。 表2.1 解:选取54.06.05.010===x x x ,,代入Lagrange 线性插值多项式,得 ()()()620219 .0510826.05 .06.05.054.0693147 .060.050.060 .054.054.054.0ln 1-≈-?--+-?--= ≈L 又选取54.06.05.04.0210====x x x x ,,,代入Lagrange 二次插值多项式,得 ()()()615320 .0)510826.0() 5.06.0)(4.06.0() 5.054.0)(4.054.0(693147 .0)6.05.0)(4.05.0() 6.054.0)(4.054.0(916291 .0)6.04.0)(5.04.0() 6.054.0)(5.054.0(54.054.0ln 2-≈-?----+-?----+-?----= ≈L 3. 设()x l k kh x x x x x k 203 0max 10≤≤=+=,求, ,,2,3。 解:由题意知 ()()()() ()()() 3212023102x x x x x x x x x x x x x l ------= 令()0'2=x l ,得 ()0383632 02 002 =++++-h h x x x h x x ,
第4章_插值法(数值分析)
4.1 设(0.4)0.38942,(0.5)0.47943,(0.6)0.56464f f f ===,使用一次、二次 Lagrange 插值多项式计算(0.5789)f 的近似值. 解:(0.4)0.38942,(0.5)0.47943,(0.6)0.56464f f f === 一次Lagrange 插值多项式公式 05338.08521.06 .05.06 .0)5.0(5.06.05.0) 6.0()(1+=--+--=x x f x f x P 故 546669.005338.057891.08521.0)57891 .0(1≈+?=P . 二次Lagrange 插值多项式公式: ) 5.04.0)( 6.04.0() 5.0)( 6.0() 4.0()4.0 5.0)( 6.05.0()4.0)(6.0()5.0()4.06.0)(5.06.0()4.0)(5.0() 6.0()(2----+----+----=x x f x x f x x f x P 即 01862.01161.124.0)(22-+-=x x x P 故 5470686 .001862.057891.01161.157891.024.0)57891.0(2 2=-?+?-=P 4.2 设01(),(), ,()n l x l x l x 是以为节点的01,,,n x x x 的n 次Lagrange 插值基函数,试 证明; (),0,1, ,n j j k k k x l x x j n ===∑ 证:假设在对应于01,,,n x x x 节点的函数值为,...)1,0(=i y i ,则应有: ),...,1,0()()(1 n i x l y x P n i i i ==∑= 取n j x y j i i ,...,1,0,==,由插值条件有: j i i j x y x P ==)( 故0 ()n j j i i i i x x l x ==∑,即0 ()n j j k k i x x l x ==∑