I guess an elementary matrix == a permutation matrix?
Kyle Wayne Kelly
Computer Science Student
University of New Orleans
http://www.cs.uno.edu/~kkelly
----- Original Message -----
From: "Dave Thal" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, January 22, 2001 7:49 PM
Subject: [JAVA3D] Permutation Vector Interpretation
> Does anyone know how to interpret the permutation vector in GMatrix.LUD()?
> I have passed it blindly into GVector.LUDBackSolve() and it appears to
work
> fine, but I would like to know how to form the permutation matrix P from
the
> permutation vector generated by GMatrix.LUD().
>
> For example, how does the permutation vector {1.0 1.0 2.0 } imply the
> following permutation matrix?
> 0 1 0
> 1 0 0
> 0 0 1
> (see full example below)
>
> Thanks much.
> Sincerely,
> Dave
>
> =======================================
>
> Here is an example...(I don't know how to interpret the { 1, 1, 2 }
> permutation vector. My understanding of a permutation matrix is that it
is
> an identity matrix with interchanged rows. I understand that the
> permutation vector encodes this row interchange, but I can't figure out
how.
>
> original matrix (A):
> 0.0 -2.0 2.0
> 1.0 2.0 -1.0
> 3.0 5.0 -8.0
> count=-1
>
> LUD matrix as output from GMatrix.LUD():
> 1.0 2.0 -1.0
> 0.0 -2.0 2.0
> 3.0 0.5 -6.0
>
> LUD matrix (L | U):
> 1 0 0 | 1.0 2.0 -1.0
> 0.0 1 0 | 0 -2.0 2.0
> 3.0 0.5 1 | 0 0 -6.0
>
> Permutation vector:
> 1.0 1.0 2.0
>
> Since I know that PA = LU and LU =
> 1.0 2.0 -1.0
> 0.0 -2.0 2.0
> 3.0 5.0 -8.0
> I can infer that P =
> 0 1 0
> 1 0 0
> 0 0 1
> (which is correct, since this is the permutation matrix that permutes A
into
> LU).
>
> But, how the heck does a permutation vector { 1, 1, 2 } imply the
> aforementioned permutation matrix?
>
> FYI, this is the same matrix used at
> http://www.cs.ut.ee/~toomas_l/linalg/lin2/node4.html#permutationmatrix for
> those who want to see the math behind this example.
>
> =======================================
>
> The code below was used to generate the previous output.
>
> void jMenuItemGMatrixTest_actionPerformed(ActionEvent e)
> {
> final int SIZE = 3;
> GMatrix matrix = new GMatrix(SIZE, SIZE);
> matrix.setElement(0, 0, 0); // see Note2 above
> matrix.setElement(0, 1, -2);
> matrix.setElement(0, 2, 2);
> matrix.setElement(1, 0, 1);
> matrix.setElement(1, 1, 2);
> matrix.setElement(1, 2, -1);
> matrix.setElement(2, 0, 3);
> matrix.setElement(2, 1, 5);
> matrix.setElement(2, 2, -8);
>
> System.out.println("original matrix:");
> trace(matrix);
>
> GMatrix LUD = new GMatrix(SIZE,SIZE);
> GVector permutation = new GVector(SIZE); // see Note1 above
> int count = matrix.LUD(LUD, permutation);
> System.out.println("count=" + count);
>
> System.out.println("LUD matrix:");
> trace(LUD);
>
> System.out.println("LUD matrix:");
> traceLUD(LUD);
>
> System.out.println("Permutation vector:");
> J3DOps.trace(permutation);
> } // end jMenuItemGMatrixTest_actionPerformed()
>
> =======================================
>
> The following description explains what a permutation matrix is (source:
> http://www.cs.rochester.edu/u/www/u/pawlicki/PROJECT2.htm).
>
> Permutation Matrix
>
> A permutation matrix is a square matrix with exactly one 1 in each row and
> column and zeros elsewhere (i.e. and identity matrix with its rows and
> columns permuted). Multiplying a permutation matrix P, by any matrix A
will
> yield the same A matrix, with rows swapped.
>
> Consider multiplying matrixP x matrixA if defined as follows:
>
> double matrixA[][] = {{1,2,3,4},{4,5,6,7},{7,8,9,10}};
>
> double matrixP[][] = {{1,0,0},{0,0,1},{0,1,0}};
>
> It can be shown that the resultant matrix C will be
> {{1,2,3,4},{7,8,9,10},{4,5,6,7}};
>
>
===========================================================================
> To unsubscribe, send email to [EMAIL PROTECTED] and include in the
body
> of the message "signoff JAVA3D-INTEREST". For general help, send email to
> [EMAIL PROTECTED] and include in the body of the message "help".
>
===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST". For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".