用插值法拟合carbon12alpha.mat数据,包括最近邻插值法和PCHIP插值拟合法。
建立一个M文件,打开曲线拟合对话框,分别选择最近邻插值法和PCHIP插值法,拟合结果如图2-1所示。
load carbon12alpha
cftool(counts, angle)
图2-1 两种拟合结果图
图1-28中的fit3曲线是运用最近邻插值法得到的拟合曲线,fit4曲线是运用PCHIP插值拟合法得到的拟合曲线。两种方法差别较大,具有不同的用途。fit3曲线没有沿着数据点拟合,得出一个像阶梯状的图形。如果不考虑曲线的物理意义,拟合结果应考虑fit4曲线。
用三次样条插值和几种平滑样条插值法拟合下列数据。
rand('state',0);
x = (4*pi)*[0 1 rand(1,25)];
y = sin(x) + .2*(rand(size(x))-.5);
如图2-2所示,从“Type of fit”列表框中选择“Interpolant”选项,用三次样条拟合数据。
图2-2 三次样条插值的选择
图2-3所示的拟合结果显示,没有为插值定义拟合优度统计量。
图2-3 三次样条插值的拟合结果
下面用默认的平滑参数P和给定的平滑参数0.5分别进行平滑插值拟合,图2-4和图2-5为默认条件下的设置界面和拟合结果。图2-6显示了平滑参数为默认设置和为0.5时对应的拟合曲线。
图2-4 默认条件下的拟合设置界面
图2-5 默认条件下的拟合结果
图2-6 三种拟合方法的拟合结果图
曲线的平滑级别用图2-4中的“Smoothing Parameter”选项给定。默认的平滑参数值与数据集有关,并在单击“Apply”按钮以后由工具箱自动计算。对于本数据集,默认的平滑参数值接近于1,表示平滑样条接近于三次样条,并且几乎正好穿过每个数据点。如果不想使用默认拟合参数生成的平滑级别,可以自己指定一个0和1之间的值。值为0时,生成一个分段线性多项式的拟合;值为1时,生成一个分段三次多项式的拟合,它穿过所有的数据点。
图2-6对平滑参数不同时的几个拟合结果进行了比较。其中,fit1曲线是三次样条插值拟合结果图,fit2曲线是默认平滑参数下的平滑样条插值拟合结果,fit3曲线是平滑参数为0.5时的平滑样条插值拟合结果。在默认的平滑参数下,拟合结果最好,平滑参数设置为0.5时,拟合结果最差。