数值分析05 木灵的炼金工作室

由于突发恶疾住院若干天,故本篇记录时隔一整月.

本篇继续讨论函数插值的问题

函数插值法

在前述的两种插值法中,我们都构造了一个函数,使得至少在各个节点处与潜在的函数$f(x)$同值. 但如果我们想要通过插值函数$H(x)$来刻画$f(x)$更加深刻的性质,如一阶导数,那么前述的两种插值方法将难以胜任.

Hermite插值

我们试图找到某插值函数$H(x)$使得在$(n+1)$个点的点集上,有:

\[\forall i\in[0,n]: H(x_i)=y_i,H'(x_i)=y'_i\tag{5.1}\]

直观地,在$H(x)$中蕴含了更多的信息,这样一来就可能需要更多的自由度来承载这些信息,当然我们只有$(2n+2)$个约束条件,因此天然地,Hermite插值不可以也不会超过$(2n+1)$次.

基函数构造法

与在Lagrange插值法中作的工作相似,我们同样希望找到一组基,使得它满足这一问题中的要求:我们将上述的问题分开处理:

首先找到某一类函数$h_i(x)$,使得对于样本点集中的点$(x_j,y_j)$有:

\[h_i(x_j) = 0, j\not =i\] \[h_i(x_j) = 1, j=i\]

同时满足:它的一阶导数在样本点集上恒为$0$:

\[h_i'(x_j) \equiv 0\]

这样,我们即可使用$h(x)$来控制插值函数的函数值而不影响其导数.

同样地,我们试图找到$H_i(x)$,使得对于样本点集中的点$(x_j,y_j)$有:

\[H'_i(x_j) = 0, j\not =i\] \[H'_i(x_j) = 1, j=i\]

同时,它的原值应当在样本点集上恒为$0$:

\[H_i(x_j) \equiv 0\]

这样,我们即可使用$h(x)$来控制插值函数的一阶导数而不影响其原值.

幸运的是,数学家们创造性地发现了这组基的形式:

\[\left\{ \begin{aligned} & h_i(x) = [a+b(x-x_i)]l_i^2(x) \\ & a = 1 \\ & b = -2l_i'(x_i) \end{aligned} \right.\] \[\left\{ \begin{aligned} & H_i(x) = cl_i^2(x) \\ & c = 1 \end{aligned} \right.\]

其中,$l_i(x)$是关于$x_i$的Lagrange基:

\[l_i(x) = \frac{\prod_{j=0, j\not ={i}}^n(x-x_j)}{\prod_{j=0, j\not ={i}}^n(x_i-x_j)}\]

因此,在该方法中,每一个点-导数三元组$(x_i, y_i, y’_i)$生成一项

\[y_i[1-2l'_i(x_i)(x-x_i)]l_i^2(x)+y_i'(x-x_i)l_i^2(x)\]

由此可给出Hermite插值表达式:

\[H(x) = \sum_{i=0}^n \{y_i[1-2l'_i(x_i)(x-x_i)]l_i^2(x)+y_i'(x-x_i)l_i^2(x)\}\]

Hermite插值法拥有误差表达式

\[R_n(x) = \frac{f^{(2n+2)}(\xi)}{(2n+2)!}\omega_{n+1}^2(x)\]

这样的“函数值-导数”分别控制的方法有着更广阔的应用空间,如给出点集中部分拥有导函数值而其余没有,则拥有导数值的部分附加$H_i(x)$项来控制导数,而没有导数值的部分不附加.

对于上述这种“不完全”的情况,误差表达式会有所变化,但总得来说,如果给出了$n$组原值条件,其中有$m$组限制了导数值(不妨设它们就是第$0\to(m-1)$个),则误差可以表示为

\[R_n(x) = \frac{f^{(n+m+2)}(\xi)}{(n+m+2)!}\omega_{n+1}(x)\prod^{(m-1)}_{i=0}(x-x_i)\]

待定系数法

这种方法直接将$H(x)$显式地假设出来,再代入点集解方程组(5.1). 严格地来讲这种算法不能称之为方法,但在数据量较小时很好用.

降阶法

而面对稍多的数据时,待定系数法就不那么好用了. 因此我们试图通过某种方式来减少需要处理的自由度数:

我们先通过前述的插值法求出仅在原函数值上提供保证的插值函数:

\[N(x), s.t.\forall i\in[0,n], N(x_i) = y_i\]

明显地,Hermite插值函数与$N(x)$存在如下的关系:

\[H(x)-N(x) = P(x)\prod_{i=0}^n(x-x_i)\]

而此时,由于$H(x)$是$2n+1$阶多项式,而$N(x)$是$n$阶多项式,故$H(x)-N(x)$是$2n+1$阶多项式,故$P(n)$是$n$阶多项式.

此时再利用$H’(x_i)=y_i$对$P(n)$待定系数直球求解即可.


Copyright AmachiInori 2017-2021. All Right Reserved.
Powered By Jekyll.
amachi.com.cn