我必须使用迭代方法(Newton-Raphson,修改后的 Newton 和 Broyden)来求解非线性方程组. 每一个未知之间有界和, IE,, 并评估如果任何未知数超出其范围,则会出错。
在迭代过程中避免这种情况的最佳技术是什么?目前,我正在使用阻尼参数因此,例如,在 Newton-Raphson 中,
总是在对应的超立方体内。然而,这是一个临时的、非严格的解决方案,我发现了有关反射技术的论文(尽管它们仅适用于优化问题)。
上述解决方案是一个好的解决方案还是我应该尝试不同的解决方案?
我必须使用迭代方法(Newton-Raphson,修改后的 Newton 和 Broyden)来求解非线性方程组. 每一个未知之间有界和, IE,, 并评估如果任何未知数超出其范围,则会出错。
在迭代过程中避免这种情况的最佳技术是什么?目前,我正在使用阻尼参数因此,例如,在 Newton-Raphson 中,
总是在对应的超立方体内。然而,这是一个临时的、非严格的解决方案,我发现了有关反射技术的论文(尽管它们仅适用于优化问题)。
上述解决方案是一个好的解决方案还是我应该尝试不同的解决方案?
你应该把“镜子”放在你的域中。
例如,在一维情况下:
如果我知道我的未知之间有界和. 在我的方法的每次迭代中,我会检查是否. 如果没有,虽然或者, 如果我会改变到, 否则如果我会改变到.
另一种可能更复杂的编程方法取决于您使用的语言,但通常更成功,这是在您不在感兴趣的领域时通过将步长除以 2 来修改雅可比行列式。