1/5如何在SigmaPlot添加自定义(User-Defined)函数并作自定义函数的拟合回归关键词:SigmaPlot,自建/自定义函数(User-Defined),拟合回归,动态拟合(DynamicFit)注:本教程基于SigmaPlot12.5版本,其余版本可能在操作步骤和视图方面稍有不同。SigmaPlot提供了最多25个拟合参数的线性和非线性回归功能,功能强大;程序内部提供了大量函数类型供用户选择。但是,很多时候内置的函数并不能完全满足用户的需求,需要的函数并没有出现在内置函数列表里。那么,我们就需要自建函数并添加到SigmaPlot函数列表里。那么如何操作呢,先举例完成:如Fig.1所示,分析因变量土壤呼吸C与自变量温度T和自变量湿度W之间的关系,初步分析发现它们之间存在公式1中的关系,n2meabcTCWW(++)(1)其中m,n,a,b,c是需要通过拟合求出的参数;C,T,W是Fig.1中的变量。SigmaPlot内置函数并没有公式(1)中的函数,我们需要新建一个。Fig.1温度T、湿度W和土壤呼吸C部分数据.2/5Step1:在数据表worksheet里,按照Fig.2中红色1、2的步骤,选择Analysis>DynamicFitWizard。之所以要选择动态拟合DynamicFit,是因为这个功能比较智能,不需要太过复杂的自定义。接下来则会弹出一个小窗口,里面有函数类型EquationCategory,每类还分有小类。步骤3,选择函数类型EquationCategory至自定义函数User-Defined,我们将新建函数放在User-Defined下。步骤4,点击新建New进入新建函数面板Fig.2引导自建函数.Step2:点击新建New后,我们看到Fig.3的空白函数编辑区,红色框内就是需要我们编辑填入相关信息,从而新建一个函数。红色1、2、3、4分别表示待建函数、变量(因变量和自变量)、初始值和限制条件。Fig.3新建函数待编辑区域(空白)3/5Step3:编辑函数。Equation部分:第一行命令,f=m*exp(n*T)*(a+b*W+c*W^2),申明目标函数关系式。函数写法跟Excel函数类似,等号“=”前后必须有空格,其它位置不需要空格,乘号不可省略;第二行命令,fitftoC,用因变量C去匹配(fit)目标函数f。对于太过复杂的公式,可以写成复合函数,例如:region1(w)=a*(w-w0)+b(第1行)s1=c*w+b-c*w0(第2行)f=m*exp(n*t)*(if(w=w0,region1(w),s1))*(0.4849+0.5158/(1+exp(-(t-13.62)/0.7969))^0.1376)(第3行)fitftoC(第4行)第一行、第二行“=”左边的子函数region1(w)、s1并不需要重新声明。用来表示函数的形式多样,如写成region1(w)、s1都可以,没有一定之规。此例中目标函数f其实是一个指数函数和分段线性函数相乘得到的复合函数。Variables部分:这里是声明变量,出现在这部分就表明该参数是变量,这些变量的值一定存在于数据表中,是已知的数据组。col(1)、col(2)、col(3)表示是SigmaPlot数据表第一列数据,第二列数据,第三列数据。括号的数字并不重要,无论写几都没有关系,因为Variables部分的唯一作用是申明哪些参数是变量,是已知的;至于变量具体对应于数据表哪列数据,在后面做拟合回归时,软件会让你重新选择的。等号“=”前后必须有空格。所有的变量必须出现在这部分。Initialparameters部分:这里是申明拟合参数,并设置拟合参数初始值的。设置的初始值是参数拟合时最初的值,设置恰当有助于减少软件工作量,尽快得到最优拟合结果。一般可任意设置,不会影响最终拟合结果。等号“=”前后必须有空格。所有的拟合参数必须出现。Constrains部分:申明限制条件。可选部分,不填也行,但不填可能得到与实际不符的结果。关系式符号前后必须空格。4/5Fig.4编辑新建函数参数Step4:自建函数命名和存储。如图Fig.4,在函数建好之后需要存储起来,以后备用。点击添加为AddAs,弹出Fig.5对话框,自己想个最能代表该方程的名字填进去,按OK。退出之后,我们发现,自己的函数已经添加进入了函数库,见Fig.6。除非更换windows系统或SigmaPlot完全卸载清理后重装,自建函数都会保留。Fig.5自建函数命名Fig.6新建函数就建好了,储存在User-Defined里,以后还可以用。Step5:正式开始拟合函数。此处省略。需要说明的是自建函数由于在初始值设置比较简略,所以需要DynamicFit功能去做拟合,它需要通过大量的动态调整参数值来获得最优的拟合结果,因而拟合过程比较慢,所以尽可能将初始参数设置合理一点;还可以设置合理限制条件,避免软件进行漫无边际的大量计算。注:对于自建函数,就用DynamicFit,尽量不用其它拟合方式。5/5Fig.7和Fig.8分别是最终拟合的结果和report,通过report可以获得拟合参数值,进而获得拟合函数。Fig.7拟合结果,网状曲面就是得到的拟合方程,散点是实测数据.Fig.8拟合结果report,在这里你可以找到对应拟合参数的值.GoodLuck!