3

我正在将R 接口用于非负线性最小二乘算法的 Lawson-Hanson NNLS||A x - b||^2实现,该算法在向量 x ≥ 0 的所有元素的约束下求解。这工作正常,但我想添加进一步的约束。我感兴趣的是:

  1. 还要最小化 x 的“能量”: ||A x - b||^2 + m*||x||^2

  2. 最小化“x 导数中的能量” ||A x - b||^2 + m ||H x||^2,其中 H 是恒等式和第一个非对角线上为 -1 的矩阵的总和

  3. 最一般地,最小化||A x - b||^2 + m ||H x - f||^2.

有没有办法通过一些巧妙的方式来重述问题 1.-3 来诱使 nnls 做到这一点。以上?我对这样的事情抱有希望的原因是,在Whitall 等人的一篇论文中(对付费专区感到抱歉)有一个小小的评论,声称“幸运的是,可以从上面的原始形式采用 NNLS 来适应某些东西在问题 3"中。

4

1 回答 1

3

我认为 m 是一个标量,对吧?考虑简单的情况 m=1; 您可以通过让 H* = sqrt(m) H 和 f* = sqrt(m) f 并使用此处给出的求解方法来概括 m 的其他值。

所以现在你试图最小化||A x - b||^2 + ||H x - f||^2。

令 A* = [A' | H']' 令 b* = [b' | f']' (即在 H 上堆叠 A,在 f 上堆叠 b)并解决 ||A* x - b*||^2 上的非负线性最小二乘的原始问题,约束条件是所有向量 x ≥ 0 的元素。

于 2011-11-13T10:11:52.973 回答