crout#
Purpose#
Computes the Crout decomposition of a square matrix without row pivoting, such that: \(X = LU\).
Format#
- y = crout(x)#
- Parameters:
x (NxN matrix) – square nonsingular matrix.
- Returns:
y (NxN matrix) – containing the lower (\(L\)) and upper (\(U\)) matrices of the Crout decomposition of x. The main diagonal of y is the main diagonal of the lower matrix L. The upper matrix has an implicit main diagonal of ones. Use
lowmat()andupmat1()to extract the \(L\) and \(U\) matrices from y.
Examples#
X = { 1 2 -1,
2 3 -2,
1 -2 1 };
// Perform crout decomposition
y = crout(x);
// Extract lower triangle of 'y' and assign it to 'L'
L = lowmat(y);
/*
** Extract upper triangle of 'y', fill the diagonal with
** ones and assign it to 'L'
*/
U = upmat1(y);
After the code above:
1.0 2.0 -1.0 1.0 0.0 0.0 1.0 2.0 -1.0
y = 2.0 -1.0 0.0 L = 2.0 -1.0 0.0 U = 0.0 1.0 0.0
1.0 -4.0 2.0 1.0 -4.0 2.0 0.0 0.0 1.0
Remarks#
Since it does not do row pivoting, it is intended primarily for teaching
purposes. See croutp() for a decomposition with pivoting.