7.1.1 分段线性插值
所谓分段线性插值就是通过插值点用折线段连接起来逼近原曲线,这也是计算机绘制图形的基本原理。实现分
段线性插值不需编制函数程序,MATLAB自身提供了内部函数interp1其主要用法如下:
interp1(x,y,xi) 一维插值
◆ yi=interp1(x,y,xi) 对一组点(x,y) 进行插值,计算插值点xi的函数值。x为节点向量值,y为对应的节点函数值。如果y 为矩阵,
则插值对y 的每一列进行,若y 的维数超出x 或 xi 的维数,则返回NaN。
◆ yi=interp1(y,xi) 此格式默认x=1:n ,n为向量y的元素个数值,或等于矩阵y的size(y,1)。
◆
yi=interp1(x,y,xi,’method’) method用来指定插值的算法。默认为线性算法。其值常用的可以是如下的字符串。
●
nearest 线性最近项插值。
●
linear 线性插值。
●
spline 三次样条插值。
●
cubic 三次插值。
所有的插值方法要求x是单调的。x 也可能并非连续等距的。
正弦曲线的插值示例:
>> x=0:0.1:10;
>> y=sin(x);
>> xi=0:0.25:10;
>> yi=interp1(x,y,xi);
>> plot(x,y,’0’,xi,yi)
则可以得到相应的插值曲线(读者可自己上机实验)。
Matlab也能够完成二维插值的运算,相应的函数为interp2,使用方法与interpl基本相同,只是输入和输出的
参数为矩阵,对应于二维平面上的数据点,详细的用法见Matlab联机帮助。
7.1.2 最小二乘法拟合
在科学实验的统计方法研究中,往往要从一组实验数据 中寻找出自变量x 和因变量y之间的函数关系y=f(x) 。
由于观测数据往往不够准确,因此并不要求y=f(x)经过所有的点 ,而只要求在给定点
上误差按照某种标准
达到最小,通常采用欧氏范数 作为误差量度的标准。这就是所谓的最小二乘法。在MATLAB中实现最小二乘法
拟合通常采用polyfit函数进行。
函数polyfit是指用一个多项式函数来对已知数据进行拟合,我们以下列数据为例介绍这个函数的用法:
>> x=0:0.1:1;</