Optimization using lsqnonneg function

I have to find value of x that minimizes norm of|C*exp(x) - d| subject to x >= 0. I am finding the value of exp(x) that minimizes norm of|C*exp(x) - d| using lsqnonneg function of MATLAB and further I am taking logarthmic of exp(x) to find the value of x. Is this a correct approach or is there some other way in MATLAB to do so? I would appreciate suggestions.

댓글 수: 10

Torsten
Torsten 2015년 11월 10일
편집: Torsten 2015년 11월 10일
minimize |C*y-(-C*ones(size(C,2))+d)|^2 subject to y>=0.
Solving this problem with lsqnonneg, x=log(y+1) will solve your original problem.
Best wishes
Torsten.
rihab
rihab 2015년 11월 10일
What does this term (-C*ones(size(C,2)) indicate and why is it subtracted?
exp(x)>=1 for x>=0.
So you will have to solve
min:||C*(x+1)-d||^2 subject to x>=0
Best wishes
Torsten.
rihab
rihab 2015년 11월 10일
Thank you :) In the absence of constraints, will lsqnonneg function of MATLAB still solve the problem?
Torsten
Torsten 2015년 11월 10일
You still have the constraint x>=0 ...
Best wishes
Torsten.
rihab
rihab 2015년 11월 10일
But if I wish to solve the problem in absence of constraints, will lsqnonneg give me optimal value of the variable that will minimize the function?
So which problem do you want to solve then ?
minimize the norm of ||C*exp(x)-d||^2
(without the constraint x>=0) ?
Best wishes
Torsten.
rihab
rihab 2015년 11월 10일
Yes, exactly.
Then solve
min: ||C*y-d||^2 subject to y>=0
with lsqnonneg. x=log(y) will be the solution of the original problem.
Best wishes
Torsten.
rihab
rihab 2015년 11월 10일
thanks :)

답변 (0개)

이 질문은 마감되었습니다.

질문:

2015년 11월 10일

마감:

2021년 8월 20일

Community Treasure Hunt

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

Start Hunting!

Translated by