在 R 的 nnls 中实现附加约束

发布于 2024-12-15 01:50:26 字数 737 浏览 2 评论 0原文

我正在使用 Lawson-Hanson NNLS 的 R 接口 非负线性最小二乘算法的实现,该算法求解 ||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”。

I am using the R interface to the Lawson-Hanson NNLS implementation of an algorithm for non-negative linear least squares that solves ||A x - b||^2 with the constraint that all elements of vector x ≥ 0. This works fine but I would like to add further constrains. Of interest to me are:

  1. Also minimize "energy" of x:
    ||A x - b||^2 + m*||x||^2

  2. Minimize "energy in the x derivative"
    ||A x - b||^2 + m ||H x||^2, where H is the sum of identity and a matrix with -1 on the first off-diagonal

  3. Most generally, minimize ||A x - b||^2 + m ||H x - f||^2.

Is there are a way to coax nnls to do this by some clever way of restating the problems 1.-3. Above? The reason I have hope for such a thing is that there is a little-throw away comment in a paper by Whitall et al (sorry for the paywall) that claims that "fortunately, NNLS can be adopted from the original form above to accommodate something in problem 3".

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

檐上三寸雪 2024-12-22 01:50:26

我认为 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' | H']' f']'(即将A堆叠在H之上,b堆叠在f之上)并解决原来的问题
||A* x - b*||^2 上的非负线性最小二乘,约束条件是向量 x ≥ 0 。

I take it m is a scalar, right? Consider the simple case m=1; you can generalize for other values of m by letting H* = sqrt(m) H and f* = sqrt(m) f and using the solution method given here.

So now you're trying to minimise ||A x - b||^2 + ||H x - f||^2.

Let A* = [A' | H']' and let b* = [b' | f']' (i.e. stack up A on top of H and b on top of f) and solve the original problem of
non-negative linear least squares on ||A* x - b*||^2 with the constraint that all elements of vector x ≥ 0 .

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文