Using fminimax for optimization with linear and non-linear variables

1 次查看(过去 30 天)
Hello,
I am trying to use the fminimax(...) optimization toolbox to solve a problem. The only problem is that my nonlinear variables do not appear in my linear equations. The nonlinear equations can be implemented in nlnconstr(...) function, but there is nothing to let the optimization function know how to modify the nonlinear variables other than the Ceq and C params returned from nlnconstr(...). Matlab uses the linear constraints to determine how to "modify" the variables to optimize the objective function.
Thanks, Ali
  3 个评论
Ali
Ali 2011-6-3
Hello Steve,
Thanks for the comment. Sorry haven't checked this for a long time. The linear and nonlinear variables appear in the nonlinear constraints (its an algorithm). The nonlinear variables affect the linear variables which in turn effects the objective functions. Because the nonlinear variables are linear constraints, they don't appear in the linear equations.
I currently have to "zero out" the nonlinear vars in my linear equations (e.g. set rows of Aeq that are associated with the nonlinear variables equal to zero).
Let me know if you have any comments or questions.
Thanks,
Ali
Steve Grikschat
Steve Grikschat 2011-6-6
Hi Ali,
What you've said sounds fine to me. There is nothing wrong with all zero columns in the linear constraint matrices.
Can you write out a formulation? Something like this?
min F(x)
(x,y)
subject to: [A 0]*[x;y] <= b
ceq(x,y) = 0
cineq(x,y) <= 0

请先登录,再进行评论。

回答(1 个)

Matt J
Matt J 2017-10-12
编辑:Matt J 2017-10-12
To summarize, you must pass all unknown variables to the objective and nonlinear constraint functions (bundled into an array), but you are not obligated to use them all there.
Similarly, you must also have as many columns in your constraint matrices as there are unknowns, but making some of the columns zero (so that some unknowns don't participate) is also legit.

类别

Help CenterFile Exchange 中查找有关 Solver Outputs and Iterative Display 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by