How to solve a non-polynomial constrained optimization problem in Matlab
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi guys,
I have the following optimization problem:
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 commentaires
Réponses (1)
Arvind Narayanan
le 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 commentaires
Voir également
Catégories
En savoir plus sur Solver Outputs and Iterative Display dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!