插值逼近 样条函数解读 PPT

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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)
相关文档
最新文档