[fmincon] Can I use the fmincon when the objective funtion is not analytic, i.e., when the objective funtion includes variables that changes at each iteration ?

3 Ansichten (letzte 30 Tage)
for my knowlege, "fmincon" can solve an optimization problem when the objective function is an analytic function. However, in my case I should include some data(or variables) from a numerical method like FEM to the objective function.
for example, consider the objective function such as
fun = (x(1)-a)^2 + (x(2)-b)^2
where "x" is the design variable vector, "a" and "b" are data which depend on the value of "x" so that the values of the data change at each iteration. In my case, the values of "a" and "b" are determined from FEM based on the value of "x".
In this case, can I use "fmincon?" If so, how can I set the objective function?
Any comment is appreciated.
Thanks for your consideration.

Antworten (2)

Daniel Dolan
Daniel Dolan am 7 Jun. 2018
Calculations of a=a(x) and b=b(x) can incorporated inside the objective function. All the optimizer cares about is how the output fun varies with x.
  3 Kommentare
Young-Rok Kwon
Young-Rok Kwon am 7 Jun. 2018
Thanks for the answer. In my case, "a" and "b" will be descrete values that varies with the result of FEM at each iteration, so I think the objective function might be regared as not continuous. Then, can't I use "fmincon?"
Walter Roberson
Walter Roberson am 7 Jun. 2018
If you can break the problem up into regions where the a and b values are consistent for the region, then you can optimize over each region, and then at the end you can take the best over all of the regions.

Melden Sie sich an, um zu kommentieren.


Alan Weiss
Alan Weiss am 7 Jun. 2018
You might be interested in the documentation topic Optimizing a Simulation or ODE. Finite element calculations have pretty much the same considerations.
Alan Weiss
MATLAB mathematical toolbox documentation

Community Treasure Hunt

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

Start Hunting!

Translated by