Splitting a Matrix with Choleski Method: A Simple Example

Click For Summary
SUMMARY

The discussion focuses on the Cholesky method for matrix decomposition, specifically for solving the equation Ax = b using a symmetric, positive definite matrix A. The example matrix provided is A = [[2, 1, 0, 0], [1, 2, 1, 0], [0, 1, 2, 1], [0, 0, 1, 2]] and vector b = [1, 0, 0, 1]. The Cholesky factorization is expressed as P = LL^T, where L is a lower triangular matrix. The procedure involves verifying that A is positive definite, calculating the lower triangular matrix L, and then using forward and backward substitution to solve for x.

PREREQUISITES
  • Understanding of matrix properties, specifically symmetric and positive definite matrices.
  • Familiarity with Cholesky factorization and its mathematical formulation.
  • Knowledge of forward and backward substitution methods for solving linear equations.
  • Basic linear algebra concepts, including matrix multiplication and transposition.
NEXT STEPS
  • Study the mathematical derivation of Cholesky factorization in detail.
  • Learn about the properties of positive definite matrices and how to verify them.
  • Explore numerical methods for solving systems of linear equations beyond Cholesky, such as LU decomposition.
  • Practice implementing Cholesky decomposition in programming languages like Python using libraries such as NumPy or SciPy.
USEFUL FOR

Students and professionals in numerical analysis, data science, and engineering who require efficient methods for solving systems of linear equations, particularly those involving symmetric, positive definite matrices.

niko2000
Messages
50
Reaction score
0
Hi,
Could anybody describe a procedure for splitting a matrix using a choleski method?
Could anyone show this on a simple example:
Let's say we have a matrix A:
[2 1 0 0]
[1 2 1 0]
[0 1 2 1]
[0 0 1 2]
and matrix b:
[1]
[0]
[0]
[1]
How to get x:
Ax = b
using abovementioned method?
 
Physics news on Phys.org
ha...I just learned choleski factorisation last semester in the numerical analysis course!

To apply choleski factorisation, the matrix ought to be positive definite. This is true for the matrix you wrote. To explain the procedure one needs to know how to "partition" a matrix. I hope that you know it already.

Cholesky factorisation says that for a positive definite matrix P, it is possible to factorise it in the form,

[tex]P = LL^{T}[/tex]

where L is lower triangular and "[tex]...^{T}[/tex] denotes transpose. To develop a recursive procedure for the factorisation, we partition the matrix in the form,

[tex]P = \left(\begin{array}{cc}a & b^{T}\\b & C\end{array}\right)[/tex]
[tex]L = \left(\begin{array}{cc} d &0\\e & F\end{array}\right)[/tex]

where a, d are scalars, b, e are column vectors. Then,

[tex]P = \left(\begin{array}{cc}a & b^{T}\\b & C\end{array}\right) = LL^{T} = \left(\begin{array}{cc}d^{2} & de^{T}\\de & ee^{T}+FF^{T}\end{array}\right)[/tex]

So d=sqrt(a), e=b/d, and F*F^T = C*C^T - e*e^T. Remember that what we want is d, e and F. Now we get d and e. To get F, just notice that F*F^T is positive definite and so we may apply the previous step again until we get all entries of F.

To illustrate, use your example [tex]\left(\begin{array}{cccc}2&1&0&0\\1&2&1&0\\0&1&2&1\\0&0&1&2\end{array}\right)[/tex]. Then a = 2, b^T=[1 0 0], [tex]C = \left(\begin{array}{ccc}2&1&0\\1&2&1\\0&1&2\end{array}\right)[/tex]. Thus d = sqrt(2), e^T = 1/sqrt(2)*[1 0 0] and similarly find F*F^T. Now treat F*F^T as the positive definite matrix and continue the previous steps until you get the factorisation.

To solve A*x=b, notice that once we get the factorisation A=L*L^T, the system becomes L*L^T*x=b, where L is lower triangular. We first solve L*y=b for y by "forward substitution" and then solve L^T*x=y by "backward substitution".

To illustrate, suppose we have the following system,

2x = 4
x + y = 6
x + y +z = 10

Then one may first solve the first equation to get x=2 and then substitute it into the second equation to get y=4. Finally put x=2, y=4 into the third equation to get z=4.

Hope that helps
 


Sure, I would be happy to explain the procedure for splitting a matrix using the Choleski method and provide a simple example. The Choleski method is a numerical algorithm used to decompose a symmetric, positive definite matrix into a lower triangular matrix and its transpose. This decomposition is useful for solving systems of linear equations, such as the one shown in your example, where we have a matrix A and vector b and we want to find the vector x that satisfies the equation Ax = b.

To begin, we first need to check that our matrix A is symmetric and positive definite. In your example, A is symmetric, so we just need to check if it is positive definite. This means that all of the eigenvalues of A must be positive. In your case, we can easily see that the eigenvalues are 3, 3, 3, and 3, so A is indeed positive definite.

Once we have verified that A is positive definite, we can start the Choleski decomposition. The first step is to find the lower triangular matrix L such that A = LL^T. This can be done by using the following formula:

L = [√a11 0 0 0]
[ a21/√a11 √(a22 - a21^2/a11) 0 0]
[ a31/√a11 (a32 - a31a21/a11)/√(a22 - a21^2/a11) √(a33 - a31^2/a11) 0]
[ a41/√a11 (a42 - a41a21/a11)/√(a22 - a21^2/a11) (a43 - a41a31/a11 - a42a32/a22)/√(a33 - a31^2/a11) √(a44 - a41^2/a11 - a42^2/a22 - a43^2/a33)]

In this formula, aij represents the element in the ith row and jth column of A. Using this formula, we can calculate L for our example matrix A:

L = [√2 0 0 0]
[ 1/√2 √(3/2) 0 0]
[ 0 1/√3 √(2/3) 0]
[ 0
 

Similar threads

  • · Replies 14 ·
Replies
14
Views
5K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 33 ·
2
Replies
33
Views
4K
  • · Replies 8 ·
Replies
8
Views
3K
  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 34 ·
2
Replies
34
Views
3K
  • · Replies 4 ·
Replies
4
Views
4K
  • · Replies 15 ·
Replies
15
Views
2K
  • · Replies 13 ·
Replies
13
Views
4K
  • · Replies 1 ·
Replies
1
Views
3K