在R的nnls中实现其他约束

时间:2011-11-12 21:23:22

标签: r linear least-squares minimization

我正在使用算法的R interface to the 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.
  4. 有没有办法通过一些巧妙的方式重新解决问题来哄骗nnls来做到这一点。以上?我对此类事情抱有希望的原因是,Whitall et al(对付费用墙感到遗憾)在一篇论文中有一点点评论,声称“幸运的是,NNLS可以从上面的原始表格中采用容纳问题3中的内容。

1 个答案:

答案 0 :(得分:3)

我认为它是标量,对吗?考虑简单情况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。