How can I do this L1 integral minimization?

조회 수: 1 (최근 30일)
Sijie Huang
Sijie Huang 2018년 10월 29일
편집: Bruno Luong 2018년 10월 30일
Greetings,
I have the following integral
where kdx = [pi/16, pi/2], and
I want to minimize the integral above and solving corresponding a_j. But I have no clue how do to it. Can anyone give me some hint?
Thanks.

답변 (2개)

Bruno Luong
Bruno Luong 2018년 10월 29일
편집: Bruno Luong 2018년 10월 29일
The problem of linear L1 fit (your case); meaning
argmin_x | M*x - y |_l1
argmin sum abs(M*x - y)
can be reformulated and solved by linear programming (opt toolbox required) using slack variables trick as following
n = length(y);
Aeq = [M speye(n) -speye(n)];
Aeqpr=nonzeros(Aeq);
beq = y(:);
c = [zeros(1,size(M,2)) ones(1,2*n)];
LB = [-inf(1,size(M,2)) zeros(1,2*n)];
UB = [];
c = c(:);
LB = LB(:);
UB = UB(:);
x0 = zeros(size(c)); % guess vector
[sol, f, exitflag] = linprog(c,[],[], Aeq, beq, LB, UB, x0);
x = sol(1:size(M,2));
You just need to build M with sin(k*j*dx) and log(dx).
  댓글 수: 8
Sijie Huang
Sijie Huang 2018년 10월 30일
Oh, I see. Sorry I didn't understand your subscript _l1.
Bruno Luong
Bruno Luong 2018년 10월 30일
편집: Bruno Luong 2018년 10월 30일
I don't know how to type a curly "l" (lowercase L), which is the right notation.

댓글을 달려면 로그인하십시오.


Matt J
Matt J 2018년 10월 30일

카테고리

Help CenterFile Exchange에서 Particle Swarm에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by