constrainted regularization to solve ill conditioned problems?
11 views (last 30 days)
Show older comments
I am trying to solve a matrix equation of the form Ax = b (solving for x with known A and b).
prior to trying regularisation I was using lsqlin (https://uk.mathworks.com/help/optim/ug/lsqlin.html) with the constraints lsqlin(C,d,[],[],[],[],lb,ub) where lb and ub are lower and upper bounds for the allowed values of my output vector. Some (but not all) of my vector values in x should not have negative values. My results are ill-conditioned. I was wondering if anyone is aware of any type of regularisation (e.g. Tikhonov) that has lb or ub constraints such that I can make some (but not all) of my values in x non-negative?
For context:
I have tried using Tikhonov regularisation (the example code given here: https://uk.mathworks.com/matlabcentral/fileexchange/130259-arls-automatically-regularized-least-squares?s_tid=prof_contriblnk - the response from 15 Mar 2024). The issue is that this code does not have any constraints.
0 Comments
Accepted Answer
Matt J
on 2 May 2024
Edited: Matt J
on 2 May 2024
To implement Tikhonov regularisation in lsqlin,
C=...
d=...
lb=...
ub=...
beta=0.0001; %regularization weight
I=eye(numel(lb));
C=[C;beta*I];
d(height(C))=0;
x = lsqlin(C,d,[],[],[],[],lb,ub)
2 Comments
Matt J
on 2 May 2024
This scheme can also be modified to accomodate second order TV regularization,
I=diff(eye(numel(lb)));
More Answers (0)
See Also
Categories
Find more on Linear Least Squares in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!