先前我们提到过某些根据少数已知项,猜想数列通项公式的问题。在中国大陆国家公务员考试行政职业能力测验、IQ测试和鱼龙混杂的小学数学智力问题中,数列找规律的问题也占了一定的比重。首先,我们在此指出,虽然培养猜想能力很重要,但是解决人为构造的过难的找规律问题是并无必要的。其次,如果对数列项的变化规律没有限制得很死,比如允许解题人非常自由地去猜想规律,是完全有可能存在多个不同答案的。事实上,给定一个数列的有限个项,在不加任何额外限制的情况下,可以写出无数个可能的递推公式。这类问题的更一般情形就是函数插值问题,它旨在设法将平面或空间中的一系列有限个函数点用一个已知解析式的曲线串起来。我们先通过对于特殊情形下函数插值的方法讨论,给出一些快速求解此类问题的思路,随后进一步介绍经典的拉格朗日插值公式。拉格朗日插值公式看上去形式较为繁琐,但是避免了求解方程中未知系数的麻烦,其正确性也不难检验。
了解多项式基本运算(例如因式分解)、函数的概念和数列的概念即可。
本节内容不是考试范围,对拓展知识毫无兴趣的读者可以直接跳过本节。
插值(interpolation)也叫做内插,是寻找图象通过有限多个已知点的未知函数的解析式的过程,也即将散点用函数穿插起来。如果只是寻找图象尽量接近有限多个已知点的未知函数的解析式,那么这样的过程就叫做函数的拟合(fitting)。插值是要求函数曲线或图象必须通过已知各点的特殊拟合。
本节只论述平面上点集合的插值问题,并且假定所有给定点在平面直角坐标系中的x坐标各不相同。我们的大体思路是通过选取合适的独立函数作为基底,然后带入已知数据解方程组的方法确定所需的插值函数。
现在我们希望求解依次通过平面上3个指定点的插值公式。
不妨设插值函数具有多项式的形式,插值多项式如果存在,那么显然也是形式最常见、最容易理解的解(虽然答案并非只能是多项式)。由于已知的是坐标确定的3个点,而由3个已知条件一般可以确定的是包含3个待定参数的未知多项式,我们知道包含3个待定系数的最简单的多项式为二次函数,所以可以尝试设所求的插值多项式为二次函数。
将已知的3个点的坐标带入所设的二次函数可得:
由于都已知,这是一个以a、b、c为未知系数的三元一次方程组。由这3个方程容易求出所需的a、b、c的值(这里暂不考虑线性方程组解的存在性和唯一性等技术细节),从而确定所需二次函数的具体系数,从而得到所需的插值公式。
由于多阶等差数列的通项公式正好是高次多项式,这种使用多项式进行插值的方法也可以看成是将点序列视作多阶等差数列求解。
知识背景:
这种方法类似于利用合适的幂级数来逼近特定已知函数。插值问题中所求的插值函数不一定必须取多项式的形式,甚至满足条件的多项式取法也有很多,例如可以是各阶切比雪夫多项式、各阶勒让德多项式以及本节下面马上会介绍的经典的拉格朗日插值多项式。由线性泛函分析和函数逼近理论中的知识可知,只要是满足函数线性无关条件的函数系都可以用于完美地拟合已知的有限个或无限个离散点。例如由微积分中三角级数构成的事实可知,取系数待定的一列正交的三角函数之和进行插值并求解方程也可以达到目标。如果需要拟合的目标是定义在整个上的任意已知函数,则所需的函数系还必须是完备的。
相关例题:
求解依次通过平面上3个已知点的1个插值多项式。
答案:或其它同样满足题意的解。
提示:就上述例题所示的已知3个点的情形而言,所求的插值多项式也可以设置成类似这种更高次的缺项多项式的形式。只是这样一来,其计算量会比设置成2次多项式要更大一些,所以并无必要。我们可以借助计算机软件求出此时的解为:
很明显,这样设也并不是不可以,也能得到满足题意的解,但是会使求解过程复杂化。一般来说,取满足需要的最简便的可行形式即可。
这样得到的插值多项式一般会随所给已知点数量和位置的不同而不同,而且给定的已知点的取值可以非常随意,这也表明符合要求的插值多项式原则上可以有无穷多个。
上述的待定系数法的明显不足是需要求解方程组,拉格朗日插值法避免了这个麻烦的步骤。作为代价,它采用了复杂但是巧妙的构造,而且也容易在各个已知点上验证其正确性。
拉格朗日插值法(Lagrange polynomial interpolation)是一种不需要求解方程就可以直接获得插值函数的方法。它曾被好几个人独立地提出过,最后以法国数学家约瑟夫·拉格朗日(1736年-1813年)冠名。
要求经过这2个固定点的插值函数,拉格朗日插值法给出的答案是:
要求经过这3个固定点的插值函数,拉格朗日插值法给出的答案是:
对某个多项式函数,已知有给定的k+1个取值点,假设任意两个不同的xj都互不相同,那么一般形式的拉格朗日插值公式被定义为:
其中每个为拉格朗日基本多项式(或称插值基函数),其表达式为:
- [1]
拉格朗日基本多项式的特点是在上取值为1,在其它的点上取值为0。
提示:拉格朗日公式给出的的确是多项式,虽然它可能初看上去长得像一连串的分式之和。
拉格朗日插值法的公式结构整齐紧凑,可以直接套用,避免了解方程组的繁琐,多项式结果的存在性也比较明显。
由于数列可以看成是取值离散的特殊函数(因此有人也称呼数列为“整标函数”),我们不多做说明,直接通过例题了解拉格朗日插值法在数列插值中的应用。
相关例题1:
已知数列满足,求符合给定的这前3项的一个数列通项公式。
解答:
由拉格朗日插值公式可得:
答案:或其它同样满足题意的解。
相关例题2:
已知数列满足,求符合给定的这前4项的一个数列通项公式。
解答:
答案:或其它同样满足题意的解。
Mathematica软件提供了专门的内置命令“InterpolatingPolynomial”用于生成最常见的几种插值多项式,其语法格式为:[2]
InterpolatingPolynomial[{f1,f2,…},x]; (* 构建一个关于 x 的插值多项式,在连续的 x 的整数值 1、2、… 上再生成函数值 f_(i) *)
InterpolatingPolynomial[{{x1,f1},{x2,f2},…},x]; (* 对于函数值 f_(i),对应于 x 的值 x_(i) 构建一个插值多项式 *)
InterpolatingPolynomial[{{{x1,y1,…},f1},{{x2,y2,…},f2},…},{x,y,…}]; (* 构建一个使用变量 x、y、… 的多维插值多项式 *)
InterpolatingPolynomial[{{{x1,…},f1,df1,…},…},{x,…}]; (* 构建一个插值多项式,同时拟合函数值及其导数 *)
可以看到,Mathematica不仅支持本节主要讲述的简单的函数值插值,也支持多元函数的插值,还支持生成可以同时拟合目标函数值及其导数值的插值多项式。
提示:使用多项式同时拟合函数及其导数是一个比较强的限制条件。埃尔米特多项式就是满足这一要求的例子。
给定有限个点的函数插值示例(因为只有一行命令,分号此时可以不写):
InterpolatingPolynomial[{{-1, 4}, {0, 2}, {1, 6}}, x];
给定有限个项的数列插值示例:
InterpolatingPolynomial[{1, 4, 9, 16}, n];
- [1](通过交互式动画演示插值点对所得多项式图形的影响)
- ↑ (简体中文)InterpolatingPolynomial - Wolfram Demonstrations Project.Wolfram Alpha官方网站(2011年3月7日).