I’m trying to solve Ax = b in matrix.
r = [4; -1; zeros(n-2)]
and I’m using this function to generate matrix with n [10,100,200,300,400] and try to solve Ax = b (Cholesky factorization)
I found that probably I can use LDL factorization
for a in [10, 100,200,300,400]
A = toeplitz(a)
LDLT = ldl(A)
x = LDLT \b
and gave it `UndefVarError: ldl not defined
 top-level scope at .\In:3`
I’m not sure what I should change. Or maybe it’s not a good way to resolve this and there is another way ?
Are you looking for
search: ldlt ldlt! LDLt foldl mapfoldl
ldlt(S::SymTridiagonal) -> LDLt
Compute an LDLt factorization of the real symmetric tridiagonal matrix S such that S =
L*Diagonal(d)*L' where L is a unit lower triangular matrix and d is a vector. The main use of an
LDLt factorization F = ldlt(S) is to solve the linear system of equations Sx = b with F\b.
Since the matrix is symmetric tridiagonal, you should take advantage of that by constructing the
SymTridiagonal type, which has only O(n) storage and can be solved in O(n) time:
mymatrix(n) = SymTridiagonal(fill(4, n), fill(-1, n-1))
If you just do
mymatrix(n) \ b, it automatically uses the LDLᵀ factorization, which for a tridiagonal matrix takes O(n) time.