3.1.2 基本拟合
命令CurveFit、FuncFit和FuncFitMD用于数据拟合。CurveFit使用Igor内置的数学模型进行常见的、简单的数据拟合。FuncFit使用用户自定义公式或者数学模型进行任意复杂的数据拟合。CurveFit能完成的拟合FuncFit都可以完成。FuncFitMD是FuncFit的多变量版本,用来对多变量数学模型或者公式进行拟合。
Igor提供了从简单到复杂的拟合操作,以适应不同的数据拟合环境。根据使用的复杂性可分为3个层次。
(1)利用菜单【Quick Fit】进行拟合。
(2)利用【Curve Fitting】对话框进行拟合。
(3)调用拟合命令结合自定义函数进行拟合。
1.利用【Quick Fit】拟合
先显示要拟合的曲线,然后在曲线上右击,在弹出的快捷菜单中选择【Quick Fit】命令并选择合适的数学公式,就可以完成一次拟合。Igor会自动调用CurveFit命令完成拟合过程。下面用一个实例进行介绍。
首先创建一个要拟合的wave:
Make/O/N=100 trialwave; Setscale/I x, -1,3, trialwave; trialwave=exp(-0.1∗x)+gnoise(0.02); Display trialwave; ModifyGraph mode=3;
上面创建了一个长度为100的wave,并取名为trialwave,设置该wave的x坐标为-1~3,然后调用数学函数exp给trialwave赋值。为了模拟实验数据的随机性,利用随机函数gnoise叠加了一个标准偏差为0.02的随机数值,然后在Graph窗口中显示这个wave。显示的wave如图3-1所示。
图3-1 待拟合的模拟实验数据
在上述曲线上右击,在弹出的快捷菜单中选择【Quick Fit】命令并选择exp公式就可以完成拟合,效果如图3-2所示。
图3-2 利用【Quick Fit】拟合曲线示例
图3-2中光滑实线就是拟合结果曲线。同时在命令行窗口也会输出一系列的信息,这些信息就是拟合的输出结果。
2.利用数据拟合对话框自定义拟合
Igor提供了一个数据拟合面板以完成更加复杂的数据拟合,执行菜单命令【Analysis】|【Curve Fitting】打开数据拟合对话框,通过面板可以选择或设定要拟合的数据、拟合函数、拟合数据的范围、初始参数、拟合输出结果等。对于本例,在拟合数据对话框中【Function】(函数类型)选择exp, 【Y data】(数据)选择trialwave,其他的全部选择默认设置就可以了,如图3-3所示。
图3-3 利用数据拟合对话框对数据进行拟合
关于拟合对话框的详细介绍和使用请参看本书第3.1.4节和第3.1.5节。
3.利用拟合命令进行拟合
在命令行窗口或者程序中调用CurveFit或FuncFit命令,也可以完成数据拟合,不过这种方法对使用者的要求较高,要求使用者不但熟悉拟合的过程和机制,还要求掌握编程方法。需要说明的是,前面【Quick Fit】和数据拟合对话框最后其实都调用了CurveFit或者FuncFit这两个命令。特别是自定义拟合对话框本质上就是FuncFit命令使用的图形用户界面。
使用拟合命令(编程)的一般步骤如下:
(1)创建一个自定义函数。
Function fitfun(coef, x):Fitfunc wave coef variable x <Exressions> End
(2)创建一个wave,存放初始参数值。
Make/O coef={a1, a2, a3, …}
(3)调用拟合命令,将自定义函数和初始参数传递给Curvefit或者Funcfit。
Funcfit fitfun, coef, ydata/D
(4)拟合的结果就是coef中参数的值。coef在开始拟合时提供初始参数,在拟合过程中存放拟合结果。
对于初学者,更常见的方法是利用拟合对话框拟合。Igor会自动生成相应的拟合函数和正确的拟合命令。这样在完成拟合的同时,也可以学习和掌握编写程序拟合数据的技巧和方法。
拟合分为单次拟合和批量拟合。单次拟合指一次只对一个wave拟合,批量拟合指一次对多个wave进行拟合。批量拟合需要多次重复调用拟合命令,因此快速拟合和利用数据拟合对话框进行拟合一般适用于单次拟合,利用命令行结合编程技术拟合适用于批量拟合。