查看原文
其他

百纳图说|Origin(Pro)数据拟合系列教程:如何自定义函数

2016-11-20 ScientificPlots 百纳知识

说明


继续我们的数据拟合系列教程,本次介绍大家比较关心的如何自定义函数进行数据拟合。自定义函数通常是针对非线性函数,线性函数或者多项式式函数也不便于自定义,那你说固定线性函数的斜率或者截距是不是自定义函数?

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 ModelExplicit还是Implicit,即显式函数,还是隐式函数。比如y=a*x+b是显式函数,而x^2+y^2-4=0就是隐式函数。

(iii)Function Type:通常选择Expression或者Equations,若你技术好,也可以使用OriginC或者LabTalk ScriptExpression类型只能是一个表达式,而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


百纳知识推送的所有文章的相关电子版等,如您需要,欢迎联系我们获取。百纳知识保留文章的版权,转载需联系作者或百纳知识微信公众号。

小编:八月未央


今日互动


对于本期《百纳图说》栏目你怎么看,

欢迎讨论,说出你的观点,

期待您在下面的留言......


百纳知识 一个让你拥有更多知识的地方
长按,识别二维码,加关注


《百纳知识》由清华、中科、上交、华科、同济、北航、中南、南大、西电等高校的老师博士硕士本科生四十余人组成的公益组织联合运营。科研是一场美丽的冒险,《百纳知识》愿意做大家冒险路程中最真诚的陪伴者。

点击“阅读原文”体验一次不一样的百纳知识,不用太久,不用太难,瞬间即可!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存