|
EigenOpt 1.0.0
|
Main namespace of this project, containing all utilities. More...
Namespaces | |
| namespace | quadratic_programming |
| Contains the solver used for linearly constrained quadratic optimization problems. | |
| namespace | simplex |
| Contains functions to solve linear programming problems with the Simplex method. | |
Functions | |
| template<class Scalar , class D1 , class D2 > | |
| void | svd_projection (const Eigen::MatrixBase< D1 > &A, const Eigen::MatrixBase< D2 > &b, Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > &Z, Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > &xeq) |
| Return all solutions to a linear system, using a kernel-based parameterization. | |
| template<class Scalar , class D1 , class D2 > | |
| void | qr_projection (const Eigen::MatrixBase< D1 > &A, const Eigen::MatrixBase< D2 > &b, Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > &Z, Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > &xeq) |
| Return all solutions to a linear system, using a kernel-based parameterization. | |
Main namespace of this project, containing all utilities.
| void EigenOpt::qr_projection | ( | const Eigen::MatrixBase< D1 > & | A, |
| const Eigen::MatrixBase< D2 > & | b, | ||
| Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > & | Z, | ||
| Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > & | xeq | ||
| ) |
Return all solutions to a linear system, using a kernel-based parameterization.
Given a system \(\bm{A}\bm{x}=\bm{b}\), this function tries to solve it by parameterizing \( \bm{x} \) as \( \bm{x} = \bm{x}_{eq} + \bm{Z}\bm{y} \) where \( \bm{x}_{eq} \) is the minimum-norm solution to the system in the least squares sense, and \( \bm{Z} \) is a basis of the kernel of \( \bm{A} \), i.e., such that \( \bm{A}\bm{Z}=\bm{0} \). The function uses QR factorization to compute both \( \bm{x}_{eq} \) and the kernel of \( \bm{A} \).
| [in] | A | Matrix of coefficients of the left-hand-side of the linear system. |
| [in] | b | Vector of coefficients of the right-hand-side of the linear system. |
| [out] | Z | Projection matrix into the kernel of \( \bm{A} \), such that \( \bm{A}\bm{Z}=\bm{0} \). Note that if the solution to the system is unique, this matrix will have zero columns. |
| [out] | xeq | Minimum-norm solution to the system \(\bm{A}\bm{x}=\bm{b}\). Note that this is a solution in the least-squares sense. To check if the solution is exact, use, e.g., (A*xeq-b).isZero(tolerance). |
Definition at line 38 of file kernel_projection.hxx.
| void EigenOpt::svd_projection | ( | const Eigen::MatrixBase< D1 > & | A, |
| const Eigen::MatrixBase< D2 > & | b, | ||
| Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > & | Z, | ||
| Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > & | xeq | ||
| ) |
Return all solutions to a linear system, using a kernel-based parameterization.
Given a system \(\bm{A}\bm{x}=\bm{b}\), this function tries to solve it by parameterizing \( \bm{x} \) as \( \bm{x} = \bm{x}_{eq} + \bm{Z}\bm{y} \) where \( \bm{x}_{eq} \) is the minimum-norm solution to the system in the least squares sense, and \( \bm{Z} \) is a basis of the kernel of \( \bm{A} \), i.e., such that \( \bm{A}\bm{Z}=\bm{0} \). The function uses a Singular Value Decomposition to compute both \( \bm{x}_{eq} \) and the kernel of \( \bm{A} \).
| [in] | A | Matrix of coefficients of the left-hand-side of the linear system. |
| [in] | b | Vector of coefficients of the right-hand-side of the linear system. |
| [out] | Z | Projection matrix into the kernel of \( \bm{A} \), such that \( \bm{A}\bm{Z}=\bm{0} \). Note that if the solution to the system is unique, this matrix will have zero columns. |
| [out] | xeq | Minimum-norm solution to the system \(\bm{A}\bm{x}=\bm{b}\). Note that this is a solution in the least-squares sense. To check if the solution is exact, use, e.g., (A*xeq-b).isZero(tolerance). |
Definition at line 8 of file kernel_projection.hxx.