For linear equation systems, the equations
MatrixLHSMatrixLHSMatrixLHSMatrixLHSmatrixLHS * MatrixResultMatrixResultMatrixResultMatrixResultmatrixResult = MatrixRHSMatrixRHSMatrixRHSMatrixRHSmatrixRHS
are solved. Therefore, the matrix MatrixLHSMatrixLHSMatrixLHSMatrixLHSmatrixLHS must be a
square matrix and the parameter EpsilonEpsilonEpsilonEpsilonepsilon must be 0. The
type of the matrix MatrixLHSMatrixLHSMatrixLHSMatrixLHSmatrixLHS can be selected via the
parameter MatrixLHSTypeMatrixLHSTypeMatrixLHSTypeMatrixLHSTypematrixLHSType. The following values are
supported: 'general'"general""general""general""general" for general, 'symmetric'"symmetric""symmetric""symmetric""symmetric" for
symmetric, 'positive_definite'"positive_definite""positive_definite""positive_definite""positive_definite" for symmetric positive
definite, 'tridiagonal'"tridiagonal""tridiagonal""tridiagonal""tridiagonal" for tridiagonal,
'upper_triangular'"upper_triangular""upper_triangular""upper_triangular""upper_triangular" for upper triangular,
'permuted_upper_triangular'"permuted_upper_triangular""permuted_upper_triangular""permuted_upper_triangular""permuted_upper_triangular" for permuted upper triangular,
'lower_triangular'"lower_triangular""lower_triangular""lower_triangular""lower_triangular" for lower triangular, and
'permuted_lower_triangular'"permuted_lower_triangular""permuted_lower_triangular""permuted_lower_triangular""permuted_lower_triangular" for permuted lower triangular
matrices.
Example:
For linear least squares problems or if EpsilonEpsilonEpsilonEpsilonepsilon is not 0,
the matrix MatrixLHSMatrixLHSMatrixLHSMatrixLHSmatrixLHS need not be a square matrix. The
linear least squares problem is solved using the singular value
decomposition (SVD) of the matrix MatrixLHSMatrixLHSMatrixLHSMatrixLHSmatrixLHS by minimizing
||MatrixRHSMatrixRHSMatrixRHSMatrixRHSmatrixRHS - MatrixLHSMatrixLHSMatrixLHSMatrixLHSmatrixLHS * MatrixResultMatrixResultMatrixResultMatrixResultmatrixResult||.
All singular values less than the value Epsilon * the
largest singular value are set to 0. For these values no
internal division is done to prevent a division by zero.
Also, the matrix MatrixLHSMatrixLHSMatrixLHSMatrixLHSmatrixLHS may be rank-deficient. The
type of matrix must be selected via MatrixLHSTypeMatrixLHSTypeMatrixLHSTypeMatrixLHSTypematrixLHSType =
'general'"general""general""general""general".
Example:
Note: The relative accuracy of the floating point representation of
the used data type (double) is EpsilonEpsilonEpsilonEpsilonepsilon = 2.2204e-16.
Attention
For MatrixLHSTypeMatrixLHSTypeMatrixLHSTypeMatrixLHSTypematrixLHSType = 'symmetric'"symmetric""symmetric""symmetric""symmetric",
'positive_definite'"positive_definite""positive_definite""positive_definite""positive_definite", or 'upper_triangular'"upper_triangular""upper_triangular""upper_triangular""upper_triangular" the
upper triangular part of the input MatrixLHSMatrixLHSMatrixLHSMatrixLHSmatrixLHS must contain
the relevant information of the matrix. The strictly lower
triangular part of the matrix is not referenced. For
MatrixLHSTypeMatrixLHSTypeMatrixLHSTypeMatrixLHSTypematrixLHSType = 'lower_triangular'"lower_triangular""lower_triangular""lower_triangular""lower_triangular" the lower
triangular part of the input MatrixLHSMatrixLHSMatrixLHSMatrixLHSmatrixLHS must contain the
relevant information of the matrix. The strictly upper triangular
part of the matrix is not referenced. For MatrixLHSTypeMatrixLHSTypeMatrixLHSTypeMatrixLHSTypematrixLHSType =
'tridiagonal'"tridiagonal""tridiagonal""tridiagonal""tridiagonal", only the main diagonal, the superdiagonal,
and the subdiagonal of the input MatrixLHSMatrixLHSMatrixLHSMatrixLHSmatrixLHS are used. The
other parts of the matrix are not referenced. If the referenced
part of the input MatrixLHSMatrixLHSMatrixLHSMatrixLHSmatrixLHS is not of the specified type,
an exception is raised.
Execution Information
Multithreading type: reentrant (runs in parallel with non-exclusive operators).
Multithreading scope: global (may be called from any thread).
If the parameters are valid, the operator solve_matrixsolve_matrixSolveMatrixSolveMatrixSolveMatrix
returns the value 2 (H_MSG_TRUE). If necessary, an exception is raised.
David Poole: “Linear Algebra: A Modern Introduction”; Thomson;
Belmont; 2006.
Gene H. Golub, Charles F. van Loan: “Matrix Computations”; The
Johns Hopkins University Press; Baltimore and London; 1996.