How to solve a non-polynomial constrained optimization problem in Matlab
1 view (last 30 days)
Show older comments
Hi guys,
I have the following optimization problem:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/161638/image.png)
I can't use the function quadprog, since it has a 3rd degree element, and i can't use the functions: fminbnd, fmincon and fseminf either because it has a differentiation (non-polynomial) element in it. Does anyone know which Matlab function I can use to solve this, or if it is even possible?
Kind regards, Dennis
3 Comments
Answers (1)
Arvind Narayanan
on 27 Mar 2017
Hi Dennis,
The problem can be looked at in different ways:
1) Since x is a function of t (assuming it is a function of only t and no other independent variable), that means the actual independent decision variable is t. Hence, you can try rewriting the constraints as well as the objective function to match that. That way, the problem can be converted to a single-variable constrained optimization problem in t, which can be solved using fminbnd or fmincon or fseminf.
2) x is velocity. That means, dx/dt would be acceleration. Let a=dx/dt. Assuming you have the relation between x and t, you can evaluate the constraints on a, w.r.t the constraints on x. Hence you will have the objective function and the constraints in x and a and you will be able to solve the same as a multi-variable constrained optimization problem in a and x, which can be solved using fmincon.
3) If you have the input as well as the results of the objective function within the domain of the decision variable, then you can use the lsqcurvefit function to determine the coefficients of the curve that can be fit to the objective function. Once the curve is determined, you may find its global minima and that will be the result of your optimisation problem. Refer to this link for documentation on lsqcurvefit function: lsqcurvefit You may also use the lsqonlin function which is a nonlinear least-squares solver: lsqnonlin
Regards,
Arvind
0 Comments
See Also
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!