我有一个非线性方程组,我知道它有一个我感兴趣的根,并且有一个我不感兴趣的连续根。我目前正在使用 Newton 进行线搜索以试图找到那个单根,但该算法显然总是会收敛到连续统中的一个根,因为它们有无穷多个。
我应该如何从我的方程组中排除这些根?
我的第一个想法是在我的方程组中添加尖锐的高斯函数,这些函数在这些根处不为零,在其他地方几乎为零。我目前正在实施这一点,但现在似乎收敛非常缓慢且不一致。
将我的问题重写为优化问题会更好吗?我必须找到一个约束函数的全局最小值。
我有一个非线性方程组,我知道它有一个我感兴趣的根,并且有一个我不感兴趣的连续根。我目前正在使用 Newton 进行线搜索以试图找到那个单根,但该算法显然总是会收敛到连续统中的一个根,因为它们有无穷多个。
我应该如何从我的方程组中排除这些根?
我的第一个想法是在我的方程组中添加尖锐的高斯函数,这些函数在这些根处不为零,在其他地方几乎为零。我目前正在实施这一点,但现在似乎收敛非常缓慢且不一致。
将我的问题重写为优化问题会更好吗?我必须找到一个约束函数的全局最小值。
您可以尝试使用优化公式通过约束排除不需要的根。然而,全局优化是一个出了名的困难问题,确定性地解决这样的问题可能具有挑战性。如果您可以以某种方式排除所有次优的局部最小值,那将更容易。对于确定性方法,您基本上仅限于从 GAMS 调用 BARON(除非您想编写自己的分支定界框架,其中使用区间算术和自动微分实现凸和凹松弛)。非确定性方法将以概率 1 收敛;您可以尝试使用这种方法,如果它返回的解决方案不是根,则使用该解决方案作为类似牛顿方法的初始猜测。我怀疑这种方法会特别有效。去工作,您的牛顿方法的猜测必须在您想要的根的收敛范围内,并且它不能优先收敛到其他根。我认为你最好利用Nico 在回答您的其他问题时讨论的结构;如果您可以将所需的根表示为一个更简单的封闭形式的表达式,而没有无穷大的根(例如,没有所有),你会有一个更容易处理的问题。