拟合非线性曲线

计算科学 优化 数值分析 非线性规划 回归
2021-12-01 08:33:11

我有一个方程: 称为 Mathieu 方程参数空间看起来像x¨+(δ+ϵcost)x=0δϵ

过渡曲线

该图中的红线表示,如果选择红线上的一个点,并将的对应值代入 Mathieu 方程,则可以保证得到周期解。我已经设法通过称为弧长延续方法的方法生成了这些曲线,因此我有确切的数据可以和我一起绘制这些曲线。(δ,ϵ)

另一方面,我有一个近似于这些红线的解析关系,看起来像: δ=14+f1(k)ϵ+f2(k)ϵ2+f3(k)ϵ3+...

这里,函数是已知的并且是高度非线性的。该方程式仅适用于这些红线之一。这样我就有了所有红线的方程。的上限关系中只有一个自由度(参数 k) 。f1(k),f2(k)...ϵδϵ

首先让我为它选择一个特定的红线和相应的关系。现在,我要做的是两件事:1)我想找到我可以拟合曲线。2)我想为那个最优的δϵϵδϵkϵ

我想通过一些收敛的数值算法找到上述两个东西。这是必要的,因为我的函数本质上是高度非线性的。f1(k),f2(k)...

我会告诉你到目前为止我已经到达了哪里。我什至不知道如何接近第 1 点)。对于第 2 点),我设法实现了均方误差方法,通过该方法我尝试将误差最小化,但这让我不得不求解具有 k 次幂的多项式,例如这个多项式将有很多局部最小值,我不知道有任何数值算法可以帮助我找到全局最小值。k3500

最后,如果我设法实现 1) 和 2),我想做一些分析(如 R 平方系数),看看我对曲线的拟合程度。

如果您知道任何可以实现上述目标的数值程序,请帮助我。谢谢。

1个回答

首先让我选择一条特定的红线和它对应的 -关系。现在,我要做的是两件事:1)我想找到可以拟合 -曲线。2)我想为那个最优的δϵϵδϵkϵ

关于第 1 点):您必须定义“最佳 ”的含义。通常,此定义建议一个目标函数(以及该目标函数的潜在可行集),然后您可以将其用作问题制定的起点。ϵ

对于第 2 点),我设法实现了均方误差方法,通过该方法我尝试最小化误差,但这让我不得不求解具有 k 幂的多项式,k这个多项式将有很多局部最小值 [原文如此],我不知道有任何数值算法可以帮助我找到全局最小值 [原文如此]。kk3500

全局优化有两种主要方法:确定性和非确定性。假设您的可行集是紧凑的(很有可能),正确制定的​​最小二乘法将产生两次连续可微的目标函数,因此您的制定将适用于确定性方法。这些方法的优点是它们返回了可证明的良好解决方案,因为最佳目标函数值可以不超过返回的最佳目标函数值的某个容差(用户指定)。缺点是这些方法的运行时间会随着问题的大小呈指数增长,因此如果您要拟合的参数不只少数,这些方法可能需要很长时间。您可以尝试的求解器示例是 BARON;

非确定性算法(例如遗传算法、粒子群)不会产生可证明好的解决方案,而只是以随机方式探索问题的可行集。如果您有超过 30-300 个参数,您可以考虑使用这种类型的算法来探索您的搜索空间,以期计算出具有相当好的目标函数值的可行点。

您还可以尝试多启动本地优化算法:使用您一直使用的相同方法,但在本地优化器中播种许多不同的初始猜测,这些猜测分布在您的可行集上。您可能不得不满足于选择一个可证明良好的局部最优值,即使它可能是全局次优的。

最后,如果我设法实现 1) 和 2),我想做一些分析(如 R 平方系数),看看我对曲线的拟合程度。

您可能会得到更好的答案:关于 Stack Exchange 姊妹网站 CrossValidated 的统计分析。作为一个学过几次基础统计的非统计学家,我只能提供基本的建议:乍一看,我会看一个残差值的图,看看是否存在任何系统偏差( error) 值,以查看您是否违反了有关错误正态性的任何假设,这将使您了解您选择的模型和拟合标准是否合适。如果您有多个候选模型并且希望从中进行选择,您还可以查看模型选择统计信息,例如 Akaike 信息标准。