我们的数据拟合系列教程,本次介绍大家比较关心的如何自定义函数进行数据拟合。自定义函数通常是针对非线性函数,线性函数或者多项式式函数也不便于自定义,那你说固定线性函数的斜率或者截距是不是自定义函数?
Origin(Pro)软件提供了自定义函数的功能,可以在原有函数的基础上进行修改,也可以完全自定义一个函数。本教程是在OriginPro 2017学习版上示例,其他版本与之类似。所用数据位上篇教程中的酸奶随时间变化Compliance的数据,示例方程为:
图片截自:Food Science and Technology International, 2015, 22(1): 31–46
(一)使用函数拟合窗口中部的Edit Fitting Function或者Create New Fitting Function按钮来自定义函数,也可以使用OriginPro 2017中新增的New或者Add快捷按钮来完成,同时也可以使用各个函数Category下的Add或者New来完成。
(二)Edit Fitting Function:通常是选择与目标函数比较接近的现有函数,对其进行修改,使之符合你的要求。
(三)Create New Fitting Function:根据Fitting Function Builder向导,完成自定义函数。左侧为Hints,显示每一步的提示与帮助。
(a)Name and Type
(i)自定义函数的名称信息:选择你的函数要归入的category,填写函数名以及函数描述,便于后续使用。
(ii)Function Model:Explicit还是Implicit,即显式函数,还是隐式函数。比如y=a*x+b是显式函数,而x^2+y^2-4=0就是隐式函数。
(iii)Function Type:通常选择Expression或者Equations,若你技术好,也可以使用
OriginC或者
LabTalk Script。Expression类型只能是一个表达式,而Equations则可以表达多行或者多个因变量的函数。后文以Expression为例介绍。
(b)Variables and Paremeters:输入自变量、因变量、参数、常量等信息。本例所实例函数可以表示为如下公式形式,因此自变量为x,因变量为y,参数为A,B,C和D。如果是峰值函数,还需要勾选下面的Peak Function选项。
(c)Expression Function:输入函数主体,并可以验证函数表达式是否正确。
(i)Parameters/Constants:定义变量的单位、物理含义、是否固定、初始值等信息,一般默认即可。
(ii)Function Body:函数体,此处为1/A+1/B*(1-exp(-x*B/C))+x/D。特别提醒:注意乘号,不能省略。
(iii)Quick Check:用于检查函数体是否正确,给自变量一个值,比如1,点击跑步的小人,得到计算结果。如果函数体不正确,会有错误提示。特别提醒:在输入函数体后,一定要使用这个功能测试下函数体的表达式是否正确。
(d)Parameter Initialization Code:参数的初始化。OriginPro 2017版本提供了使用Variable或者Metadata来初始化参数的方法,同时也保留了使用Code来初始化参数的方法。
(i)Use Variable or MetaData:选择参数初始化的方法,比如是X Min等。
(ii)Use Custom Code:点击右侧的按钮,打开Code Builder界面,在//Code to be executed to initialized parameters下面输入y_data=1/A+1/B*(1-exp(-x_data*B/C))+x_data/D(注意与函数体的差别),点击Compile,查看编辑结果。
(e)Bounds and General Linear Constraints:设置参数的边界与约束条件。单击< or <=栏变换边界类型,双击Lower/Upper Bounds栏输入边界数字。
(f)Derived Parameters:可选项。
(g)Script before or after Fitting:可选项。
(h)点Finish返回拟合窗口,使用中间的按钮拟合。
(四)Add:导入已经保存的函数文件,后缀名为.FDF。
来源:百纳知识 ScientificPlots
版权声明:
本网站所有注明“来源:梅斯医学”或“来源:MedSci原创”的文字、图片和音视频资料,版权均属于梅斯医学所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:梅斯医学”。本网所有转载文章系出于传递更多信息之目的,且明确注明来源和作者,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。同时转载内容不代表本站立场。
在此留言