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 Kommentare

Torsten
Torsten am 10 Nov. 2015
Bearbeitet: Torsten am 10 Nov. 2015
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 am 10 Nov. 2015
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 am 10 Nov. 2015
Thank you :) In the absence of constraints, will lsqnonneg function of MATLAB still solve the problem?
Torsten
Torsten am 10 Nov. 2015
You still have the constraint x>=0 ...
Best wishes
Torsten.
rihab
rihab am 10 Nov. 2015
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 am 10 Nov. 2015
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 am 10 Nov. 2015
thanks :)

Antworten (0)

Diese Frage ist geschlossen.

Gefragt:

am 10 Nov. 2015

Geschlossen:

am 20 Aug. 2021

Community Treasure Hunt

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

Start Hunting!

Translated by