Basis Pursuit Denoising with additional constraint function
4 次查看(过去 30 天)
显示 更早的评论
I want to solve optimization problem of the type basis pursuit denoising (BPDN). What I want to minimize is the l_1 norm of vector x (length N), |x|_1, subject to |Ax - B|_2 <= sigma, where A is an MxN matrix, B is length M vector, and sigma is a positive scalar. In addition to that constraint, there is also another one, namely I want also, let's say, x(1:P) = 0 where P < N obviouisly.
That's what I want to do and now I have already found a MATLAB code designed specially to solve BPDN problem but it's the standard one I think, it can only assume the first constraint involving inequality with sigma. What I want to do now is that I want to add the second constraint while using the code I'm having without modifying it, that is I would like to add my own constraint directly in my MATLAB script in which the BPDN problem will be executed.
Could somebody give an idea?
EDIT: My idea is to set the first up to the P-th column of matrix A to have zero entries because this way the product Ax is the same as the original problem. In coming up with this idea I also assume that the BPDN code I found will automatically set the elements x(1:P) to zero because it will have the full freedom in deciding the values of these elements due to the multiplication with zero-entries columns and it must also minimize the |x|_1. Will this way equivalent with the original problem?
0 个评论
回答(1 个)
Matt J
2015-5-4
编辑:Matt J
2015-5-5
Your "constraints" aren't really constraints. What you're saying in fact is that you already know the values of x(1:P) already. Since they are not unknowns, you shouldn't treat them as such and should just remove them from the problem.
Just delete the first P columns of A and replace B with the apriori known quantity,
B-A(:,1:P)*x(1:P)
Then everything will reduce to a standard BP problem in the remaining N-P variables.
4 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Denoising and Compression 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!