查看原文
其他

进阶操作 || 如何使用Origin自定义函数进行曲线拟合?


Origin是一款强大的数据处理软件,内置了超过200种函数,然而科学是无止境的,我们经常会发现自己的拟合函数并不存在于Origin中,这样的话就要自定义函数。

关于自定义函数拟合,有一点是要思考的,即自定义的函数基本上是预先确定的,这些函数要么来源于文献中的模型,要么是自己通过数学运算推导出来的,因此拟合结果必然具有一定的物理意义,其结果可以加以解释,否则如果胡乱使用一种数学函数,即使拟合结果非常好,可以说也是毫无意义的。小编最开始用自定义拟合函数是用来完成物理化学作业的,现在还在学习物理化学的同学可以试一下哦。

下面以实例来介绍用户自定义函数拟合的过程:

(1)打开Tools菜单中的Fitting Functions Organizer 拟合函数管理器。在User Definded用户自定义下面建立目录和函数。

图1 Fitting Functions Organizer 拟合函数管理器

(2)单击New Category建立目录“MyFunction”。

图2 构建函数

(3)现在进行最重要的工作,即构建函数。一个函数关系是由自变量、因变量和相关常量构成的,常量在这里称为Parameter,事实上曲线拟合就是为了求得这些参数的最佳合理值,在拟合之前这些参数是未知的,因此也要使用各种代码来表示。

对于本实例来说,保持Independent Variables(自变量)为x,Dependent Variables(因变量)为y不变,拟合时这些x和y对应着源数据的记录,Parameter Names参数名称则修改为y0、a、b即共有3个参数。填写参数时,以英文逗号相隔。

为了帮助用户正确地完成自定义函数的工作,当将鼠标左键单击相应输入框时,在对话框最下面的Hints中会有进一步的提示,如图3所示,鼠标停留在Parameter Names,Hints框中告诉我们如何命名参数、名称等。

(4)完成了函数定义后,为了能够在Origin中进行使用,必须经过代码编译,编译后自定义函数就与内部函数一样成为系统的一部分。

单击调用Coder Builder进行编译。可以看到系统自动将我们刚刚定义的函数编译成C语言代码。不要管这些代码,而是直接单击Compile编译,可以看到左下角出现编译和链接状态提示,当看到Done即完成了编译工作,单击Return to Dialog返回自定义函数对话框,如图3所示。

图3 代码编译

(5)单击Save保存按钮进行保存,可以单击Simulate对函数进行模拟,然后单击OK按钮回到Origin主界面,完成了自定义函数的工作。

接下来用上面自定义的拟合函数处理数据。

(1)导入数据,绘制散点图。

图4 散点图

(2)选择执行菜单命令Analysis→Fitting→Nonlinear Curve Fit,打开NLFit对话框。在“Category”下拉列表框中,选择“NewCategory”;在“Function”下拉列表框中,选择 NewFunction 进行拟合,如图5所示。

图5 选择自定义的NewFunction 进行拟合

(3)为了得到有效的结果和减少处理工作量,必须单击“Parameters”进行参数设置,如图6所示,在这里我们输入自定义的3个参数原始值,都定义为1。

图6 “Parameters”标签下进行参数设置

图7 点击“Fit Till Converged”按钮

然后单击图六中红框标注的所指的按钮“Fit Till Converged”即拟合直到数据收敛,如图7所示,完成收敛后即可得到y0、a和b的值。单击“OK”按钮返回主界面,完成拟合。

图8 用自定义函数拟合的结果

图9 自定义函数拟合结果报表

结果如图8所示。将拟合结果存放到报告中,如图9所示。表格显示了自定义函数方程式、三个参数以及相关系数R2的数值,R2=0.98475表示拟合情况良好。

拟合函数:y=104.85045+193.27707e-8.2677x

至此,使用origin进行曲线拟合的内容基本介绍完了,希望对大家有所帮助。

=科研很苦,坚持很酷=




往期推荐

tenure track:非升即走到底好不好?

2021-06-15

【618狂欢】20个热门材料测试项目打骨折,下单抽免费测+500元京东卡

2021-06-15

【够劲爆还刺激】生物测试项目年中钜惠,三重惊喜礼!

2021-06-15

【堪称教科书】论文投稿系列之Response Letter写法

2021-06-15

【技术老鸟】哪位大佬能够分享一下氧化石墨烯的cif,跪求!!!

2021-06-15


关注我们长按识别下方二维码领取首样免单优惠券

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

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