第4章 函数的插值 刘东毅 天津大学理学院数学系 4: 函数的插值
函数的插值 Overview: Our goals: 插值函数的基本概念 对一组离散的数据,研究如何建立逼近它的连续的数学模型: 插值多项式 分段插值多项式 样条插值多项式 讨论插值多项式P(x)的存在唯一性、收敛性及误差估计等。 Overview: 插值函数的基本概念 Lagrange插值公式及其余项 Newton插值公式及其余项 Hermite插值 分段插值 三次样条插值 一次课可以讲完前两节。 4: 函数的插值
§4.1 插值问题的基本概念 4: 函数的插值
4.1.1插值法和插值函数 函数类Φ可取 代数多项式 分段多项式 三角多项式 有理函数 我们的问题是: 插值条件 设函数y = f (x) 定义在区间[a , b]上,其解析表达式未知,只能通过实验或观察得到有限的互异的离散的点xk 处的函数值 xk yk=f (xk) x0 f (x0) x1 f (x1) x2 f (x2) … xn f (xn) 在一个函数类Φ中寻求一个简单函数P(x),使满足: 我们的问题是: 插值条件 P(xk) = f (xk) = yk (4.1.1) 4: 函数的插值
定义 4.1.1 设函数 y = f (x) 在区间[a , b]上有定义,且已知点 a≤ x0 < x1 < x2 < … < xn ≤ b 处的函数值 yk = f (xk) (k = 0,1,…,n )。 (4.1.2) 若存在简单函数P(x)∈Φ使得P(xk) = f (xk) = yk , 则称P(x) 为 f (x) 的插值函数,f (x) 称为被插值函数, xk称为插值节点,区间[a , b]称为插值区间, Φ称为插值函数类,求 P(x) 的方法称为插值法。 当选用“某种”特定的插值函数类时,相应的插值法称为“某种”插值法。如选用多项式函数类,相应的插值法称为多项式(或代数)插值法。如选用分段多项式函数类,相应的插值法称为分段多项式插值法。 4: 函数的插值
4.1.2 插值问题的几何解释 本章主要研究多项式插值问题 y = f (x) y = P (x) y x x0 x1 x2 xn O 4: 函数的插值
4.1.3 插值多项式的存在与惟一性 设Pn[x]为次数不超过n 的多项式空间。则在多项式(或代数)插值中,最常见的问题是求一个多项式 P ∈ Pn[x] 满足插值条件: P(xk) = f (xk) = yk (k = 0,1, …,n), (4.1.1) 此时P(x) 的形式为 P(x) = a0 + a1 x + a2 x2 + … + an xn (4.1.3) 定理4.1.1 设插值节点x0 , x1 , … , xn 互异,则满足插值条件(4.1.1)且次数不超过n 的插值多项式 (4.1.3) 是存在且唯一的。 满足插值条件的次数不超过 n 的插值多项式是否存在且唯一? 4: 函数的插值
§4.2 Lagrange插值公式及其余项 4.2.1 Lagrange 插值公式 首先讨论低次插值多项式,然后再推广到一般情况。 当n=1时,即已知 y = f (x) 的两个数据点 A(x0, f (x0) ),B(x1, f (x1) ),其中x0 x1,要求线性函数y = L1(x),使其满足插值条件 L1(x0) = f (x0), L1(x1) = f (x1) (4.2.1) 从几何上说,就是找一条直线 y = L1(x),使其通过A (x0, f (x0) ),B (x1, f (x1) )这两个点。 4: 函数的插值
利用直线的两点式公式, y = L1(x) 可表示为 4.2.1 Lagrange 插值公式 x y O y = f (x) x0 x1 A B y = L1(x) 利用直线的两点式公式, y = L1(x) 可表示为 经整理有 4: 函数的插值
显然L1(x) 满足插值条件 (4.2.1),称之为线性插值公式。 4.2.1 Lagrange 插值公式 显然L1(x) 满足插值条件 (4.2.1),称之为线性插值公式。 若令 L1(x0) = f (x0) L1(x1) = f (x1) 则 L1(x) = l0 (x) f (x0) + l1(x) f (x1) 。 (4.2.3) 即L1(x) 为l0 (x) 与l1(x) 的线性组合,组合系 数为 f (x0) ,f (x1) . 下面讨论l0 (x) 与l1(x)的特征 4: 函数的插值
且均为一次式,称l0 (x) 与l1 (x)为 一次插值基函数. 4.2.1 Lagrange 插值公式 显然l0 (x) 与l1 (x)满足 且均为一次式,称l0 (x) 与l1 (x)为 一次插值基函数. 一般地,设 y = f (x) 在互异的节点 x0 , x1 ,…, xn 处的函数值为: yk = f (xk) (k = 0 , 1, … , n) 可以构造≤n次的多项式Ln (x), 使其满足插值条件 Ln (xk) = f (xk) (k = 0 , 1 , … , n) 。 4: 函数的插值
类似于 一次插值(4.2.3),Ln(x)有如下的形式 4.2.1 Lagrange 插值公式 类似于 一次插值(4.2.3),Ln(x)有如下的形式 Ln(x) = l0(x) f (x0) + l1(x) f (x1) + … +ln(x) f (xn) , 其中 l0 (x), l1(x), …, ln(x) 均为次数不超过 n 的多项式。为满足插值条件,lk(x)应满足 。 下面计算lk (x) (k = 0 , 1 , … , n) . 由上式知,lk(x) 有根 x0 , x1 , …, xk-1 , xk+1 , xn,则 lk(x) = c (x - x0) …( x–xk-1) ( x – xk+1)…( x – xn)。 4: 函数的插值
4.2.1 Lagrange 插值公式 再由lk(xk) = 1,得 于是 从而有 。 (4.2.6) 1 = c (xk - x0)( xk - x1) ( xk - xk-1)( xk - xk+1) ( xk - xn), 于是 从而有 。 (4.2.6) 上式 (4.2.6) 称为Lagrange插值公式。 4: 函数的插值
为了后面的讨论,Lagrange插值公式可写成如下形式 lk(x) (k = 0 , 1 , … , n) 称为节点x0 ,,x1,…,xn上的n次Lagrange插值基函数,Ln(x) 称为n次Lagrange 插值多项式。 为了后面的讨论,Lagrange插值公式可写成如下形式 其中 , 4: 函数的插值
插值基函数lk(x)的图形 线性插值基函数 二次插值基函数 y lk (x) lk+1 (x) xk xk+1 x y xk-1 xk x 4: 函数的插值
例4.2.1 已知 y = f (x) 的三个数据点 (-1,4) , (0,-1) , (1,2) 。求二次Lagrange插值基函数和 L2(x)。 解:依题意,设x0= -1,x1=0,x2=1,则 因此有 4: 函数的插值
定义4.2.2 设Ln(x)为 f (x)的Lagrange插值多项式, Rn(x) = f (x) -Ln(x) 定理 4.2.1 设函数 f (x) 的 n 阶导数 f (n)(x) 在区间[a , b]上连续,n + 1 阶导数 f (n+1)(x) 在区间 (a , b) 内存在,Ln(x) 为 f (x) 在互异节点x0 , x1 , … xn 上的 n 次 Lagrange插值多项式,则对任意的 x∈[a , b] , 插值余项 关于此余项有如下定理. 其中ξ∈(a ,b)且依赖于x. 4: 函数的插值
Lagrange插值余项 其中ξ∈(a ,b)且依赖于x. f (n+1) (ξ) 一般是未知的 4: 函数的插值
在 Lagrange 插值余项中含有一项 f (n+1) (ξ) ,由于ξ一般是 x 的未知函数,所以 f (n+1) (ξ) 一般是未知的,故此公式使用起来很不方便 。 人们往往用下列误差估计式 其中 注1: 注2: 可以看出,|ωn+1 (x) | 越小,则| Rn (x) |也越小. 因此当求插值点 x 处 f (x) 的近似值 Ln(x) 时,应尽量选取与 x 最接近的插值节点作插值且最好使用内插公式。一般来讲,内插比外推误差小。 4: 函数的插值
这是 Lagrange 插值基函数所满足的关系式。 注3: 当 f (x) 是 ≤n次的多项式时, f (n+1) (x) = 0 , 由此推出 Rn (x) = 0,从而有 f (x) = Ln (x),即此时f (x) 的 n 次Lagrange插值多项式就是其自身.特殊地,当 f (x) = 1 时,有 这是 Lagrange 插值基函数所满足的关系式。 4: 函数的插值
例4.2.2 设函数 f (x) = sin x 的数据表如下: xk 0.0 0.1 0.2 0.3 yk=f (xk) 0.0000 0.0998 0.1987 0.2955 利用线性和二次Lagrange插值公式求f (0.15)的近似值,并利用余项公式估计误差。 解: (1) 利用线性插值公式 取x0= 0.1,x1= 0.2为插值节点,x = 0.15为插值点,代入线性插值公式,有 4: 函数的插值
由余项公式(4.2.12) 知 4: 函数的插值
所以f (0.15)的线性插值近似值为0.1493,误差不超过2.49×10-4。 而在 [0.1, 0.2]上 , 故 。 所以f (0.15)的线性插值近似值为0.1493,误差不超过2.49×10-4。 4: 函数的插值
再取x0=0.0,x1=0.1,x2=0.2为节点,插值点 x = 0.15,代入二次插值公式 (2) 利用二次插值公式 再取x0=0.0,x1=0.1,x2=0.2为节点,插值点 x = 0.15,代入二次插值公式 4: 函数的插值
。 所以f (0.15)的二次插值近似值为0.1494 。 4: 函数的插值
绝对误差为 由于在区间[0.0, 0.2]上 故 。 所以绝对误差不超过6.25×10-5。 4: 函数的插值
4.2 Lagrange 插值公式及其余项 说明: 近似值保留四位小数是由于题目中没有限定精度,而所给的数据最多有四位小数,为保证数值结果的精确性,计算结果保留了四位小数。而在误差估计中,若没有特殊要求,只需保留二至三位有效数字即可,关键是数量级(这里是10-4、 10-5 )不能有错。 在作二次插值时没选0.1,0.2和0.3作为节点,主要因为在估计误差时cos x在区间[0.1, 0.3] 上的最大值不易计算且计算时会有误差。再者也由于f (0.0)为0,可少算一项。 在作插值时尽量用内插且选择与插值点接近的节点。内插与外插相比,一般来说前者的误差较小。 4: 函数的插值
§4.3 Newton插值公式及其余项 Lagrange 插值基函数 lk (x) 是用插值节点 xk 确定的, 因此每增加一个插值节点,插值基函数的结构就要发生变化,以前的计算结果毫无用处。我们希望当增加插值节点时,以前的计算结果可以继续使用。 Newton 插值具有此优点。 而Newton 插值与差商有关,使用差商表示的,故首先介绍差商。 在我们设计算法时,应尽量拥有这种属性,即已经算出的结果,应能够继续使用。 Lagrange插值法是根据插值条件的几何意义,来计算插值多项式的。 而牛顿插值法是通过引入插商的概念,来计算插值多项式的。 4: 函数的插值
1.差商的定义及性质 定义4.3.1 称 f [x0] = f (x0) 为关于x0 的零阶差商。 称 称 为 f (x) 关于x0 , xk 两点的一阶差商。 称 为 f (x) 关于x0 , x1 , xk 三点的二阶差商。 在上述定义中,若视 xk为变量,则得到差商函数的概念,即 4: 函数的插值
高一阶的差商(函数)是低一阶差商(函数)的一阶差商。 和 分别为一阶差商函数和二阶差商函数。为了方便,也可称 f (x) 为零阶差商函数,记为 f [x] 。 由此可以看出, f (x) 关于x0 , xk 的一阶差商就是零阶差商函数 f [x]在x0 , xk 的一阶差商;f (x)关于x0 , x1, xk 的二阶差商就是一阶差商函数 f [x0, x] 在 x1 , xk 的一阶差商。也就是说, 高一阶的差商(函数)是低一阶差商(函数)的一阶差商。 4: 函数的插值
差商又称均差,在不引起混淆的情况下,差商函数亦可简称为差商。下面介绍差商的性质。 一般地,称 为 f (x) 关于x0 , x1 , … , xk 的 k 阶差商。 函数 f (x) 的 k 阶差商 f [x0 , x1 , … , xk] 可以看成是k-1 阶差商函数 f [x0 , x1 , … , xk-2, x] 关于 xk-1, xk 处的一阶差商。 差商又称均差,在不引起混淆的情况下,差商函数亦可简称为差商。下面介绍差商的性质。 4: 函数的插值
差商的性质 性质1 函数 f (x) 的 k 阶差商 f [x0 , x1 , … , xk]可表示为函数 f (x0) , f (x1) , … , f (xk) 的线性组合: 其中 。 性质2 差商 f [x0 , x1 , … , xk] 为 x0 , x1 , … , xk 的对称函数, 即在 f [x0 , x1 , … , xk] 中任意调换节点 x0 , x1 , … , xk 的位置, 保持差商值不变。 4: 函数的插值
由性质2,我们可以得到差商的另一种定义或计算公式: 根据(4.3.1)式,得到 x0平移到xk-1与xk之间 性质 3:分子在取xk时为零,故有因子x-xk 4: 函数的插值
实际上,利用(4.3.1) 性质 3:分子在取xk时为零,故有因子x-xk 4: 函数的插值
有了插商的概念之后就可以引入Newton 插值 性质 3 若 f (x) 的 k 阶差商 f [x0 , x1 , … , xk-1 , x] 为 x 的 m 次多项式,则其 k +1 阶差商 f [x0 , x1 , … , xk , x]为 x 的 m - 1 次多项式。 推论 若 f (x) 是 n 次多项式,则当 k ≤n 时,其 k 阶差商 f [x0 , x1 , … , xk-1 , x]是n - k次多项式,当 k > n时为零。 有了插商的概念之后就可以引入Newton 插值 性质 3:分子在取xk时为零,故有因子x-xk 4: 函数的插值
2. Newton 插值公式及其余项 4: 函数的插值
2. Newton 插值公式及其余项 4: 函数的插值
2. Newton 插值公式及其余项 其中 4: 函数的插值
2. Newton 插值公式及其余项 利用Lagrange插值余项公式 有 其中x 表示与x有关 4: 函数的插值
这是n阶差商与n阶导数之间的关系,其中 与xn有关。 2. Newton 插值公式及其余项 于是可导出 这是n阶差商与n阶导数之间的关系,其中 与xn有关。 要计算Newton插值多项式Nn(x), 就要知道各阶插商。 为此,首先构造差商表: 4: 函数的插值
差商表的构造 xk f (xk) 一阶差商 二阶差商 三阶差商 x0 x1 x2 x3 f (x0) f (x1) f (x2) f (x3) f [x0 , x1] f [x1 , x2] f [x2 , x3] f [x0 , x1 , x2] f [x1 , x2 , x3] f [x0 , x1 , x2 , x3] 表中横线上的各阶差商正式 Newton 插值公式所需的数据,计算、编程均方便. 当增加一个插值节点时,只需多计算一项原来的计算仍然有效,这一点比 Lagrange 插值要优越。 4: 函数的插值
试用二次及三次 Newton 插值公式计算 f (-0.5) 的近似值(保留四位有效数字)。 例 4.3.1 已知函数 f (x) 的数据表如下: xk f (xk) -1 4 1 2 3 6 试用二次及三次 Newton 插值公式计算 f (-0.5) 的近似值(保留四位有效数字)。 解:首先作差商表如下 xk f (xk) 一阶差商 二阶差商 三阶差商 3 6 2 -1/3 -13/12 -1 4 0 -1 -5 1 2 3 4 4: 函数的插值
由 N2 (x) = f (x0) + f [x0 , x1](x- x0) + f [x0 , x1 , x2](x - x0)(x - x1) 得 N2 (x) = 4 - 5(x+1) + 4(x + 1)(x - 0) = 4x2 - x-1。 所以 f (-0.5) ≈ N2 (-0.5)= 0.5000。 因 N3 (x) = N2 (x) - (x - x0)(x - x1)(x – x2) 故 f (-0.5) ≈ N3 (-0.5) = N2 (-0.5) - ( -0.5 +1)(-0.5 - 0 )(-0.5 -1) = 0.09375。 4: 函数的插值
在前面的讨论中,只要求节点互异,没有其它限制。 若将插值节点重新排序为 xn xn-1, …, x1 , x0 , 相应的 Newton 插值公式成为 4: 函数的插值
但当这些节点等距时,Newton 插值公式则会得到简化。并且这种情况在实际问题中会经常遇到和使用。 4: 函数的插值
3.差分的定义 设函数 y = f (x) 在等距节点 xk = x0 + kh (k = 0 , 1 , … n )处的函数值为 fk = f (xk) , h 为步长。 定义 4.3.2 称 为 f (x) 在 xk 处的一阶向前差分. 称 为 f (x) 在 xk 处的一阶向后差分. 4: 函数的插值
另外还有一种重要的差分:中心差分。 称 为 f (x) 在 xk 处的一阶中心差分. 4: 函数的插值
由一阶差分可以定义二阶差分: 二阶向前差分 二阶向后差分 4: 函数的插值
Δm = Δ(Δm-1), m=(m-1), Δ0 = 0 =I。 规定零阶向前差分 0fk = fk 一般地有 m 阶向前差分 m 阶向后差分 由以上定义,可以看出差分是一种运算(称其为算子)。Δ - 向前差分算子,-向后差分算子,I - 恒等算子(亦称单位算子, I fk = fk ) 。这样,我们可以得到: Δm = Δ(Δm-1), m=(m-1), Δ0 = 0 =I。 4: 函数的插值
4.差分的性质 性质 1 常数的差分为零. 性质 2 差分与函数值可互相线性表示,即 4: 函数的插值 性质 1 常数的差分为零. 性质 2 差分与函数值可互相线性表示,即 性质 2:若 f (x) 是 x 的 m 次多项式,则其 k 阶差分Δkf(x) 当0≤k≤m 时为 m - k 次多项式;当 k > m 时为零. 4: 函数的插值
性质 3 向前向后差分存在如下关系 性质 4 差分与差商之间有如下关系 向前差分 向后差分 特别的, 4: 函数的插值
根据差分与差商的关系,我们就可以利用Newton插值公式来构造等距节点的Newton插值公式。为此,我们先写出差分表。由于向前差分与向后差分的关系,我们只需构造出向前差分表和向后差分表中的一个即可。 我们构造向前差分表如下: 4: 函数的插值
向前差分表的构造 fk f0 f1 f2 f3 f4 性质4:向前、向后差分关系 4: 函数的插值
5.等距节点的插值公式 Newton 前插公式 若插值点 x 在 x0 附近 ( 不妨设 x0 ≤ x ≤ x1 ) , 设 x = x0 + th ( 0 ≤t ≤1 ),则根据Newton 插值公式及差商与向前差分的关系,有: 利用 其中余项为 4: 函数的插值
若插值点 x 在 xn 附近 ( 不妨设 xn-1 ≤x≤xn ) ,设 Newton 后插公式 若插值点 x 在 xn 附近 ( 不妨设 xn-1 ≤x≤xn ) ,设 x = xn + th ( -1 ≤t ≤0 ),则根据Newton 插值公式及差商与向后差分的关系,有: 利用 其中余项为 4: 函数的插值
利用三次 Newton 前插公式与后插公式分别计算 sin0.12 和 sin0.58的近似值,并利用余项公式估计误差。 例4.3.2. 设 y = sinx 的 函数表如下: xk yk= sinxk 0.1 0.099 83 0.2 0.198 67 0.3 0.295 52 0.4 0.389 42 0.5 0.479 43 0.6 0.564 64 利用三次 Newton 前插公式与后插公式分别计算 sin0.12 和 sin0.58的近似值,并利用余项公式估计误差。 4: 函数的插值
解:首先作差分表如下(向前差分 ) xk f k 0.1 0.099 83 0.098 84 - 0.001 99 - 0.000 96 0.1 0.099 83 0.098 84 - 0.001 99 - 0.000 96 0.2 0.198 67 0.096 85 - 0.002 95 - 0.000 94 0.3 0.295 52 0.093 90 - 0.003 89 - 0.000 91 0.4 0.389 42 0.090 01 - 0.004 80 0.5 0.479 43 0.085 21 0.6 0.564 64 4: 函数的插值
先用二次Newton前插公式求sin0.12的近似值, 因0.12介于0.1与0.2之间,故取 x0 = 0.1, 此时 先用二次Newton前插公式求sin0.12的近似值, 4: 函数的插值
由三次Newton前插公式的余项误差估计式 计算器计算的值 sin(0.12) 0.1197122072889193599673 4: 函数的插值
利用三次 Newton后插公式求 sin0.58 的近似值, 因0.58介于0.5与0.6之间,故取xn = x5 = 0.6 ,此时 利用三次 Newton后插公式求 sin0.58 的近似值, 4: 函数的插值
由三次Newton后插公式的余项误差估计式 计算器计算的值 sin(0.58) 0.54802393679187355618 4: 函数的插值
根据原始数据的精度,一般计算结果保留与原始数据同样的精度。 在计算插值时应注意的事项 插值多项式阶数的选取.根据原始数据差分的变化,若所有第k阶差分几乎不变或为零,则一般选用k阶插值多项式。特别地,在不考虑误差的情况下,若所有第k阶差分恒为零,则原始数据分布在一个k-1阶多项式上。 根据原始数据的精度,一般计算结果保留与原始数据同样的精度。 4: 函数的插值
§4.4 Hermite 插值公式及其余项 若不仅要求插值多项式 H(x) 在互异节点 xj (j = 0 , 1 , … , n) 处与 f (x) 的函数值相等,而且还要求它们在上述节点处的导数值相等,则满足这种条件的插值多项式 H(x) 称为 f (x) 的 Hermite 插值多项式。 4: 函数的插值
1. Hermite 插值多项式 设 y = f (x) 在插值节点 xj 处的函数值为 一阶导数值为 要求插值多项式 H (x) ,使得 共给出 2n + 2 个 条件,因此H(x)次 数不超过 2n + 1 一阶导数值为 要求插值多项式 H (x) ,使得 则满足这种条件的插值多项式H(x)称为 f (x)的Hermite插值多项式,记 H(x) 为 H2n+1(x) 。 仍采用插值基函数的方法构造之。 4: 函数的插值
设 其中 称为 Hermite 插值基函数. 要求: 是2n+1次多项式 是2n+1次多项式 4: 函数的插值
可以求得 可以证明 Hermite插值 多项式的唯一性 整理后得 Hermite 插值多项式 4: 函数的插值
2. Hermite 插值公式的余项 定理 4.4.1设函数 f (2n+1)(x) 在区间[a , b]上连续, f (x) 的2n + 2阶导数在区间 (a , b) 内存在,则 Hermite 插值公式的余项为 关于 Hermite 插值公式的余项有如下定理. 其中 且依赖于 x . 因此有误差估计式: 其中: 4: 函数的插值
重要特例:n = 1 时的Hermite 插值公式 取节点xk及xk+1, 插值多项式为H3(x), 满足条件 于是可以求得 4: 函数的插值
§4.5 分段插值 通过前面的讨论已经知道插值节点越多,所做插值多项式的次数也越高,但这并不意味着所做的高次插值多项式与被插值函数的误差越小,往往效果不一定好。 Runge曾给出一个实例说明了此现象,称为高次插值的Runge现象。 即使不考虑数据本身的特征和误差,多项式也有其自身的特点,用它来近似其它函数时必然会有差异。 4: 函数的插值
1. 高次插值的Runge现象 令 ,在区间[-5, 5]上取等距 节点: 作n次lagrange插值多项式 , 分别取n=6和10,画出L6(x)与L10(x)的函数图形如下: 4: 函数的插值
Runge现象演示图 当n→∞时,Ln(x) 仅在|x|≤3.63内收敛于f(x),在此区间外发散。 4: 函数的插值
2.分段插值 在实际计算中,为避免高次多项式插值的Runge现象,而采用分段低次插值,即把插值区间 [a, b] 分成若干个小区间 [xi-1, xi] (i=1,2,…,n),然后在每个小区间上进行低次(一次、二次或三次)多项式插值。 4: 函数的插值
定义1:设函数 y = f (x)在节点 a=x0<x1<…<xn=b 处的函数值为yk= f (xk) (k = 0,1,…,n).求一折线函数h(x)使满足 在区间[a, b]上连续,即h C[a, b] ; h(xk) = f (xk) (k = 0,1,…,n) 在小子区间[xk, xk+1], (k=0,1,…,n-1)上为线性函数: 阶段表达式 则折线函数h(x)称f(x)为在[a, b]上的分段线性插值多项式(或分段线性插值函数)。 4: 函数的插值
类似地, 我们可以定义分段二次插值多项式(分段抛物插值函数),分段三次插值多项式(分段立方插值函数)和分段三次Hermite插值多项式等。 4: 函数的插值
§4.6 三次样条插值 分段线性插值与分段二次插值函数虽然在整个区间 [a , b]上连续,但是在插值节点处的一阶导数往往不存在;分段三次Hermite 插值函数在整个区间 [a , b]上有连续的一阶导数, 但在插值节点处二阶导数往往不存在. 在工程实践中,往往要求在插值节点处二阶导数连续,这样才能满足实际生产的需要。在数学上,这种曲线经数学模拟后即得到样条函数,它实际上是由分段三次多项式连接而成的 . 4: 函数的插值
满足(1) , (2) 的 S(x) 称为三次样条函数。 1.三次样条插值函数及其定解条件 定义4.6.1 设函数y = f(x)在区间[a, b]上互异的节点 a = x0 < x1 < x2 < . . . < xn = b 处的函数值为 yj = f (xj) ( j = 0 , 1 , … , n) , 若分段函数 S(x) 满足: 满足(1) , (2) 的 S(x) 称为三次样条函数。 (1) S∈C2[a, b],即S(x)在[a, b]上二阶导数连续; (2) 在每个子区间 [xj , xj+1] (j = 0 , 1 ,… , n-1) 上是次数小于等于3的多项式; (3) S(xj) = yj ( j = 0 , 1 , … , n) ; 则称 S(x) 为 f (x) 在节点 xj (j = 0 , 1 , …, n) 上的三次样条插值函数。 4: 函数的插值
(2*) 在每个子区间 [xj , xj+1] (j = 0 , 1 ,… , n-1) 上是次数≤m 的多项式; 更一般地,若S(x) 满足 (1*) S∈ Cm-1 [a , b] , 即 S(x) 在[a, b]上m-1阶导数连续; (2*) 在每个子区间 [xj , xj+1] (j = 0 , 1 ,… , n-1) 上是次数≤m 的多项式; 则称 S(x) 为m次样条函数。 本节我们主要研究三次样条插值函数问题,即要求的是一个满足插值条件(3)的三次样条插值函数,计算该问题的方法称为三次样条插值法。为此需要讨论其定解条件。 4: 函数的插值
由于 S∈C2 [a , b] , 故在内节点 xj ( j = 1,2,… ,n-1) 处应满足下列连续性条件 要计算三次样条插值函数 S(x), 只需在每个小子区间 [xj , xj+1]上确定一个三次多项式 n 个区间, 共需要 4n 个条件 由于 S∈C2 [a , b] , 故在内节点 xj ( j = 1,2,… ,n-1) 处应满足下列连续性条件 共3n-3个条件 再加上 S(xj) = yj ( j = 0 , 1 , … , n) 已提供的 n+1 个条件, 这样上面共给出 4n - 2 个条件. 4: 函数的插值
然而要确定整个三次样条插值函数S(x),必须确定4n个系数. 条件(1)和(3)共提供了4n-2个方程,还缺少两个方程 然而要确定整个三次样条插值函数S(x),必须确定4n个系数. 条件(1)和(3)共提供了4n-2个方程,还缺少两个方程. 由于这两个条件通常在区间 [a,b]的两个端点处给出,故称之为边界(或端点)条件。 边界条件应根据实际问题的要求提出,其类型很多,常见的类型有如下三种条件: 4: 函数的插值
由于y=f(x)是以xn–x0 为周期,f(x0)=f(xn),必有S(x0-0)=S(xn+0),所以真正起作用的是后两个等式。 第一类:给出两端点的一阶导数 当M0 = Mn= 0 时称其为 自然边界条件。 满足自 然边界条件的样条函数 称为自然样条函数 。 第二类:已知两端点的二阶导数 第三类:当 y = f (x) 是以 xn - x0 (= b - a)为周期的周期函数时,则要求 S(x) 也是以 xn - x0 为周期的周期函数, 此时边界条件为 由于y=f(x)是以xn–x0 为周期,f(x0)=f(xn),必有S(x0-0)=S(xn+0),所以真正起作用的是后两个等式。 4: 函数的插值
2.求三次样条插值函数的三弯矩法 利用节点处的二阶导数来表示三次样条插值函数 假设 利用线性插值公式可知 经过两次积分得 ,hj = xj+1 - xj (j = 0, 1,… n -1)。 Mj 在力学上称为 细梁在截面的弯矩 利用线性插值公式可知 经过两次积分得 4: 函数的插值
利用插值条件 S (xj) = yj , S (xj+1) = yj+1 , 可知 此即为用二阶导数Mj来表示的三次样条插值函数S(x),此时 Mj 未知,下面来计算这些 Mj 。 于是 4: 函数的插值
因此求得(注意:S(x)是一个分段函数) 利用 并令 则得到下列三弯矩方程 4: 函数的插值
在 (4.6.11)中,有n-1个方程,n+1个未知量Mj ,还差两个方程,才能确定这n+1个Mj 。 三弯矩方程 这就是n-1个三弯矩方程 (4.6.11) 在 (4.6.11)中,有n-1个方程,n+1个未知量Mj ,还差两个方程,才能确定这n+1个Mj 。 想一想,如何补足这两个方程? 4: 函数的插值
边界条件的处理 (1) 若补充第一类边界条件,利用S’(x)的计算公式,有 利用三弯矩方程(4.6.11) ,联立方程组可得 4: 函数的插值
(2) 若补充第二类边界条件,有 利用三弯矩方程(4.6.11) ,联立方程组可得: 4: 函数的插值
(3) 若补充第三类边界条件,由 知 由 可导出 其中 利用三弯矩方程(4.6.11) ,联立方程组可得: 4: 函数的插值
S ’(xj) = mj ,S ’(xj+1) = mj+1。 3.求三次样条插值函数的三转角法 就是利用节点处的一阶导数来表示三次样条插值函数。 设S’(xj) = mj (j=0,1,…,n) ,则S(x)在子区间[xj,xj+1]上满足: S (xj) = yj , S (xj+1) = yj+1; S ’(xj) = mj ,S ’(xj+1) = mj+1。 利用n = 1时的Hermite插值公式,S(x) 的计算公式如下: 4: 函数的插值
这样计算S(x)的问题就转化为求mj (j=0,1,…,n)的问题。 其中 , 。 这样计算S(x)的问题就转化为求mj (j=0,1,…,n)的问题。 记 4: 函数的插值
在第一种边界条件下,m0,m1,…,mn-1,mn满足以下方程组 : 4: 函数的插值
在第二种边界条件下,m0,m1,…,mn-1,mn满足以下方程组 : 这里 4: 函数的插值
在第三种边界条件下,m0,m1,…,mn-1,mn满足以下方程组 : m0 = mn 和 这里 4: 函数的插值
本章小结 理解插值函数的基本概念及插值多项式P(x)的存在与唯一性定理。 熟练掌握Lagrange插值,Newton插值。 掌握相关概念(差商和差分等)和性质等,并运用之解题。 利用相关的插值公式及其余项进行计算。 理解Hermite插值,分段插值和三次样条插值的基本思想,掌握相关概念。 4: 函数的插值