Origin的非线性拟合功能非线性模型拟合Origin解非线性拟合的算法•Levenberg-Marquardt (L-M) method (列文伯格-马夸尔特法 ):LM算法需要对每一个待估参数求偏导•对于Origin内置的拟合函数,Origin提供了求偏导的解析表达式,因此速度快,拟合时,尽可能使用Origin的提供的内置拟合函数•对于用户自定义的拟合函数,求偏导时,直接使用数值进行,速度较慢Origin也允许用户定义求偏导的表示式•Simplex Method(单纯形算法):当L-M算法不能得出最佳的拟合结果时,可尝试使用该算法非线性拟合的结果如何评价? Origin中进行非线性拟合的步骤1、将数据输入worksheet2、做数据的散点图3、进行非线性拟合:A、若有相应的菜单命令,点击相应的菜单命令即可B、使用Origin内置拟合函数,可以使用拟合向导,按向导指示操作即可C、若自定义函数,使用高级非线性拟合工具进行拟合,所有的拟合过程都可以控制A、使用菜单进行非线性拟合Fit Exponential Decay - first order一阶指数衰减拟合Fit Exponential Decay - second order二阶指数衰减拟合Fit Exponential Decay - third order三阶指数衰减拟合上机练习C:\Program Files\OriginLab\OriginPro75\Samples\Analysis\Curve Fitting\Exp Decay.OPJ完成Origin软件自带的指数二阶衰减拟合例题文件:Fit Exponential Growth一阶指数增长拟合Fit Sigmoidal S拟合当x轴为线性坐标时,采用Boltzmann函数拟合当x轴为对数坐标时,采用LogisticLogistic函数拟合S拟合工具使用菜单命令进行线性拟合,很多参数都是选用缺省值,用户无法对整个过程进行干预。
选用【tool】菜单中的【Sigmoidal Fit】可以对S拟合过程中的相关参数进行选择,使拟合过程按要求进行,适合高级用户使用上机练习C:\Program Files\OriginLab\OriginPro75\Samples\Analysis\Curve Fitting\Sigmoidal Fit.OPJ完成Origin软件自带的 S拟合 例题文件:Fit Gaussian 高斯拟合Fit Lorentzian 洛仑兹拟合Fit Multi-peaks 多峰拟合按照峰值分段拟合,每一段采用Gaussion或Lorentzian方法上机练习C:\Program Files\OriginLab\OriginPro75\Samples\Analysis\Curve Fitting\Multi Peak Fit.OPJ完成Origin软件自带的 多峰拟合 例题文件:B、Fitting Wizard非线性拟合向导第1步:选择要拟合的数据在这里控制参与拟合的数据点自变量(独立变量的)范围,数据点在图形中的显示设置第2步;选择合适的拟合函数函数的类别函数名称函数公式函数图形第3步:选择权重数据没有权重就选择None第4步:拟合控制参数设置显示各测量点的残差图显示置信区间曲线显示预期区间曲线置信区间预期区间第5步:输出结果是否绘制这些曲线?是否输出这些参数?选中的话,会提示把本次拟合的过程保存为一个工具栏上的图标,为以后进行同样的拟合提供方便在此区域右击鼠标,可弹出图示的快捷菜单,可对拟合向导进行一些设置Origin内置函数NLSF拟合C:\Program Files\OriginLab\OriginPro75 \Samples\Analysis\Curve Fitting\NLSF Built In Func.OPJ完成Origin软件自带的使用内置函数进行NLSF拟合的例题文件:拟合向导上机练习C、The NLSF Advanced Fitting Tool Nonlinear Least Squares Fitting NLSF高级拟合工具这是Basic Mode,点击More按钮,即可切换到Advanced ModeNLSF的两种模式Advanced Mode1、选择拟合函数若自定义函数就选择New这里可以写一些参数的线性约束条件,设参数为a, b, c, d,条件可以是:a>b;a+2*b>=c*2-d;4, >=. 约束之间用分号分分隔,换行按CTRL+ENTER. 2、设置函数参数的、设置函数参数的一些约束条件(没一些约束条件(没有的话就跳过)有的话就跳过)3、拟合过程、拟合过程中一些参数的中一些参数的设置(一般用设置(一般用默认设置即可)默认设置即可)一般不要选中设置参数的有效数字Delta一定程度上会影响拟合的结果设置最大的迭代次数设置权重方法,没有就选None4、选择要、选择要拟合的数据拟合的数据1、选变量2、选数据3、确认将数据赋予变量设X变量的时候也是点左边的按钮,不要点这个按钮!!存放模拟曲线的数据点的数据集名称根据这里的参数绘制曲线,选择 Action:Fit, 则最后一次选中的参数被传递给Fit程序5、模拟曲线使用Origin进行非线性拟合,必须指定各参数的初始值,使用内置拟合函数时,Origin会自动设置好比较合适的初始值。
使用自定义函数拟合时,用户必须自己指定初始值,初始值选的不好,拟合就有可能不成功好的初始值的选择需要对拟合数据、拟合函数仔细分析,以及用户的经验取消选中的话,则这个参数在迭代过程中保持不变,当函数中某个参数被确定的话,就可以在这里设置误差取值范围是 [0, 1],越接近 1,则越表明该参数有可能过参数化了这个时候,用户就要考虑拟合的模型是否正确了,是否可以简化模型,除去一些参数 拟合的结果6、进行拟合、进行拟合大多数情况下,过参数化的模型都应该认真审视,但并不是所有的过参数化的模型都是坏的模型比如说,绝大多数的指数方程都是这样的模型 执行一次LM iteration执行n次LM迭代,迭代过程中要终止的话,按ESC键即可当LM迭代方法无法进行时,可以尝试进行Simplex迭代方法(一般情况下,此方法不如LM方法好)(downhill simplex method)用这两个按钮可以浏览拟合过程中每次迭代得到的参数迭代过程的输出结果显示在这里创建一个worksheet,将拟合结果写入其中要Find Y,在这里填入x的值,x在数据集内、外都可以要Find X,在这里填入y的值,y必须在数据集之内7、生成结果、生成结果创建一个matrix,将Var-Cov Matrix写入其中自定义拟合函数1.添加一个新的函数类别,将自定义的函数都放置添加一个新的函数类别,将自定义的函数都放置在这个类别里,以便以后重复使用在这个类别里,以便以后重复使用2、定义新函数 用户自定义函数存放在Origin\FitFunc 文件夹,文件名为\FunctionName.FDF 定义参数和变量时,以下符定义参数和变量时,以下符号不可以使用号不可以使用(Origin内部内部要用要用): x1,,x2,,…,,xn y1,,y2,,…,,yn z1,,z2,,…,,zn i,,t,,j ,,e使用Origin C编写函数默认的参数名为P1,P2等,若要使用自定义的符号,选中这里 ,参数之间用英文逗号分隔开,与C语言相同参数的数目点击这里进行编译自定义函数NLSF拟合上机练习1C:\Program Files\OriginLab\OriginPro75 \Samples\Analysis\Curve Fitting\NLSF User Def Func.OPJ完成Origin软件自带的使用自定义函数进行NLSF拟合的例题文件: 体重约70kg的某人在短时间内喝下2瓶啤酒后,隔一定时间测量他的血液中酒精含量(毫克/百毫升),得到数据如左表。
设饮酒后血液中酒精含量的数学模型为:试确定自定义函数NLSF拟合上机练习2时间 酒精含量 (小时) (毫克/百毫升) 0.25300.5680.75751821.5822772.5683683.5584514.5505416387358289251018111512121310147157164xy245373249336264303285277308258348242375239416246454266483293504339508373左表中的(x,y)为某次实验测得的数据,理论上满足方程:试确定本数据用simplex算法拟合能得到最佳结果自定义函数NLSF拟合上机练习3。