Example: LU Decomposition of a Complex Matrix
The Complex class is used to convert a real matrix to a Complex matrix. An LU decomposition of the matrix is performed and the determinant and condition number of the matrix are obtained.
import com.imsl.math.*;
public class ComplexEx1 {
public static void main(String args[]) throws SingularMatrixException {
double ar[][] = {
{1, 3, 3},
{1, 3, 4},
{1, 4, 3}
};
double br[] = {12, 13, 14};
Complex a[][] = new Complex[3][3];
Complex b[] = new Complex[3];
for (int i = 0; i < 3; i++){
b[i] = new Complex(br[i]);
for (int j = 0; j < 3; j++) {
a[i][j] = new Complex(ar[i][j]);
}
}
// Compute the LU factorization of A
ComplexLU clu = new ComplexLU(a);
// Solve Ax = b
Complex x[] = clu.solve(b);
System.out.println("The solution is:");
System.out.println(" ");
new PrintMatrix("x").print(x);
// Find the condition number of A.
double condition = clu.condition(a);
System.out.println("The condition number = "+condition);
System.out.println();
// Find the determinant of A.
Complex determinant = clu.determinant();
System.out.println("The determinant = "+determinant);
}
}
Output
The solution is:
x
0
0 3
1 2
2 1
The condition number = 0.014886731391585757
The determinant = -0.9999999999999998
Link to Java source.