计算方法分段线性_三次样条插值
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 希望找到一种方便计算机计算简单的构造方法 -显式方法。
2.5.2 三次样条插值函数的求法
记:
S(xi )
f(x i )
yi;
Si (x)
Mi 1
(xi x)3 6hi
hi xi xi1
x 3
2 2
f(3)
1 5
(x
3)
1 10
(x
2)
1 10
x
2 5
在[3,4]上,
S(x)
x 3
4 4
f(3)
x 4
3 -3
f(4)
1 10
(x
4)
1 17
(x
3)
7 170
x
19 85
在[4,5]上,
S(x)
x 4
5 5
f(4)
x4 5-4
f(5)
1 17
(x
5)
1 (x 26
4)
9 x 31 442 221
将这些分段线性函数拼接在一起,得:
S(x)
x 2
1,x
[0,1]
S(x) 3 x 4 , x [1,2]
10
5
S(x)
1 10
x
2 5
,
x
[2,3]
S(x) 7 x 19 , x [3,4]
而不是在整 个区间[a, b] 上做线性插 值。
a
b
2.4.2 分段线性插值
设f(x)在n+1个节点 a x0 x1 … xn b 上的函数值为 f(x0), f(x1), … , f(xn ) 。
在每个小区间
[xk , xk1], k 0,1,..., n
上作线性插值,得
满足自然边界条件的三次样条插值函数称为自然 样条插值函数。
• 这样,由上给定的任一种边界条件加上插值条 件和连接条件,则得出4n个方程,可以唯一确 定4n个系数。
• 从而得到三次样条插值函数S(x)在各个子区间 xi , xi+1上的表达式S(xi)(i=1,2,…,)。
• 但是,这种做法当n较大时,计算工作量很大, 不便于实际应用。
f(x)
S(x)
|
M2 2
max
xk xxk 1
|
(x
-
xk )(x
-
xk1)
|
max | f(x) S(x) | M2 h2
a x b
8
其中:
M2
max | f(x) |, a x b
h mkax(xk1 - xk )
证明: 当x [xk , xk1]时,
计算方法 (Numerical Analysis)
第3次 分段线性插值与三次样条插值
内容
1. 高次插值的龙格现象 2. 分段线性插值与误差估计 3. 三次样条插值与误差估计
高次插值的龙格现象
2.4.1 高次插值的龙格现象
插值多项式余项公式
R(x)
f(n1)(ξ) (x (n 1)!
因此,次数太高的高次插值多项式往往并不实用, 因为节点数增加时,计算量增大了,但插值函数 的精度未必能够提高。称为龙格现象。
Home
分段线性插值与误差估计
为克服龙格现象,可以采用分段插值的方法:
• 将插值区间分成若干个小的区间,在每 个小区间进行线性插值,
• 然后相互连接,用连接相邻节点的折线 逼近被插函数
x x2 x3 x2
f(x3 )
2 3 60
x
33 2
2
将各小区间的线性插值函数连接在一起,得
2 1x 3
30
2
2
S(x)
3 2x2 23
30
2
3
2
3 60
x
33 2
2
30 x 45 45 x 60 60 x 90
称为边界条件。 常用边界条件的三种类型(略去了第3种)
类型1:给定两端点f(x)的一阶导数值:
S(x0 ) f (x0 ), S(xn ) f(xn )
类型2:给定两端点f(x)的二阶导数值:
S(x0 ) f(x0 ), S(xn ) f(xn ) 特别地, S(x0 ) S(xn ) 0 称为自然边界条件。
考察函数
f(x)
1 1 x2
,
5 x 5
右图给出了 P5 (x )
y P10(x)
和 P10(x ) 的图像,当n
f(x)
增大时,Pn(x ) 在两端
会发生激烈的振荡,
称为龙格现象。
P5(x)
-5
0
5x
该现象表明:在大范围内使用高次插值,逼近的 效果往往是不理想的。
另外,从舍入误差来看,高次插值误差的传播也 较为严重,一个节点上产生的舍入误差会在计算 中不断放大,并传播到其它节点上。
1 2
,
f(5)
148 17576
max | f(x) S(x) | 2 h2 1 h2 1
a x b
8
4
4
综上可得 max | f(x) S(x) |
2 h2
1
a x b
8
4
y
y=S(x):分段线性函数
y
1 1 x2
1 23 45 x
现象:在[0, 1]上逼近效果最差,在其 它区间,逐渐变好。
|
f(x)
S(x)
||
f(ξ) 2!
(x
-
xk )(x
-
xk 1)
|
记
g(x)
(x - xk )(x - xk1), 解g(x)
0,得x*
Fra Baidu bibliotek
xk
xk1, 2
得知x*是g(x)的极值点,将x*代入g(x):
g(x* )
(x *
- xk )(x*
- xk1)
1 2
(x k 1
Home
三次样条插值与误差估计
2.5.1 三次样条函数
在船体、飞机等外形曲线的设计中,不仅要求曲 线连续,而且要有二阶光滑度,即有连续的二阶导 数。
要求分段插值函数在整个区间上具有连续的二 阶导数。
因此有必要寻求一种新的插值方法,这就是样条 函数插值法
样条函 数来历
定义5.4 . 设函数f(x)定义在区间a, b上,在给定
-
xk )
1 2
(xk
- xk1)
|
f(x)
S(x)
|
M2 2
1 4
|
(xk 1
-
xk )(xk
-
xk 1)
|
M2 8
| (xk1 - xk )(xk
- xk1) |
由此,即得结论。
练习:给出本题的S(x)在[0,5]上的误差估计。
max | f(x) S(x) | M2 h2
f(x1)
2 30
1x
3 2
2
S(x)在区间45,60上的线性插值为:
S(x)
x x2 x1 x2
f(x1)
x x1 x2 x1
f(x2 )
3 30
2
x2
2
3 2
3
S(x)在区间60,90上的线性插值为:
S(x)
x x3 x2 x3
f(x2)
Si(x) ai0 ai1x ai2x2 ai3x3 i 0,1,...n, 1
分析:待定系数:ai 0, ai 1, ai 2, ai 3 ,n个子区间,要
确 定S(x),需要确定4n个待定系数。
已知: 1)要求 S( xi )= f ( xi ), i = 0, 1,…, n
S1(x)
x xk
xk1 xk1
f(x k )
x xk xk1 xk
f(x k1)
(xk x xk1)
在几何上就是用折线替代曲线,如图所示。
y
y=f(x)
y=p(x)
x0 x1
x2
xn x
例2.19 已知f(x)在四个节点上的函数表如下:
xi
30 45 60 90
a x b
8
现在对f(x)的2阶导数进行估计。
f(x)
1 1 x2
, f(x)
6x2 2 (1 x2 )3
g(x)
g(x)
24x
1(1
x2 x2 )4
0, x 0, x
[0,1],f(x)单调增加 1,f(x)单调减少
f(0)
-2, f(1)
170
85
S(x)
9x 442
31 , x 221
[4,5]
分段线性插值的误差估计(仅对充分光滑的f(x)成立)
定理 设f(x)在a, b有2阶导数,
a x0 x1 … xn b
则在[a, b]上的分段线性插值S(x),的截断误差满足:
max
xk xxk 1
|
S(x),S' (x),S' ' (x)
在a, b 上连续)
三次样条函数插值
则称S(x)为三次样条插值函数。
比线性插值要求严 苛得多!
y
y=f(x) (黑色)
y=S(x) (蓝色)
x0
xi
xi+1
xn
x
问题:这个S(x)是三次样条插值函数吗?
回答:不是。 原因: 1)在每个区间内都是3次多项式; 2)在小区区间端点xi处连续并且:f(xi)=S(xi) ; 3)S”(x)在xi 点不连续,即不光滑。
能产生多 少个方程?
2)要求 S(x),S' (x),S' ' (x) 在整个插值区间a, b
上连续,因此在连接点 x1, … , x n1 上连续。
满足条件: 1)插值条件(n+1个节点)
S(xi ) f(x i ), i 0,1, … , n
2)连接条件(3n-3个节点) S(xi 0) S(xi 0)
x 0
1 f(0) 1
x 1
0 0
f(1)
1 x
x 2
x 2
1
在[1,2]上,
S(x)
x 1
2 2
f(1)
x 1 f(2) 21
1 2
(x
2)
1 (x 5
1)
3 x4 10 5
在[2,3]上,
S(x)
x 2
3 3
f(2)
的n+1个节点xi,(i=0,…,n)上的函数值为f(xi)。
若存在函数S(x),满足:
a) 在每个小区间 xi, xi+1 (i=0,1,…,n-1)上是一 个三次多项式(注意:一共是n个区间)。
b) 在每个节点上满足 S(xi) = f(xi) (i=0,1,…,n) c) 在a, b上有连续的二阶导数(隐含:
0x
1
设 | f(4)(x) | 1, x (0,1)
则3次插值多项式的误差
|
R(x)
||
f(4)(ξ) (x 4!
x0 )(x
x1)(x
x2 )(x
x3 )
|
41!| (x x0 )(x x1)(x x2 )(x x3 ) |
41!
1 3
1 3
2 3
1
y
1
0.87
y=S(x)
0.7
连续但不光滑
0.5
30
45
60
90
x
练习
函数f(x)
1 1 x2
, 求其在[0,5]上的 分段
线性插值多项式。插值 节点取为0,1,2, 3,4,5。
xi
0
f(xi) 1
12345
111 1 1 2 5 10 17 26
解:在[0, 1]上(课堂练习)
S(x)
2 648
0.0031
但是当区间[a, b]比较大的时候,误差可能很大。
影响误差的因素:一般地说
• 插值节点的个数:插值节点越多,即使用高 次插值,误差越小
• f(x)的高阶导数绝对值:越小,误差越小
适当提高插值多项式的次数,有可能提高 计算结果的准确程度,但并非次数越高越 好。
当插值节点增多时,也不能绝对保证非节 点处的插值精度得到改善,有时反而误差 更大。
f(xi) 1 2
22
31
2
求f(x)在区间30,90上的分段连续线性插值函数 S(x)。
解:将插值区间30,90分成连续的三个小区间 30, 45, 45, 60, 60, 90
则S(x)在区间30,45上的线性插值为:
S(x)
x x0
x1 x1
f(x0 )
x x0 x1 x0
x0 )(x
x1)
(x
xn ),
ξ (a, b)
例:设函数f(x)定义在区间[0, 1]上 ,并且满足 |f(4) (x)|<1,xϵ[0, 1]。在4个插值节点 x0=0, x1=1/3, x2=2/3, x3=1, 对f(x)进行插值得多项式P3(x),估计误差。
下面讨论误差的情况:
y
y=f(x)
y=S(x)
S(xi) = f(xi) (i=0, 1, 2, 3)
x
S(x)是三次样条插值函数:在每个区间内 都是3次多项式,在小区区间端点处连续、 光滑。
确定多项式的系数
S(x)是分段3次多项式,在每个小区间xi, xi+1上要确 定4个待定参数。用Si(x)表示在xi, xi+1上的表达式:
S(xi 0) S(xi 0) i 1,2, … , n 1
S(xi 0) S(xi 0) 不包括端点a, b
上述二式共给出了4n-2个条件,而待定系数有4n
个,因此还需要2个条件才能确定S(x)。
x0 x1 x2 x3 x4 x5
x6 x
通常在区间端点 a x 0, b x n上各加一个条件,
2.5.2 三次样条插值函数的求法
记:
S(xi )
f(x i )
yi;
Si (x)
Mi 1
(xi x)3 6hi
hi xi xi1
x 3
2 2
f(3)
1 5
(x
3)
1 10
(x
2)
1 10
x
2 5
在[3,4]上,
S(x)
x 3
4 4
f(3)
x 4
3 -3
f(4)
1 10
(x
4)
1 17
(x
3)
7 170
x
19 85
在[4,5]上,
S(x)
x 4
5 5
f(4)
x4 5-4
f(5)
1 17
(x
5)
1 (x 26
4)
9 x 31 442 221
将这些分段线性函数拼接在一起,得:
S(x)
x 2
1,x
[0,1]
S(x) 3 x 4 , x [1,2]
10
5
S(x)
1 10
x
2 5
,
x
[2,3]
S(x) 7 x 19 , x [3,4]
而不是在整 个区间[a, b] 上做线性插 值。
a
b
2.4.2 分段线性插值
设f(x)在n+1个节点 a x0 x1 … xn b 上的函数值为 f(x0), f(x1), … , f(xn ) 。
在每个小区间
[xk , xk1], k 0,1,..., n
上作线性插值,得
满足自然边界条件的三次样条插值函数称为自然 样条插值函数。
• 这样,由上给定的任一种边界条件加上插值条 件和连接条件,则得出4n个方程,可以唯一确 定4n个系数。
• 从而得到三次样条插值函数S(x)在各个子区间 xi , xi+1上的表达式S(xi)(i=1,2,…,)。
• 但是,这种做法当n较大时,计算工作量很大, 不便于实际应用。
f(x)
S(x)
|
M2 2
max
xk xxk 1
|
(x
-
xk )(x
-
xk1)
|
max | f(x) S(x) | M2 h2
a x b
8
其中:
M2
max | f(x) |, a x b
h mkax(xk1 - xk )
证明: 当x [xk , xk1]时,
计算方法 (Numerical Analysis)
第3次 分段线性插值与三次样条插值
内容
1. 高次插值的龙格现象 2. 分段线性插值与误差估计 3. 三次样条插值与误差估计
高次插值的龙格现象
2.4.1 高次插值的龙格现象
插值多项式余项公式
R(x)
f(n1)(ξ) (x (n 1)!
因此,次数太高的高次插值多项式往往并不实用, 因为节点数增加时,计算量增大了,但插值函数 的精度未必能够提高。称为龙格现象。
Home
分段线性插值与误差估计
为克服龙格现象,可以采用分段插值的方法:
• 将插值区间分成若干个小的区间,在每 个小区间进行线性插值,
• 然后相互连接,用连接相邻节点的折线 逼近被插函数
x x2 x3 x2
f(x3 )
2 3 60
x
33 2
2
将各小区间的线性插值函数连接在一起,得
2 1x 3
30
2
2
S(x)
3 2x2 23
30
2
3
2
3 60
x
33 2
2
30 x 45 45 x 60 60 x 90
称为边界条件。 常用边界条件的三种类型(略去了第3种)
类型1:给定两端点f(x)的一阶导数值:
S(x0 ) f (x0 ), S(xn ) f(xn )
类型2:给定两端点f(x)的二阶导数值:
S(x0 ) f(x0 ), S(xn ) f(xn ) 特别地, S(x0 ) S(xn ) 0 称为自然边界条件。
考察函数
f(x)
1 1 x2
,
5 x 5
右图给出了 P5 (x )
y P10(x)
和 P10(x ) 的图像,当n
f(x)
增大时,Pn(x ) 在两端
会发生激烈的振荡,
称为龙格现象。
P5(x)
-5
0
5x
该现象表明:在大范围内使用高次插值,逼近的 效果往往是不理想的。
另外,从舍入误差来看,高次插值误差的传播也 较为严重,一个节点上产生的舍入误差会在计算 中不断放大,并传播到其它节点上。
1 2
,
f(5)
148 17576
max | f(x) S(x) | 2 h2 1 h2 1
a x b
8
4
4
综上可得 max | f(x) S(x) |
2 h2
1
a x b
8
4
y
y=S(x):分段线性函数
y
1 1 x2
1 23 45 x
现象:在[0, 1]上逼近效果最差,在其 它区间,逐渐变好。
|
f(x)
S(x)
||
f(ξ) 2!
(x
-
xk )(x
-
xk 1)
|
记
g(x)
(x - xk )(x - xk1), 解g(x)
0,得x*
Fra Baidu bibliotek
xk
xk1, 2
得知x*是g(x)的极值点,将x*代入g(x):
g(x* )
(x *
- xk )(x*
- xk1)
1 2
(x k 1
Home
三次样条插值与误差估计
2.5.1 三次样条函数
在船体、飞机等外形曲线的设计中,不仅要求曲 线连续,而且要有二阶光滑度,即有连续的二阶导 数。
要求分段插值函数在整个区间上具有连续的二 阶导数。
因此有必要寻求一种新的插值方法,这就是样条 函数插值法
样条函 数来历
定义5.4 . 设函数f(x)定义在区间a, b上,在给定
-
xk )
1 2
(xk
- xk1)
|
f(x)
S(x)
|
M2 2
1 4
|
(xk 1
-
xk )(xk
-
xk 1)
|
M2 8
| (xk1 - xk )(xk
- xk1) |
由此,即得结论。
练习:给出本题的S(x)在[0,5]上的误差估计。
max | f(x) S(x) | M2 h2
f(x1)
2 30
1x
3 2
2
S(x)在区间45,60上的线性插值为:
S(x)
x x2 x1 x2
f(x1)
x x1 x2 x1
f(x2 )
3 30
2
x2
2
3 2
3
S(x)在区间60,90上的线性插值为:
S(x)
x x3 x2 x3
f(x2)
Si(x) ai0 ai1x ai2x2 ai3x3 i 0,1,...n, 1
分析:待定系数:ai 0, ai 1, ai 2, ai 3 ,n个子区间,要
确 定S(x),需要确定4n个待定系数。
已知: 1)要求 S( xi )= f ( xi ), i = 0, 1,…, n
S1(x)
x xk
xk1 xk1
f(x k )
x xk xk1 xk
f(x k1)
(xk x xk1)
在几何上就是用折线替代曲线,如图所示。
y
y=f(x)
y=p(x)
x0 x1
x2
xn x
例2.19 已知f(x)在四个节点上的函数表如下:
xi
30 45 60 90
a x b
8
现在对f(x)的2阶导数进行估计。
f(x)
1 1 x2
, f(x)
6x2 2 (1 x2 )3
g(x)
g(x)
24x
1(1
x2 x2 )4
0, x 0, x
[0,1],f(x)单调增加 1,f(x)单调减少
f(0)
-2, f(1)
170
85
S(x)
9x 442
31 , x 221
[4,5]
分段线性插值的误差估计(仅对充分光滑的f(x)成立)
定理 设f(x)在a, b有2阶导数,
a x0 x1 … xn b
则在[a, b]上的分段线性插值S(x),的截断误差满足:
max
xk xxk 1
|
S(x),S' (x),S' ' (x)
在a, b 上连续)
三次样条函数插值
则称S(x)为三次样条插值函数。
比线性插值要求严 苛得多!
y
y=f(x) (黑色)
y=S(x) (蓝色)
x0
xi
xi+1
xn
x
问题:这个S(x)是三次样条插值函数吗?
回答:不是。 原因: 1)在每个区间内都是3次多项式; 2)在小区区间端点xi处连续并且:f(xi)=S(xi) ; 3)S”(x)在xi 点不连续,即不光滑。
能产生多 少个方程?
2)要求 S(x),S' (x),S' ' (x) 在整个插值区间a, b
上连续,因此在连接点 x1, … , x n1 上连续。
满足条件: 1)插值条件(n+1个节点)
S(xi ) f(x i ), i 0,1, … , n
2)连接条件(3n-3个节点) S(xi 0) S(xi 0)
x 0
1 f(0) 1
x 1
0 0
f(1)
1 x
x 2
x 2
1
在[1,2]上,
S(x)
x 1
2 2
f(1)
x 1 f(2) 21
1 2
(x
2)
1 (x 5
1)
3 x4 10 5
在[2,3]上,
S(x)
x 2
3 3
f(2)
的n+1个节点xi,(i=0,…,n)上的函数值为f(xi)。
若存在函数S(x),满足:
a) 在每个小区间 xi, xi+1 (i=0,1,…,n-1)上是一 个三次多项式(注意:一共是n个区间)。
b) 在每个节点上满足 S(xi) = f(xi) (i=0,1,…,n) c) 在a, b上有连续的二阶导数(隐含:
0x
1
设 | f(4)(x) | 1, x (0,1)
则3次插值多项式的误差
|
R(x)
||
f(4)(ξ) (x 4!
x0 )(x
x1)(x
x2 )(x
x3 )
|
41!| (x x0 )(x x1)(x x2 )(x x3 ) |
41!
1 3
1 3
2 3
1
y
1
0.87
y=S(x)
0.7
连续但不光滑
0.5
30
45
60
90
x
练习
函数f(x)
1 1 x2
, 求其在[0,5]上的 分段
线性插值多项式。插值 节点取为0,1,2, 3,4,5。
xi
0
f(xi) 1
12345
111 1 1 2 5 10 17 26
解:在[0, 1]上(课堂练习)
S(x)
2 648
0.0031
但是当区间[a, b]比较大的时候,误差可能很大。
影响误差的因素:一般地说
• 插值节点的个数:插值节点越多,即使用高 次插值,误差越小
• f(x)的高阶导数绝对值:越小,误差越小
适当提高插值多项式的次数,有可能提高 计算结果的准确程度,但并非次数越高越 好。
当插值节点增多时,也不能绝对保证非节 点处的插值精度得到改善,有时反而误差 更大。
f(xi) 1 2
22
31
2
求f(x)在区间30,90上的分段连续线性插值函数 S(x)。
解:将插值区间30,90分成连续的三个小区间 30, 45, 45, 60, 60, 90
则S(x)在区间30,45上的线性插值为:
S(x)
x x0
x1 x1
f(x0 )
x x0 x1 x0
x0 )(x
x1)
(x
xn ),
ξ (a, b)
例:设函数f(x)定义在区间[0, 1]上 ,并且满足 |f(4) (x)|<1,xϵ[0, 1]。在4个插值节点 x0=0, x1=1/3, x2=2/3, x3=1, 对f(x)进行插值得多项式P3(x),估计误差。
下面讨论误差的情况:
y
y=f(x)
y=S(x)
S(xi) = f(xi) (i=0, 1, 2, 3)
x
S(x)是三次样条插值函数:在每个区间内 都是3次多项式,在小区区间端点处连续、 光滑。
确定多项式的系数
S(x)是分段3次多项式,在每个小区间xi, xi+1上要确 定4个待定参数。用Si(x)表示在xi, xi+1上的表达式:
S(xi 0) S(xi 0) i 1,2, … , n 1
S(xi 0) S(xi 0) 不包括端点a, b
上述二式共给出了4n-2个条件,而待定系数有4n
个,因此还需要2个条件才能确定S(x)。
x0 x1 x2 x3 x4 x5
x6 x
通常在区间端点 a x 0, b x n上各加一个条件,