8 曲线拟合
在这一课中,我们将学习如何进行线性以及非线性拟合。
存在异常值的线性拟合
- 使用上一节课中保存的项目, 在项目管理器的根目录下添加一个新的文件夹并命名为 Curve Fitting。
- 导入文件 <Origin安装路径>\Samples\Curve Fitting\Outliers.dat。
- 选择第二列来创建一个散点图。
- 选择如下菜单分析(A): 拟合(F): 线性拟合(L)。在打开的对话框中,使用默认设置并点击确定以进行线性拟合。
- 在图中,右击拟合结果表并选择 表中的输出量。 去掉截距,斜率以及Pearson's r以外的所有输出量(按住CTRL 键点选多行)。 点击 确定 并调整结果表大小。
- 然后,点击左侧工具栏上的屏蔽当前绘图的点按钮
,然后屏蔽图右下方的数据点,因为这个点明显的偏离剩余其他点。 - 此时图中左上角的锁变成黄色
,表明源数据已被更改且拟合结果需要更新。 - 按下ESC键使光标切换回指针模式。然后点击黄色的锁并在弹出菜单上选择重新计算模式:自动。 拟合结果就会被更新。
- 回到图中并使用屏蔽工具屏蔽图中右上方的偏离点。这次您可以看到结果会自动更新。最终您可以得到如下的图:

![]() |
非线性拟合
- 创建一个新的工作簿并导入文件<Origin安装路径>\Samples\Curve Fitting\Gaussian.dat。
- 选择名为Amplitude的数据列去创建一个散点图。
- 回到工作簿,选择名为Error的数据列,右击并在右键菜单中选择设置为: Y 误差。
- 移动光标到所选列的右侧边缘。光标变成
时,您就可以拖放该列到图上。这样,数据就会被添加为已有的散点图的误差棒。 - 现在我们开始拟合数据。点击菜单分析(A): 拟合(F): 非线性曲线拟合(N)以打开NLFit对话框。
- 在函数选取页面,分别设置类别为Peak Functions,函数为Gauss。
- 点击拟合按钮进行拟合,然后在弹出对话框上选择否以保持当前活动窗口仍为图形窗口。
- 现在我们打算固定参数y0的值为 0,并对应的更新拟合结果。 点击图层左上角的绿锁并选择更改参数。
- 之前的对话框将被重新打开,且保持了上次的所有设置。切换到参数选项卡,选中y0的固定复选框并设置其值为0。

- 点击拟合按钮以更新结果并关闭对话框。在图中已更新的结果表里,我们可以看到
。
共享参数的全局拟合
- 创建新的工作簿并导入文件<Origin安装路径>\Samples\Curve Fitting\Exponential Decay.dat。
- 拖动鼠标选择三个Y列去创建一个包含三条图线的线图。
- 我们打算同时拟合这三个图线,且把拟合范围定在x=0.4s~1.0s。在左侧工具工具栏上,点击当前图形上的选择
右侧的下箭头按钮。 在快捷菜单上,点击所有图形上的选择项。 然后转到图形窗口,按住鼠标并拖动,画一个x范围大概为0.4到1的矩形,此操作将选出所有图线的该x范围内的数据。

- 同时按下CTRL+Y键以快速打开NLFit对话框。然后分别设置类别为Exponential以及函数为ExpDec1。
- 点击设置选项卡下的数据选择子选项卡,展开输入数据节点,刚刚选择三条图线段已被设为输入数据。您可展开 范围#节点并通过按行或按X来调整输入数据的范围。
- 更改多数据拟合模式为全局拟合,切换至参数选项卡并点击拟合直至收敛按钮
,在不关闭对话框的情况下同时拟合三条图线。
- 在全局拟合中您可设置共享参数。选中时间常量的 t1的共享复选框。 您可看到参数列表中其余图线的时间参数会被移除。
- 点击拟合按钮并在弹出的对话框中选择是以跳转到结果工作表。 如果没有弹出对话框,您可点击图上的锁选择转到结果。
- 向下滚动至结果工作表里的汇总表,可以看到所有时间常量t1共享同一参数值。

- 点击汇总节点旁的下箭头按钮然后选择创建副本为新表。 一个新的包含该拟合结果的工作表将被添加在当前工作簿中。
- 在该工作表中,选择列D,E创建一个柱状图,用于显示振幅参数(A1)在三个数据之间的变化。

![]() | 如果没有在多个图线上选择部分范围,Origin将把当前活动图线作为输入数据,即便图中包含多个图线。如果是这种情况,您点击输入数据 |
