EigenOpt 1.0.0
Loading...
Searching...
No Matches
EigenOpt Namespace Reference

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.
 

Detailed Description

Main namespace of this project, containing all utilities.

Function Documentation

◆ qr_projection()

template<class Scalar , class D1 , class D2 >
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} \).

Parameters
[in]AMatrix of coefficients of the left-hand-side of the linear system.
[in]bVector of coefficients of the right-hand-side of the linear system.
[out]ZProjection 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]xeqMinimum-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.

◆ svd_projection()

template<class Scalar , class D1 , class D2 >
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} \).

Parameters
[in]AMatrix of coefficients of the left-hand-side of the linear system.
[in]bVector of coefficients of the right-hand-side of the linear system.
[out]ZProjection 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]xeqMinimum-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.