函数 > 数据分析 > 插值与预测 > 多项式插值
  
多项式插值
polyint(vx, vy, x) - 利用多项式函数,返回在 x 处的插值以及预期的误差。
polyint 函数使用 Neville 算法在请求点 x 处对长度为 N 的数据集执行多项式插值。该函数会查找唯一的通过每个点的 N – 1 次多项式。
polycoeff(vx, vy) - 返回插值多项式函数的系数。
polycoeff 函数会计算插值多项式的系数,以供后续计算使用。
polyiter(vx, vy, x, N, e) - 利用最高阶为 N 且最大误差为 e 的多项式函数,返回在 x 处的插值。
polyiter 的输出是一个矢量,其中第一个元素是“收敛”标志 (1 = 收敛,0 = 未收敛),第二个元素是满足指定公差所需的迭代次数,第三个元素是针对输入值 x 获得的迭代估值 y
自变量
vx, vy 是长度相同的实数据值矢量。
x 是将针对其计算插值曲线的自变量值。要获得最优结果,x 应在 vx 值的范围内。
如果输入矢量带有单位,则 x 必须与 vx 有相同的单位。
N 为最大迭代次数。N 也是多项式函数的最大阶数,因为在每一次迭代之后,多项式的度数增加 1。
e 为输入公差。
如果输入矢量带有单位,则 e 必须与 vy 有相同的单位。
附加信息
用于 polyiter 函数的 Aitken-Neville 插值与在 polyintpolycoeff 中实现的多项式插值相似。但由于插值是迭代的,polyiter 允许指定输入公差 e 以及最大迭代次数 N。如果数据点的最后两个迭代估值在公差 e 的范围内一致或迭代次数达到输入自变量 N,则算法将停止。使用迭代插值是很有好处的,例如在定积分的龙贝格求积中使用。数值积分是一个计算量很大的过程。如果提前退出,则可以节省处理时间,但结果就不够精确。Aitken-Neville 插值通常用于在指定某一公差的情况下查找仅有的几个插值点。
polyintpolycoeff 例程基于 "Numerical Recipes in C, The Art of Scientific Computing" (Cambridge University Press), Copyright (C) 1987, 1988 Numerical Recipes Software 一书中的 polyint (109 页) 和 polycoeff (121 页),且已授权使用。polyiter 例程在 McCalla, Thomas Richard (1967).Introduction to Numerical Methods and FORTRAN Programming, John Wiley 中进行了介绍。