插值逼近 样条函数解读 PPT
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
20 输出u, v
分段插值函数
I1 ( x)
I ( x)
I 2 ( x)
I
n
(
x)
x (x0 , x1)
x (x1, x2 ) ...... x (xn1, xn )
其中I j
x xj x j1 x j
y j1
x x j1 x j x j1
zi1
hi 1 3
zi
yi hi
1 1
yi hi 1
(9)
利用Si' (ti )=Si' -1(ti ),得到
hi zi1 2(hi hi1)zi
hi
zi1
6 hi
(
yi1
yi
)
6 hi 1
(
yi
yi1)
(10)
其中i 1,2,...n -(1 内节点).
zi 1 6hi
(
x
ti
)3
C(
x
ti
)
D(ti
1
x)
(6)
这里,C 和D是积分常数
由插值条件 Si (ti ) yi 以及 Si (ti 1) yi 1 可以确定C和 D
Si (x)
zi 6hi
(ti
1
x)3
zi 1 6hi
(x
ti )3
(
yi 1 hi
x=linspace(0,2.25,10); y=sqrt(x); xx=linspace(0,2.25,100);yy = spline(x,y,xx);
plot(x,y,'o',xx,yy)
1.5
1
0.5
0
0
0.5
1
1.5
2
2.5
x=linspace(0,2.25,10); y=sqrt(x); xx=linspace(0,2.25,100); yy = spline(x,y,xx);
S0(x) a0x b0 x [t 0,t1)
S1(x) a1x b1 x [t1,t2)
Sn -1(x) an 1x bn 1 x [t n -1,tn)
一次样条的几何图形就是折线。
任意给定t [t0 ,t1],都可以用这个样条估值。
首先判断t的区间,然后根据该段的直线求值。
这是因为
y
x xj x j1 x j
y j1
x x j1 x j x j1
yj
y j1 (x x j1)(y j y j1) /(x j x j1)
分段线性插值
10 v y j1 (u x j1)(y j y j1) /(x j x j1)
分段三次Hermite插值
三次Hermite插值 x [x j1, x j ]时
H3 (x) j1(x) y j1 j (x) y j j1(x) f j1 j (x) f j
令
A1
j 1 (u )
(1
2
u
x j1 hj
u )(
xj hj
这里:
Ai
1 6hi
(zi 1
zi ),
Bi
zi 2
,
Ci
hi 6
zi
1
hi 3
zi
1 hi
( yi
1
yi )
对函数 f(x) x 进行三次自然样条插值,其中节点取区间 [0, 2.25]的十等分点。 得到三次自然样条函数S(x)后,计算误差函数 E(x) S(x) - f(x),在[0, 2.25]上给出四十等分点上 误差 E(x)的值。
这样我们得到关于z0,z1,..., zn的线性方程组,n -1个方程
n 1个未知元z0,z1,..., zn. 我们可以选择 z0和 zn.
一个常用的选择是:z0 zn 0,这时的三次样条称为 三次自然样条。
线性系统 (10),当取 z0 0,zn 0,得到一个 n -1个方程,n -1个未知数的线性系统,该系统的系数矩阵
hi ti 1 ti bi 6( yi 1 yi )/ hi enddo
u1 2(h0 h1), v1 b1 b0 for i 2 to n -1do
ui 2(hi hi 1) hi21/ui 1 vi bi bi 1 hi 1vi 1/ui 1 enddo
yj
y j1 (x x j1)(y j y j1) /(x j x j1)
缺点:I(x)连续,但不光滑,精度较低,仅在
h
max{h
1 jn
j
xj
x j1}足够小才能较好的逼近。
分段三次Hermite插值
上述分段线性插值曲线是折线,光滑性差,如 果交通工具用这样的外形,则势必加大摩擦系 数,增加阻力,因此用hermite分段插值更好。
现在我们推导在小区间[ti, ti 1]上Si (x)的表达式
首先,设 zi S''(ti ). 显然, zi,1 i n -1存在,并且
xlimti S''(x) zi xlimti S''(x) (1 i n -1) (4)
又 Si (x)在区间[ti, ti 1]是3次多项式, 所以Si'' (x)是一次多项式(直线) 并且又
有时,我们将左边第一个区间扩大为:(-, t1) 右边第一个区间扩大为:[t n -1,) 这样,对任意实数t ,均可用样条估值。
可以看到,一次样条函数具有连续性。
三次样条(立方样条)
最常用的是三次样条函数
给定如下数据表:
x y
t0 y0
t1 y1
tn yn
(1)
构造满足数据表的三次样条函数
是对称的,三对角的,严格行对角占优的。
u1 h1
z1
v1
h1 u2 h2
h2 u3 h3
z2 z3
v2 v3
hn 3
un 2 hn 2
hn 2 un 1
下面我们讨论三次样条的求法。
分段多项式 Si -1 所在的区间为 [ti 1, ti ), Si 所在的区间为 [ti, ti 1),由插值条件可得: Si -1(ti ) yi Si (ti ) (1 i n -1) (3) 这时 S已经具有整体连续性
由三次样条的定义, S' and S''在整体上存在且连续
zi
1hi 6
)(x
ti
)
(
yi hi
zi hi 6
)(ti
1
x)
(7)
当 z0,z1,..., zn 确定,表达式 (2) (7)用来确定样条
S(x) 在每个区间的表达式[t 0, tn ],对任意x,首先确定x
所在的区间[ti, ti -1],然后用Si (x)估值。
为了确定 z1,..., zn -1 ,首先我们可以利用S'(x)d连续性.
首先,在每个小区间[t 0, t1),[t1, t2),.....,[t n -1, tn ), S(x) 是三次多项式。 设Si (x) 表示区间[ti, ti 1)上的三次多项式,则
S0 ( x)
x [t 0,t1)
S(x)
S1(x) x [t1,t2)
(2)
Sn -1(x) x [t n -1,tn )
由S,S', and S''的整体连续性能唯一确定样条S(x)吗?
首先我们可以看到确定三次样条S(x),共有4n个待定系数。 再看条件个数
每个小区间[ti, ti 1), 有两个插值条件 S(ti ) yi , S(ti 1) yi 1, 共有2n个条件(包含连续性)
S'(x) 在每一个内节点连续,即Si' -1(ti ) Si' (ti ), i 1,....., n -1 共有 n -1条件 同样S'' 在内节点连续也给了n -1条件, 这样,总共有4n - 2 个条件,4n个待定元 从而有两个自由变量。
)2
A2
j (u)
(1
2
u
xj hj
u )(
x j1 hj
)2
B1
j 1 (u )
(u
u x j1)(
xj hj
)2
B2
j
(u)
(u
xj
u )(
xj hj
)2
样条函数插值
所谓的样条函数,是指满足一定的连续条件的分段多项式。
假定节点为n 1个点 t0, t1,..., tn 满足t0 t1 tn . (有时,也称为网格点)
(-, t1), [t1, t2),,[t n-2, tn-1),[t n-1,) 有时,我们将 S0 的区间[t0, t1)延长至 (-, t0 ). 同样,将Sn -1的区间[t n-1,tn)延长至[t n ,). 计算表达式 (7)可采用下面的算法:
Si (x) yi (x ti )[Ci (x ti )[Bi (x ti )Ai ]] (11)
其中
Ai
1 6hi
(zi 1
zi ),
Bi
zi 2
,
Ci
hi 6
zi 1
hi 3
zi
1 hi
( yi 1
yi )
Si
(x)Байду номын сангаас
zi 6hi
(ti
1
x)3
zi 1 6hi
(x
ti
)3
(
yi 1 hi
zi
1hi 6
)(x
ti
)
(
yi hi
zi hi 6
)(ti
在每一个内节点ti处, 有 Si' -1(ti ) Si' (ti ).
将表达式(7)两边求导,通过化简,得到
Si'
(ti
)
hi 3
zi
hi 6
zi1
yi hi
yi 1 hi
(8)
由表达式 (7)可写出 Si -1(ti ),求导后用ti代人,得到
S i'
-1(ti )
hi 1 6
zn 0 for i n -1 to1step -1do
zi (vi hi zi 1)/ui enddo
z0 0 output (zi )
当 z0,z1,..., zn 确定后, 我们就可以用三次样条(表达式(2) 和表达式(7))进行估值。
对任意 x,首先确定x 所在的区间:
k 0为给定的整数。在节点 A t 0, t1,..., tn处的 k 样条函数 S (x)满足 1.在每个区间l [ti -1, ti ), S (x)是次数不超过k的多项式; 2.在整个区间[t 0,tn ]S(x) 具有(k -1)次连续导数。 因此,S (x)是k次分段多项式,整体具有(k -1)次连续导数。
zznn
2 1
vvnn12
这里
hi ti 1 ti,
ui
2(hi
hi
1
)
,
bi
6 hi
(yi
1
yi
),
vi bi bi 1
可以如下求解:(高斯消元法,不要选主元)
input n, (ti ), (y i ) for i 0 to n -1do
1
x)
(7)
Si
(x)
zi 6hi
(ti
1
ti
ti
x)3
zi 1 6hi
(x
ti
)3
(
yi 1 hi
zi
1hi 6
)(x
ti
)
(
yi hi
zi hi 6
)(ti
1 ti
ti
x)
(7)
Si (x) yi (x ti )[Ci (x ti )[Bi (x ti )Ai ]] (11)
zi S''(ti ), zi 1 S''(ti 1)
因此 :
Si''(x)
zi hi
(ti 1 x)
zi 1 hi
(x
ti
)
(5)
这里 hi ti 1 - ti.
将 (5)积分2次,就得到 Si (x) :
Si (x)
zi 6hi
(ti 1 x)3
零次样条
0次样条就是每个小区间是常数(楼梯),整体上没有连续性, 形式如下:
S0(x) c0 x [t 0,t1)
S(x)
S1(x) c1 x [t1,t2)
Sn -1(x) cn 1 x [t n -1,tn)
一次样条
一次样条表示如下:
S(x)
插值逼近 ---样条函数
4.4.1 分段插值
已知(x j , y j), j 0,1,..., n, 判断x [x j1, x j ] 则f (x)用[x j1, x j ]上的线性插值函数表示 。
分段线性插值
一般的,x j1 u x j ,则线性插值函数为
u y j1 (u x j1)(y j y j1) /(x j x j1)