diff options
Diffstat (limited to 'macros/qpipoptmat.sci')
-rw-r--r-- | macros/qpipoptmat.sci | 160 |
1 files changed, 79 insertions, 81 deletions
diff --git a/macros/qpipoptmat.sci b/macros/qpipoptmat.sci index 3f58e70..eec93ce 100644 --- a/macros/qpipoptmat.sci +++ b/macros/qpipoptmat.sci @@ -11,87 +11,85 @@ function [xopt,fopt,exitflag,output,lambda] = qpipoptmat (varargin) - // Solves a linear quadratic problem. - // - // Calling Sequence - // x = qpipoptmat(H,f) - // x = qpipoptmat(H,f,A,b) - // x = qpipoptmat(H,f,A,b,Aeq,beq) - // x = qpipoptmat(H,f,A,b,Aeq,beq,lb,ub) - // x = qpipoptmat(H,f,A,b,Aeq,beq,lb,ub,x0) - // x = qpipoptmat(H,f,A,b,Aeq,beq,lb,ub,x0,param) - // [xopt,fopt,exitflag,output,lamda] = qpipoptmat( ... ) - // - // Parameters - // H : a symmetric matrix of doubles, represents coefficients of quadratic in the quadratic problem. - // f : a vector of doubles, represents coefficients of linear in the quadratic problem - // A : a vector of doubles, represents the linear coefficients in the inequality constraints - // b : a vector of doubles, represents the linear coefficients in the inequality constraints - // Aeq : a matrix of doubles, represents the linear coefficients in the equality constraints - // beq : a vector of doubles, represents the linear coefficients in the equality constraints - // LB : a vector of doubles, contains lower bounds of the variables. - // UB : a vector of doubles, contains upper bounds of the variables. - // x0 : a vector of doubles, contains initial guess of variables. - // param : a list containing the the parameters to be set. - // xopt : a vector of doubles, the computed solution of the optimization problem. - // fopt : a double, the function value at x. - // exitflag : Integer identifying the reason the algorithm terminated. - // output : Structure containing information about the optimization. - // lambda : Structure containing the Lagrange multipliers at the solution x (separated by constraint type). - // - // Description - // Search the minimum of a constrained linear quadratic optimization problem specified by : - // find the minimum of f(x) such that - // - // <latex> - // \begin{eqnarray} - // &\mbox{min}_{x} - // & 1/2*x'*H*x + f'*x \\ - // & \text{subject to} & A.x \leq b \\ - // & & Aeq.x \leq beq \\ - // & & lb \leq x \leq ub \\ - // \end{eqnarray} - // </latex> - // - // We are calling IPOpt for solving the quadratic problem, IPOpt is a library written in C++. The code has been written by Andreas Wächter and Carl Laird. - // - // Examples - // //Find x in R^6 such that: - // - // Aeq= [1,-1,1,0,3,1; - // -1,0,-3,-4,5,6; - // 2,5,3,0,1,0]; - // beq=[1; 2; 3]; - // A= [0,1,0,1,2,-1; - // -1,0,2,1,1,0]; - // b = [-1; 2.5]; - // lb=[-1000; -10000; 0; -1000; -1000; -1000]; - // ub=[10000; 100; 1.5; 100; 100; 1000]; - // x0 = repmat(0,6,1); - // param = list("MaxIter", 300, "CpuTime", 100); - // //and minimize 0.5*x'*Q*x + p'*x with - // f=[1; 2; 3; 4; 5; 6]; H=eye(6,6); - // [xopt,fopt,exitflag,output,lambda]=qpipoptmat(H,f,A,b,Aeq,beq,lb,ub,[],param) - // clear H f A b Aeq beq lb ub; - // - // Examples - // //Find the value of x that minimize following function - // // f(x) = 0.5*x1^2 + x2^2 - x1*x2 - 2*x1 - 6*x2 - // // Subject to: - // // x1 + x2 ≤ 2 - // // –x1 + 2x2 ≤ 2 - // // 2x1 + x2 ≤ 3 - // // 0 ≤ x1, 0 ≤ x2. - // H = [1 -1; -1 2]; - // f = [-2; -6]; - // A = [1 1; -1 2; 2 1]; - // b = [2; 2; 3]; - // lb = [0; 0]; - // ub = [%inf; %inf]; - // [xopt,fopt,exitflag,output,lambda] = qpipoptmat(H,f,A,b,[],[],lb,ub) - // - // Authors - // Keyur Joshi, Saikiran, Iswarya, Harpreet Singh + // Solves a linear quadratic problem. + // + // Calling Sequence + // xopt = qpipoptmat(H,f) + // xopt = qpipoptmat(H,f,A,b) + // xopt = qpipoptmat(H,f,A,b,Aeq,beq) + // xopt = qpipoptmat(H,f,A,b,Aeq,beq,lb,ub) + // xopt = qpipoptmat(H,f,A,b,Aeq,beq,lb,ub,x0) + // xopt = qpipoptmat(H,f,A,b,Aeq,beq,lb,ub,x0,param) + // [xopt,fopt,exitflag,output,lamda] = qpipoptmat( ... ) + // + // Parameters + // H : a symmetric matrix of doubles, represents coefficients of quadratic in the quadratic problem. + // f : a vector of doubles, represents coefficients of linear in the quadratic problem + // A : a vector of doubles, represents the linear coefficients in the inequality constraints + // b : a vector of doubles, represents the linear coefficients in the inequality constraints + // Aeq : a matrix of doubles, represents the linear coefficients in the equality constraints + // beq : a vector of doubles, represents the linear coefficients in the equality constraints + // LB : a vector of doubles, contains lower bounds of the variables. + // UB : a vector of doubles, contains upper bounds of the variables. + // x0 : a vector of doubles, contains initial guess of variables. + // param : a list containing the the parameters to be set. + // xopt : a vector of doubles, the computed solution of the optimization problem. + // fopt : a double, the function value at x. + // exitflag : Integer identifying the reason the algorithm terminated. + // output : Structure containing information about the optimization. Right now it contains number of iteration. + // lambda : Structure containing the Lagrange multipliers at the solution x (separated by constraint type).It contains lower, upper and linear equality, inequality constraints. + // + // Description + // Search the minimum of a constrained linear quadratic optimization problem specified by : + // find the minimum of f(x) such that + // + // <latex> + // \begin{eqnarray} + // &\mbox{min}_{x} + // & 1/2*x'*H*x + f'*x \\ + // & \text{subject to} & A*x \leq b \\ + // & & Aeq*x = beq \\ + // & & lb \leq x \leq ub \\ + // \end{eqnarray} + // </latex> + // + // We are calling IPOpt for solving the quadratic problem, IPOpt is a library written in C++. + // + // Examples + // //Find the value of x that minimize following function + // // f(x) = 0.5*x1^2 + x2^2 - x1*x2 - 2*x1 - 6*x2 + // // Subject to: + // // x1 + x2 ≤ 2 + // // –x1 + 2x2 ≤ 2 + // // 2x1 + x2 ≤ 3 + // // 0 ≤ x1, 0 ≤ x2. + // H = [1 -1; -1 2]; + // f = [-2; -6]; + // A = [1 1; -1 2; 2 1]; + // b = [2; 2; 3]; + // lb = [0; 0]; + // ub = [%inf; %inf]; + // [xopt,fopt,exitflag,output,lambda] = qpipoptmat(H,f,A,b,[],[],lb,ub) + // // Press ENTER to continue + // + // Examples + // //Find x in R^6 such that: + // Aeq= [1,-1,1,0,3,1; + // -1,0,-3,-4,5,6; + // 2,5,3,0,1,0]; + // beq=[1; 2; 3]; + // A= [0,1,0,1,2,-1; + // -1,0,2,1,1,0]; + // b = [-1; 2.5]; + // lb=[-1000; -10000; 0; -1000; -1000; -1000]; + // ub=[10000; 100; 1.5; 100; 100; 1000]; + // x0 = repmat(0,6,1); + // param = list("MaxIter", 300, "CpuTime", 100); + // //and minimize 0.5*x'*Q*x + p'*x with + // f=[1; 2; 3; 4; 5; 6]; H=eye(6,6); + // [xopt,fopt,exitflag,output,lambda]=qpipoptmat(H,f,A,b,Aeq,beq,lb,ub,[],param) + // Authors + // Keyur Joshi, Saikiran, Iswarya, Harpreet Singh //To check the number of input and output argument |