具有不等式约束的最小二乘的间接方法

计算科学 优化 线性求解器 稀疏矩阵 最小二乘
2021-12-02 11:25:22

我的目标是找到xRn

minx|DFx|2

服从xi=XixjXj

iI,jJ和 I 和 J 将分成两组。1N

很容易做因为 D 是对角线而 F 是离散傅里叶变换。但实际上在 F 上存储和计算是不切实际的。DFx

MATLAB 的 lsqlin 适用于小案例。如果问题混合了等式和不等式约束,它看起来像使用直接方法 qpsub。

您可以参考我的任何求解器或快速实现吗?

1个回答

存在有界约束最小二乘问题的迭代方法;我很快发现的一个例子是Bierlaire、Toint 和 Tuyttens 的On Iterative Algorithms for Linear Least Squares Problems With Bound Constraints 。

通过为函数提供一些选项,您仍然应该能够使用 MATLAB lsqlin要使用迭代算法,在调用之前lsqlin,使用

options = optimoptions(@lsqlin, 'Algorithm', 'trust-region-reflective', ...
                       'JacobMult', YourMatrixFreeObjectiveFunction)
% Your lsqlin call should look something like...
x = lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0,options)

有关更多详细信息,请参阅lsqlin 文档

为了使用信任区域算法,您需要稍微改变您的问题;信任区域反射算法不允许任何等式,因此您必须在目标函数中,并且只求解使得xi=XiiIxjjJ