Added Algorithm 10
This commit is contained in:
parent
19cba61d44
commit
8a90e7eecd
24
Direct Methods for Solving Linear Systems/Alg10.m
Normal file
24
Direct Methods for Solving Linear Systems/Alg10.m
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
function A = Alg10(A)
|
||||||
|
% Algorithm 10: Cholesky (Banachiewicz) factorization.
|
||||||
|
% Matrix A has to be symmetric and positive-definite:
|
||||||
|
% all d(i, i) > 0 for A = LDL^T.
|
||||||
|
% We are using Outer product Version (Golub, Load, Alg. 4.2.2).
|
||||||
|
|
||||||
|
[m, n] = size(A);
|
||||||
|
|
||||||
|
if m ~= n
|
||||||
|
error('Matrix is not square!')
|
||||||
|
end
|
||||||
|
|
||||||
|
for k = 1:m
|
||||||
|
A(k,k) = sqrt(A(k,k));
|
||||||
|
A(k+1:n, k) = A(k+1:n, k)/A(k,k);
|
||||||
|
for j = k+1:n
|
||||||
|
A(j:n, j) = A(j:n, j) - A(j:n, k)*A(j, k);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
A = tril(A);
|
||||||
|
|
||||||
|
end
|
||||||
|
|
@ -3,7 +3,7 @@ function b = Alg3_forward_substitution(L, b)
|
|||||||
|
|
||||||
[m, n] = size(L);
|
[m, n] = size(L);
|
||||||
if m ~= n
|
if m ~= n
|
||||||
error('Matrix is not squared!')
|
error('Matrix is not squar!')
|
||||||
end
|
end
|
||||||
|
|
||||||
if length(b) ~= m
|
if length(b) ~= m
|
||||||
|
Loading…
Reference in New Issue
Block a user