目前,我正在研究一个不受约束的能量最小化函数,但我需要添加一些约束。我的系统是一个施加了力的二维晶格,我希望边能够移动,但每边的长度是恒定的。
我知道使用拉格朗日乘数可以使我想要保持不变的条款保持不变,通过使能源成本如此巨大以至于它不会移动任何东西来保持不变。但我想知道是否有一种不同的方法可以在不改变能量最小化不受约束的事实的情况下向系统添加约束。
目前,我正在研究一个不受约束的能量最小化函数,但我需要添加一些约束。我的系统是一个施加了力的二维晶格,我希望边能够移动,但每边的长度是恒定的。
我知道使用拉格朗日乘数可以使我想要保持不变的条款保持不变,通过使能源成本如此巨大以至于它不会移动任何东西来保持不变。但我想知道是否有一种不同的方法可以在不改变能量最小化不受约束的事实的情况下向系统添加约束。
您想将约束问题转换为无约束问题。有两种通用技术:
如果您有形式的约束,那么您可以将其写为从而简单地消除问题中的一个变量。然后,您不再需要约束。(当然,可能是您的约束不允许您消除但另一个变量,结果相同。)
您可以通过与您的约束相对应的惩罚项来增加您的目标函数。对于等式约束,这通常使用二次惩罚来完成,而对于不等式约束,最常使用对数惩罚项。我建议您通读 Nocedal 和 Wright 关于“数值优化”的书,了解它是如何工作的。