具有箱形约束的牛顿法

计算科学 迭代法 牛顿法 约束
2021-12-08 22:40:49

我必须使用迭代方法(Newton-Raphson,修改后的 Newton 和 Broyden)来求解非线性方程组f(x)=0. 每一个未知xi之间有界liui, IE,li<xi<ui, 并评估f如果任何未知数超出其范围,则会出错。

在迭代过程中避免这种情况的最佳技术是什么?目前,我正在使用阻尼参数t1因此,例如,在 Newton-Raphson 中,

x(n+1)=x(n)tJ(n)f(n)

总是在对应的超立方体内。然而,这是一个临时的、非严格的解决方案,我发现了有关反射技术的论文(尽管它们仅适用于优化问题)。

上述解决方案是一个好的解决方案还是我应该尝试不同的解决方案?

1个回答

你应该把“镜子”放在你的域中。

例如,在一维情况下:

如果我知道我的未知x之间有界0a. 在我的方法的每次迭代中,我会检查是否0<x<a. 如果没有,虽然x<0或者x>a, 如果x<0我会改变xx, 否则如果x>a我会改变xa(xa).

另一种可能更复杂的编程方法取决于您使用的语言,但通常更成功,这是在您不在感兴趣的领域时通过将步长除以 2 来修改雅可比行列式。