3 Linear Algebra3.1 OverviewCurrently, numerical linear algebra support in commons-math is limited to basic operations on real matrices and solving linear systems. 3.2 Real matricesThe RealMatrix interface represents a matrix with real numbers as entries. The following basic matrix operations are supported:
Example: // Create a real matrix with two rows and three columns double[][] matrixData = { {1d,2d,3d}, {2d,5d,3d}}; RealMatrix m = new RealMatrixImpl(matrixData); // One more with three rows, two columns double[][] matrixData2 = { {1d,2d}, {2d,5d}, {1d, 7d}}; RealMatrix n = new RealMatixImpl(matrixData2); // Note: constructor makes a // Fresh copy of the input double[][] array // Now multiply m by n RealMatrix p = m.multiply(n); System.out.println(p.getRowDimension()); // 2 System.out.println(p.getRowDimension()); // 2 // Invert p RealMatrix pInverse = p.inverse(); 3.3 Solving linear systems
The 2x + 3y - 2z = 1 -x + 7y + 6x = -2 4x - 3y - 5z = 1Start by creating a RealMatrix to store the coefficients double[][] coefficientsData = {{2, 3, -2}, {-1, 7, 6}, {4, -3, -5}}; RealMatrix coefficients = new RealMatrixImpl(coefficientsData); double[] array to represent the constant
vector and use solve(double[]) to solve the system
double[] constants = {1, -2, 1}; double[] solution = coefficients.solve(constants); solution array will contain values for x
(solution[0] ), y (solution[1] ),
and z (solution[2] ) that solve the system.
If the coefficient matrix is not square or singular, an InvalidMatrixException is thrown.
It is possible to solve multiple systems with the same coefficient matrix
in one method call. To do this, create a matrix whose column vectors correspond
to the constant vectors for the systems to be solved and use
|