插值和曲线拟合的最重要方面是了解为什么高阶多项式拟合会成为问题以及其他选项是什么,然后您可以了解何时它们不是一个好选择。
高阶多项式的几个问题:
多项式自然是振荡函数。随着多项式阶数的增加,振荡次数增加,并且这些振荡变得更加严重。我在这里简化,因为可能存在多个和虚的根,但使其复杂一些,但要点是相同的。
当x变为+/-无穷大时,多项式以等于多项式阶数的速率接近+/-无穷大。这通常不是理想的行为。
计算高阶多项式的多项式系数通常是一个病态问题。这意味着小的错误(例如,在计算机中四舍五入)会在答案中产生较大的变化。必须解决的线性系统涉及一个范德蒙矩阵,该矩阵很容易生病。
我认为也许这个问题的核心是曲线拟合和插值之间的区别。
当您认为数据非常准确,因此希望函数与数据点完全匹配时,将使用插值。当您需要数据点之间的值时,通常最好使用与数据局部趋势匹配的平滑函数。三次样条或Hermite样条曲线通常是此类问题的一个不错的选择,因为它们对数据中的非局部(即远离给定点的数据点)变化或错误的敏感度要低得多,并且比多项式的震荡性小。考虑以下数据集:
x = 1 2 3 4 5 6 7 8 9 10
y = 1 1 1.1 1 1 1 1 1 1 1
多项式拟合比Hermite样条曲线具有更大的振荡,尤其是在数据集的边缘附近。
另一方面,最小二乘近似是曲线拟合技术。当您对数据的预期功能有所了解时,可以使用曲线拟合,但是您不需要功能完全通过所有数据点。当数据可能包含测量误差或其他不确定性,或者希望提取数据的总体趋势时,通常会出现这种情况。最小二乘逼近通常是在课程中使用多项式进行曲线拟合而引入的,因为这会导致线性系统相对简单,使用您在课程中较早学习的技术即可解决。但是,最小二乘技术比仅多项式拟合更为通用,可用于将任何所需函数拟合到数据集。例如,如果您期望数据集呈指数增长趋势,
最后,选择正确的函数以适合您的数据与正确执行插值或最小二乘计算同样重要。这样做甚至允许(谨慎)外推。考虑以下情况。根据2000年至2010年美国的人口数据(以百万计):
Year: 2000 2001 2002 2003 2004 2005 2006 2007 2008 2010
Pop.: 284.97 287.63 290.11 292.81 295.52 298.38 301.23 304.09 306.77 309.35
使用指数线性最小二乘拟合N(t)=A*exp(B*t)
或10阶多项式插值可得出以下结果:
美国的人口增长不是很指数,但是我会让你成为最合适的判断者。