本例使用几个自定义非线性方程拟合ENSO数据。ENSO数据包括复活节岛和澳大利亚达尔文之间的月平均大气压差。这种差异导致了南半球的信风。
ENSO数据明显具有周期性,这表明它可以用傅里叶级数来描述:
在哪里一个我和b我振幅和c我是数据的周期(周期)。这里要回答的问题是存在多少个循环?
作为第一次尝试,假设有一个循环,并使用一个余弦项和一个正弦项拟合数据。
如果拟合不能很好地描述数据,添加额外的具有唯一周期系数的余弦和正弦项,直到获得良好的拟合。
由于系数未知,方程是非线性的c1是包含作为三角函数参数的一部分。
加载数据并打开曲线拟合应用程序:
负载enso cftool
工具箱中包含了作为非线性库方程的傅里叶级数。然而,库方程不满足本例的需要,因为它的术语被定义为基频的固定倍数w.指傅里叶级数为更多的信息。创建内置库傅里叶适合比较与您的自定义方程:
选择月
为X数据和压力
为Y数据.
选择傅里叶
为模型类型。
输入傅里叶
为适合的名字.
将术语的数量更改为8
.
观察库模型是否合适。在接下来的步骤中,您将创建用于比较的自定义方程。
复制你的健康。右击你的适合在符合表并选择重复的傅里叶.
命名新匹配Enso1Period
.
更改适合类型为傅里叶
来自定义公式
.
将等式编辑框中的示例文本替换为
a0 + a1 * cos(2 *π* x / c1) + b1 *罪(2 *π* x / c1)
工具箱将适合应用于enso
数据。
图和数值结果表明,拟合不能很好地描述数据。特别地,拟合值为c1
不合理的小。您的初始拟合结果可能与这些结果不同,因为起始点是随机选择的。
默认情况下,系数是无界的,并具有从0到1的随机起始值。这些数据包括一个周期约为12个月的周期性成分。然而,随着c1
不受约束且起点是随机的,这个拟合无法找到那个循环。
协助装配程序,约束c1
取值范围为10 ~ 14。单击合适的选项按钮表示查看和编辑未知系数约束。
在“匹配选项”对话框中,注意在默认情况下系数是无界的(边界负
和正
).
改变较低的和上范围为c1
将周期从10个月限制到14个月,如下所示。
点击关闭.曲线拟合应用程序改装。
观察新的拟合和残差图。如果有必要,选择视图>残差图或者使用工具栏按钮。
拟合似乎对某些数据点是合理的,但显然不能很好地描述整个数据集。正如预测的那样,数值结果在结果窗格(c1 = 11.94
)表示约12个月为一个周期。但残差呈系统周期分布,表明至少还有一个周期存在。您应该在拟合方程中包含其他循环。
为了改进拟合,您需要添加一个额外的正弦和余弦项y1(x)如下:
并约束上下界c2大约是。界限的两倍c1.
复制您的适合,右键单击它在符合表并选择重复“Enso1Period”.
命名新匹配Enso2Period
.
把这些项加到前一个等式的末尾:
+ a2 * cos(2 *π* x / c2) + b2 *罪(2 *π* x / c2)
点击合适的选项.当您编辑自定义等式时,该工具会记住您的适合选项。观察较低的和上范围为c1
仍然将周期从10个月限制到14个月。添加更多适合的选项:
改变较低的和上为c2
大约是。界限的两倍c1
(20 <c2
< 30)。
改变曾经繁荣为a0
来5
.
当你改变每个设置时,曲线拟合应用程序就会重新调整。下面显示拟合和残差。
对大多数数据点来说,拟合似乎是合理的。然而,残差表明您应该在拟合方程中包含另一个周期。
作为第三次尝试,添加一个额外的正弦和余弦项y2(x)
并限制它的下界c3.大约是。价值的三倍c1.
复制您的适合,右键单击它在符合表并选择重复“Enso2Period”.
命名新匹配Enso3Period
.
把这些项加到前一个等式的末尾:
+ a3 * cos(2 *π* x / c3) + b3 *罪(2 *π* x / c3)
点击合适的选项观察你之前的适合选择仍然存在。
改变较低的开往c3
是36
的价值大约是c1
.
关闭对话框。曲线拟合应用程序改装。接下来是拟合和残差。
与前两次拟合相比,拟合有所改进,并且似乎可以解释ENSO数据集中的大部分周期。对于大多数数据,残差看起来是随机的,但是仍然可以看到一个模式,表明可能存在额外的周期,或者您可以改进拟合的振幅。
总之,数据的傅里叶分析揭示了三个重要周期。年周期是最强的,但周期约为44个月和22个月的周期也存在。这些周期对应于厄尔尼诺和南方涛动(ENSO)。