一、插值
(一)概述
1.当遇到“已知函数在某区间(域)内若干点处的值,求函数在该区间(域)内其它点处的值”等类似的问题时,我们可以使用插值方法解决。
2.一维插值问题可描述为:已知函数f(x)在x0,x1,…,xn 处的值y0,y1,…,yn,求简单函数p(x),使 p(xi) = yi。称p(x)为f(x)的插值函数,点x0,x1,…称为插值节点,通常取p(x)为多项式。
3.可以用范德蒙行列式(Vandermonde determinant)和克莱姆法则(Cramer's rule)证明:在x0, x1, …, xn处取值y0, y1, …, yn的多项式存在且唯一,即插值问题的解唯一存在。
4.常用的插值方法有Lagrange插值法和 Newton插值法。
(1)拉格朗日插值法(Lagrange interpolation formula)
②可以给出一个恰好穿过二维平面上若干个已知点的多项式函数。指的是在节点上给出节点基函数,然后做基函数的线性组合,组合系数为节点函数值的一种插值多项式。
②分为多项式插值、分段插值及三角插值
(2)牛顿插值法
①差商(均差)
②牛顿基本插值公式(ak为f(x)的k阶差商)
③差分
④牛顿向前向后插值公式
5.高次插值的龙格现象(Runge phenomenon)
①插值多项式的次数超过七时, 插值多项式会出现严重的振荡现象。
②避免Runge现象的常用方法是:将插值区间分成若干小区间,在小区间内用低次 (二次,三次)插值,即分段低次插值,如样条函数插值(spline function interpolation)。
(二)Matlab插值
1.一维插值
基本格式为yi= interp1(x,y,xi, 'method')。x,y为插值点,xi,yi为被插值点和插值结果,x,y和xi,yi通常为向量;'method'表示插值方法:'nearest'——最邻近插值, 'linear'——线性插值, 'spline'——三次样条插值,'cubic'——立方插值,缺省为线性插值。
2.二维插值
二维插值命令是interp2, 基本格式为 zi=interp2(x,y,z,xi,yi,'method')。x,y,z为插值点,z可以理解为被插值函数在(x,y)处的值;xi,yi为被插值点, zi为输出的插值结果,可理解为插值函数在(xi,yi) 处的值;x,y为向量,xi,yi为向量或矩阵,而z和zi则为矩阵。
注:plot3(空间曲线), mesh(空间曲面), surf(空间曲面), contour(等高线)是三维作图中的常用命令。mesh和surf的区别是:mesh画的是曲面网格图,而surf画的是曲面表面图。contour (x,y,z,n)的功能是作出由点 (x,y,z)插值而成曲面的n条等高线。用meshc和surfc可在曲面下方画等高线。meshz和surfz是画垂帘图。
3.散乱点插值
当(x,y)为散乱点时,可用griddata(x,y,z,xi,yi,'method')命令进行二维插值。
二、拟合
(一)概述
2.拟合与插值的区别
(1)插值函数过已知点,而拟合函数不 一定过已知点;
(2)插值主要用于求函数值,而拟合的主 要目的是求函数关系,从而进行预测等进一 步的分析。
(二)如何拟合
1.拟合的计算
曲线拟合需解决如下两个问题:(1)线型的选择;(2)线型中参数的计算。线型的选择是拟合计算的关键和难点。通常主要根据专业知识和散点图确定线型。线性拟合中参数的计算可采用最小二乘法,而非线性拟合参数的计算则要应用高斯—牛顿迭代法(Gauss-Newton iteration method)。
2.Matlab拟合
(1) 多项式拟合
Matlab多项式拟合命令格式为: [a,S]=polyfit(x,y,n)。其中,x和y是被拟合数据的自变量和因变 量;n为拟合多项式的次数;a为拟合多项式系数构成的向量;S为分析拟合效果所需的指标(可省略)。
(2) 非线性拟合
Matlab非线性拟合命令格式为: [b,r]=polyfit(x,y,fun,b0,option) 。其中,x和y是被拟合数据的自变量和因变量;fun为拟合函数;b0为拟合参数的初始迭代值;option为拟合选项;b为拟合参数;r为拟合残差。
3.Matlab拟合工具箱
命令窗口键入 cftool 即可启动拟合工具箱