Skip to content
Numerical Method , home
Menu

Forum Numerical Method Linear Algebra

LU decomposition

  1. kevinsunParticipant 2010-05-24 at 3:15 am

    How to use this class? Need examples please.

  2. Haksun LiModerator 2010-05-25 at 4:04 pm

    <br />
            Matrix A1 = new Matrix(new double[][]{<br />
                        {5, 2, 3, 4},<br />
                        {5, 6, 7, 4},<br />
                        {1, 3, 2, 3},<br />
                        {1, 7, 6, 2}<br />
                    });<br />
            LU instance = new LU(A1);<br />
            LowerTriangularMatrix L = instance.L();<br />
            UpperTriangularMatrix U = instance.U();<br />
            PermutationMatrix P = instance.P();<br />
    <br />
            Matrix A2 = P.times(A1);<br />
            Matrix A3 = L.times(U);<br />
    <br />
            assertEquals(A2, A3);<br />
            assertEquals(24, Measure.det(A1), 1e-13);<br />
    
  3. kevinsunParticipant 2010-05-29 at 5:55 am

    I can’t do Inverse(L) for a LowerTriangularMatrix L. Please help.

    Is there a linear system solver in the library to solve Lx=b if L is LowerTriangularMatrix? Same for UpperTriangularMatrix?

  4. Haksun LiModerator 2010-05-31 at 1:26 pm

    For a [tt:207ejgzd]LowerTriangularMatrix[/tt:207ejgzd], you can do

    <br />
            LowerTriangularMatrix L = new LowerTriangularMatrix(new double[][]{<br />
                        {3},<br />
                        {7, 4}<br />
                    });<br />
    <br />
            Matrix Linv = new Inverse(L, 1e-15);//or a suitable epsilon<br />
    

    For an [tt:207ejgzd]UpperTriangularMatrix[/tt:207ejgzd], you can do

    <br />
            UpperTriangularMatrix U = new UpperTriangularMatrix(new double[][]{<br />
                        {7, 4},<br />
                        {3}<br />
                    });<br />
    <br />
            Matrix Ainv = new Inverse(U, 1e-15);//or a suitable epsilon<br />