top of page
Search
cedarcantab

LU Decomposition

Updated: Mar 20



LU decomposition algorithm, which is a powerful technique for solving systems of linear equations and other numerical problems. Here’s how it works:

  1. What is LU Decomposition?

  • LU decomposition (or LU factorization) is a method to factorize a given square matrix A into two triangular matrices: an upper triangular matrix (U) and a lower triangular matrix (L).

  • The product of these two matrices, L and U, gives the original matrix A.

  1. Why Use LU Decomposition?

  • LU decomposition has several advantages over other methods like Gaussian elimination:

  • Efficiency: Once we compute the LU decomposition, we can solve multiple systems of equations with the same left-hand side (matrix A) using the same L and U matrices. This is especially useful when solving equations with different right-hand sides (vectors b).

  • Numerical Stability: LU decomposition with partial pivoting provides better numerical stability than Gaussian elimination.

  • Matrix Inversion: LU decomposition can be used to find the inverse of a matrix.

  1. The Algorithm:

  • Given a square matrix A, we want to find matrices L and U such that A = LU.

  • Start with the original matrix A.

  • Perform Gaussian elimination (row operations) to transform A into an upper triangular matrix U while keeping track of the row operations.

  • The lower triangular matrix L is constructed by storing the multipliers used during the elimination process.

  • The diagonal elements of L are set to 1.

  • The final result is A = LU.

4. Example: Let’s illustrate this with a simple 3x3 matrix:


A = | 2 1 3 |

| 4 3 7 |

| 6 4 8 |

  • Perform Gaussian elimination:

  1. Divide row 2 by 2: Row2 = Row2 - 2 * Row1

  2. Divide row 3 by 3: Row3 = Row3 - 3 * Row1

  3. Divide row 3 by 2: Row3 = Row3 - 2 * Row2

  • The resulting matrices are:

  • L: L = | 1 0 0 | | 2 1 0 | | 3 2 1 |

  • U: U = | 2 1 3 | | 0 1 1 | | 0 0 1 |


  1. Applications:

  • Solving systems of linear equations: Given Ax = b, we can solve for x using LU decomposition.

  • Matrix inversion: If A is invertible, we can find its inverse using LU decomposition.

In summary, LU decomposition provides a structured way to factorize a matrix, making it useful for solving linear systems and related problems. It’s a valuable tool in numerical analysis and scientific computing!


// LU decomposition using Crout's method
function luDecomposition(matrix) {
    const n = matrix.length;
    const L = new Array(n).fill(0).map(() => new Array(n).fill(0));
    const U = new Array(n).fill(0).map(() => new Array(n).fill(0));

    for (let i = 0; i < n; i++) {
        // Calculate U matrix
        for (let j = i; j < n; j++) {
            let sum = 0;
            for (let k = 0; k < i; k++) {
                sum += L[i][k] * U[k][j];
            }
            U[i][j] = matrix[i][j] - sum;
        }

        // Calculate L matrix
        for (let j = i; j < n; j++) {
            if (i === j) {
                L[i][j] = 1;
            } else {
                let sum = 0;
                for (let k = 0; k < i; k++) {
                    sum += L[j][k] * U[k][i];
                }
                L[j][i] = (matrix[j][i] - sum) / U[i][i];
            }
        }
    }

    return { L, U };
}


USeful References



6 views0 comments

Recent Posts

See All

p2 naive broadphase

var Broadphase = require('../collision/Broadphase'); module.exports = NaiveBroadphase; /** * Naive broadphase implementation. Does N^2...

sopiro motor constranit

import { Matrix2, Vector2 } from "./math.js"; import { RigidBody } from "./rigidbody.js"; import { Settings } from "./settings.js";...

Comments


記事: Blog2_Post
bottom of page