MATLAB: How to model the objective function for optimization? in quadprog

non-linear optimizationoptimizationquadprogquadratic programming

x(1)+x(2)+x(3)+x(4)+x(5)+x(6)+x(7)+0.3*x(5)^2+0.3*x(6)^2+0.3*x(7)^2
If someone know please help.
Thank You.

Best Answer

As the function reference page for quadprog states, the objective function in terms of the matrices H and f is
1/2*x'*H*x + f'*x
You have a 7-dimensional x. So f = ones(7,1) for the first seven terms of your sum. Then you have three terms for quadratic terms. Take
H = spalloc(7,7,3); % Sparse 7-by-7 array with 3 nonzero entries
H(5,5) = 2*0.3;
H(6,6) = 2*0.3;
H(7,7) = 2*0.3;
The reason you multiply those entries by 2 is because of the 1/2 in the definition of the quadprog objective function.
Alan Weiss
MATLAB mathematical toolbox documentation