我想解决有效以下最小化问题
min(w ^ T B w + w * g),s.t。 || w || _2< = Delta。,B是正定的
这相当于“信任区域步骤”[更多'& Sorenson],MATLAB doc说它用于fsolve函数。
然而,fsolve函数评估函数F(x)= 0,而不是我想要解决的最小化问题。
任何想法如何使用matlab实现的“信任区域步骤”来解决我的问题?
我想尝试解决我的最小化问题拉格朗日的一阶导数。但我不确定它是否相同。 即使用fsolve与F(x)= [(B + lambda * I) w + g; w ^ T w - Delta] 其中x = [w; λ1
提前谢谢你 Yuval
答案 0 :(得分:1)
fsolve
解决了非线性方程组。它可以使用信任区域方法来执行此操作。但是,这不是你要问的问题;您正在询问如何高精度地解决特定的信任区域子问题。 (你的TRS是特殊的,因为目标函数是凸的。如果B是无限的,TRS仍然可以快速解决。)
您可以找到目标的无约束最小值-B ^ { - 1} g / 2。如果这在大多数Delta都有规范,你就完成了。否则,您希望找到最小的lambda> = 0,使得 - (B + lambda I)^ { - 1} g / 2具有最多Delta的范数。有一个非常快速的迭代,使用一些Cholesky因子找到一个合适的lambda,但我不记得它是什么。
答案 1 :(得分:0)