《数值分析》教案5
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.6.4 分段三次Hermite 插值
为了利用多项式插值方法而又克服高次插值多项式的缺陷,便引入了分段插值的概念。它的基本思想是把函数整个区间上分成许多段,每段都选用适当的低次插值多项式代替函数,整体上按一定的要求连接起来,构成一个分段的插值函数。
为此,把函数)(x f 的自变量x 在区间],[b a 上用)1(+n 个节点分割成n 段:
b x x x x x a n n =<<<<<=-1210
根据这些节点的取值
i x ,)(x f 在节点上的函数值i i y x f =)(和导数值
i i m x f =')(),,2,1,0(n i =,可以构造一个分段三次插值函数)(x H ,它满足
下述条件:
①i i y x H =)(,i i y x H '=')(),,2,1,0(n i =。
② 在每个小区间],[1+i i x x ),,2,1,0(n i =上,都是一个三次多项式:
3
32210)(x
a x a x a a x H i i i i i +++=
把这样构成的分段三次函数)(x H 称为分段三次Hermite 插值函数,它的
各小段均为三次多项式,而整体上具有一阶连续导数。
由式(1-34)可直接写出分段三次Hermite 插值函数的分段表达式
12
112
1112
1112
111)()(2121)(++++++++++++'⎪⎪⎭
⎫
⎝⎛---+'⎪⎪⎭⎫ ⎝⎛---+⎪⎪⎭
⎫
⎝⎛--⎪⎪⎭⎫ ⎝
⎛--++⎪⎪⎭⎫ ⎝⎛--⎪⎪⎭⎫ ⎝⎛--+=i i i i
i i i i i i i i i i
i i i i i i i i i i
y x
x x x x x y x x x x x x y x
x x x x x x x y x x x x x
x x x x H
也可通过构造基函数给出分段三次Hermite 插值函数的表达式。参照分段线性插值与Hermite 插值基函数公式(1-31)和式(1-32),可得出分段三次
Hermite 插值的基函数为
⎪⎩⎪⎨⎧∈∈⎪⎪⎭
⎫
⎝⎛--⎪⎪⎭⎫ ⎝⎛--+=]
,[0
],[21)(1102
1010100n x x x x x x x x x x x x x x x h
)1,,1(],(),[0]
,(21],[21)(11012
11112
111-=⎪⎪⎪⎪⎩
⎪⎪⎪⎪⎨⎧∈∈⎪⎪⎭⎫ ⎝⎛--⎪⎪⎭⎫ ⎝⎛
--+∈⎪⎪⎭⎫ ⎝⎛--⎪⎪⎭⎫ ⎝⎛--+=+-++++----n i 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 h n i i i i i i i i i i i i i i i i i i i (1-38)
⎪⎩⎪⎨⎧∈∈⎪
⎪⎭⎫ ⎝⎛--⎪⎪⎭⎫ ⎝⎛--+=-----]
,[0
],[21)(1012
111n n n n n
n n n n n x x x x x x x x x x x x x x x h
⎪⎩⎪⎨⎧∈∈⎪⎪⎭⎫
⎝⎛---=]
,[0
],[)()(1102
10
100n x x x x x x x x x x x x x H
)1,,1(],(),[0],[)(],[)()(11012
1112
11-=⎪⎪⎪⎪⎩
⎪
⎪⎪⎪⎨⎧∈∈⎪
⎪⎭⎫ ⎝⎛---∈⎪⎪⎭⎫ ⎝⎛---=+-+++---n i x x x x x x x x x x x x x x x x x x x x x x x x H n i i i i i i i i i i i i i i i (1-39)
⎪⎩⎪⎨⎧∈∈⎪⎪⎭⎫
⎝⎛---=----]
,[0
],[)()(1012
11n n n n n
n n n x x x x x x x x x x x x x H
分段三次Hermite 插值函数为
])()([)(0
∑='+=n
i i i i i x H y x h y x H (1-40)
由余项公式(1-37)可以导出,分段三次Hermite 插值的误差有如下估计
)
(max 384)()()()
4(4
x f h x H x f x R b x a ≤≤≤-= (1-41)
其中
)(max 11
0i i n i x x h -=+-≤≤。
分段三次Hermite 插值函数是插值区间上的光滑函数,它与函数)(x f 在节点处密合程度较好。
1.6.5 分段三次Hermite 插值的MATLAB 实现
【例1-18】给定函数55,11
)(2
≤≤-+=x x
x f ,取插值节点k x k +-=5,10,,1,0 =k ,用分段Hermite 插值计算)(x ϕ,并画出)(x ϕ与)(x f 的图形。
解:在编辑窗口输入以下命令: a=-5;b=5;n=10;h=(b-a)/n x=a:h:b;y=1./(1+x.^2); xx=a:0.01:b;yy=1./(1+xx.^2); m=length(xx);z=zeros(1,m);