This submission contains routines for finding the minimum L1-norm solution of the linear equations C*x=d, subject to linear and possibly integer constraints on the unknown parameter vector x. It is similar to the Optimization Toolbox's lsqlin except that it minimizes with respect to the L1-norm, and also because options for integer constraints are available. The solution is achieved by reformulating the problem as a linear program.
When there are no integer constraints, one can use minL1lin, whose syntax
[x,resnorm,residual,exitflag,output,lambda] = minL1lin(C,d,A,b,Aeq,beq,lb,ub,x0,options)
is the same as for lsqlin with all the same defaults for A,b,..,x0. However, the "options" are those of linprog which is used by the algorithm internally. When integer constraints are present, one may use instead minL1lintin, whose syntax is
[x,resnorm,residual,exitflag,output,lambda] = minL1intlin(C,d,intcon,A,b,Aeq,beq,lb,ub,x0,options)
This routine is very similar except that intlinprog is the solver that is used internally. The arguments intcon,A,b,Aeq,beq,lb,ub,x0,options are all as for intlinprog. Some examples of these routines are given in the examples tab.
Matt J (2020). Constrained minimum L1-norm solutions of linear equations (https://www.mathworks.com/matlabcentral/fileexchange/52795-constrained-minimum-l1-norm-solutions-of-linear-equations), MATLAB Central File Exchange. Retrieved .
Edits to Livescript examples
Added new routine minL1intlin to support integer constraints
No changes - just Description Edit.
Small fix: error was being thrown in cases where linprog failed to find a solution