Explanation for formula calculating step size for finite difference used in fmincon

15 visualizaciones (últimos 30 días)
When I view the page of ‘fmincon’, one option in optimset is ‘FiniteDifferenceStepSize’. The descriptions are copied below:
FiniteDifferenceStepSize to a vector v, the forward finite differences delta are
delta = v.*sign(x).*max(abs(x),TypicalX);
where sign(x) = sign(x) except sign(0) = 1. Central finite differences are
delta = v.*max(abs(x),TypicalX);
What's the meaning of v, x and typicalX in formula?
For example, I want to calculate the step size ‘delta’ for obtaining the gradient of objective function J with respect to variables u_i by forward finite difference method, i.e., for forward finite difference, partial J/partial u_i= [J(u1,u2,…,u_i + deltau_i,…, uend)-J(u1,u2,...,u_i,...,uend)]/deltau_i. I guess 'v' in formula is the u vector [u1, u2,...,uend]?? But what does x and TypicalX mean?
Thank you in advance!

Respuesta aceptada

Matt J
Matt J el 10 de Abr. de 2021
Editada: Matt J el 11 de Abr. de 2021
  • v is the value assigned to the optimoptions parameter FiniteDifferenceStepSize.
  • TypicalX is another optimoptions parameter whose default is a vector of ones.
  • x is the current vector of unknown optimization variables (you seem to be calling it u).

Más respuestas (0)

Categorías

Más información sobre Solver Outputs and Iterative Display en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by