gpt4 book ai didi

python - CVXOPT L1 范数近似 - ldB 的非法值

转载 作者:行者123 更新时间:2023-11-28 19:16:59 25 4
gpt4 key购买 nike

按照 L1 范数近似给出的例子 here ,使用以下代码,

from l1 import l1
from cvxopt import normal

m, n = 500, 100
P, q = normal(m,n), normal(m,1)
u = l1(P,q)

一切正常。

然而,当我将 m 更改为小于 n 时,

from l1 import l1
from cvxopt import normal

m, n = 50, 100
P, q = normal(m,n), normal(m,1)
u = l1(P,q)

我收到以下错误:

ValueError: illegal value of ldB

我可以看到错误是由L1.py:180中的以下语句引起的:

lapack.gels(+P, uls)

并进一步深入到 lapack.c:3651,以下语句会引发错误:

if (ldB < MAX(MAX(1,n),m)) err_ld("ldB");

但是,当我阅读 CVXOPT's LAPACK interface for cvxopt.lapack.gels 上的文档时,它具体说,当 m 小于 n 时,它解决了最小范数问题。

谁能阐明为什么 m 小于 n 不起作用?

最佳答案

我有同样的问题,为了后代,我添加了我从 CVXOPT 问题中找到的答案。似乎 l1在超定情况下,函数严格用于逼近 ||Ax - b||_1。我想“近似”应该是表示“超定”的关键字,但我不清楚。无论如何,马丁安德森说:

Notice that the optimal value is zero when m < n and the equation Ax = b is consistent. This implies that any solution to the underdetermined system Ax = b is also a solution to the optimization problem. The l1 example code is intended for the case when m > n.

关于python - CVXOPT L1 范数近似 - ldB 的非法值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32552068/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com