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.