EliminateConstraints (Scripts) Publisher's description
from Andrew Jackson
function [C,d]=eliminateConstraints(A,b) eliminates variables from a problem with linear equality constraints to give an unconstrained problem. This is useful e.g
function [C,d]=eliminateConstraints(A,b) eliminates variables from a problem with linear equality constraints to give an unconstrained problem. This is useful e.g. when solving a problem with linear constraints and a nonlinear objective or further nonlinear constraints; eliminating the linear constraints makes the problem easier.
Where the original constrained problem has:
- variable vector x (length n).
- linear constraint A*x=b, where the matrix A and vector b are
And the final unconstrained problem has:
- variable vector y (length p).
- an x satisfying the original constraint can be generated by x=C*y+d, where the matrix C and vector d are returned by eliminateConstraints.
- A (an m*n matrix of real numbers)
- b (a m*1 vector of real numbers)
- C (an n*p matrix of real numbers)
- d (a n*1 vector of real numbers)
Hopefully, p<n, so the unconstrained problem is smaller than the constrained problem.
The functionality provided by eliminateConstraints is trivial for small matricies. For larger matrices, it can be done using MATLAB's various matrix decompositions. However, as far as the author is aware, there is no trivial MATLAB solution for the case where A is very large and sparse, so we require a C which is also sparse without using any very large full matrices.
The case for which this was developed automatically creates a well-defined problem, so only minimal validation and error checking has been implemented at this stage.
System Requirements:MATLAB 7.6 (R2008a)
Program Release Status: New Release
Program Install Support: Install and Uninstall