summaryrefslogtreecommitdiff
path: root/macros/qpipoptmat.sci
diff options
context:
space:
mode:
Diffstat (limited to 'macros/qpipoptmat.sci')
-rw-r--r--macros/qpipoptmat.sci160
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