Matlab lsqlin约束求解中的N个元素数
我有一个标准Matlab lsqlin约束求解中的N个元素数,matlab,optimization,constraints,linear-programming,least-squares,Matlab,Optimization,Constraints,Linear Programming,Least Squares,我有一个标准 x=lsqlin(C,d,A,b,Aeq,beq,lb,ub)问题。然而,考虑到我在C中有大约700行,我发现x中的解决方案包含数百个非常小的值和一个很大的N(元素数) 如果我的解决方案可能只包含N*非零元素,并且向量x保持相同的长度,有没有办法防止小值?通过指定非零N的最大数量,或者如果选择了元素,则指定最小值? 向量lb=0和ub=1适用。这有时被称为基数约束(max n非零)或半连续约束(x为零或大于下限)。不幸的是,这将使您进入离散优化领域。用lsqlin.Ah无法做到这一
x=lsqlin(C,d,A,b,Aeq,beq,lb,ub)
问题。然而,考虑到我在C
中有大约700行,我发现x
中的解决方案包含数百个非常小的值和一个很大的N
(元素数)
如果我的解决方案可能只包含N*
非零元素,并且向量x
保持相同的长度,有没有办法防止小值?通过指定非零N
的最大数量,或者如果选择了元素,则指定最小值?
向量
lb=0
和ub=1
适用。这有时被称为基数约束(max n非零)或半连续约束(x为零或大于下限)。不幸的是,这将使您进入离散优化领域。用lsqlin.Ah无法做到这一点。谢谢你,欧文。我想知道,通过循环并删除那些低于容忍度的内容是否也能达到同样的效果?或者你认为这会引入路径依赖吗?这将是一个启发。它会给你一个很好但不一定是最好的解决方案。这有时被称为基数约束(max n nonzero)或半连续(x为零或大于下限)。不幸的是,这将使您进入离散优化领域。用lsqlin.Ah无法做到这一点。谢谢你,欧文。我想知道,通过循环并删除那些低于容忍度的内容是否也能达到同样的效果?或者你认为这会引入路径依赖吗?这将是一个启发。它会给你一个好的,但不一定是最好的解决方案。