Calculation of the gradient of a function in BFGS Quasi-Newton Algorithm

4 views (last 30 days)
I have a function that I want to minimize using the BFGS Quasi-Newton algorithm.
If .
are given.
Also, A is given, B is not given, and C is a function of B only.
If I want to calculate to the gradient of the function (). Should I calculate it with respect to all variables or with respect to B only?

Accepted Answer

Matt J
Matt J on 27 May 2020
With respect to all the variables that are unknown.
  4 Comments
Ahmed Nasr
Ahmed Nasr on 28 May 2020
I have a constraint that B*C > 0 .. But, I usually in my algorithm code substitute C by its function of B and take the gradient over B only as after replacing C with its function of B, B is considered as the only unknown variable in the function. Is that true?
Matt J
Matt J on 28 May 2020
Edited: Matt J on 29 May 2020
It can be true. Or you can treat B and C as separate unknowns subject to an equality constraint,
C-g(B)=0
where g() is the function relating C to B. But it may make the optimization algorithm slower if it has to deal with additional variables and constraints.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!