Maven项目
注解:已经下载了math3依赖包
1.创建 Maven 项目,math3 是 Apache 下的一款进行数学计算的一款 java 开源工具。jar 包名称为:commons-math3-3.6.1.jar。利用该包进行线性代数运算。给出矩阵 arrayA={{1.0},{2.0},{3.0},{4.0}},矩阵 arrayB={{2.0},{5.0},{7.0},{9.0}},求它们的差、和,以及乘积。
import java.util.Arrays;
import org.apache.commons.math3.linear.*;
public class MatrixTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
double[][] arrayA = {{1.0},{2.0},{3.0},{4.0}};
double[][] arrayB = {{2.0},{5.0},{7.0},{9.0}};
subtract(arrayA,arrayB);//两个矩阵之差
add(arrayA,arrayB); //两个矩阵之和
sumproduct(arrayA,arrayB);//两个矩阵相乘求和
}
//减法
public static void subtract(double[][] arrayA,double[][] arrayB) {
//分别将两个二维数组转换为Array2DRowRealMatrix
Array2DRowRealMatrix realMatrixA = new Array2DRowRealMatrix(arrayA);
Array2DRowRealMatrix realMatrixB = new Array2DRowRealMatrix(arrayB);
//两个数组间进行相减
Array2DRowRealMatrix subtract = realMatrixA.subtract(realMatrixB);
System.out.println("相减后的矩阵数据:"+subtract);
//获取矩阵的列数 getColumnDimension()
int columnDimension = subtract.getColumnDimension();
System.out.println("矩阵的列数为:"+columnDimension);
//获取矩阵的行数
int rowDimension = subtract.getRowDimension();
System.out.println("矩阵的行数为:"+rowDimension);
//矩阵转化为数组 getData
double[][] data = subtract.getData();
System.out.println(Arrays.deepToString(data));
}
//加法
private static void add(double[][] arrayA, double[][] arrayB) {
//分别将两个二维数组转换为Array2DRowRealMatrix
Array2DRowRealMatrix realMatrixA = new Array2DRowRealMatrix(arrayA);
Array2DRowRealMatrix realMatrixB = new Array2DRowRealMatrix(arrayB);
//两个数组间进行相加
Array2DRowRealMatrix add=realMatrixB.add(realMatrixA);
System.out.println("相加后的矩阵数据:"+add);
}
//乘法
private static void sumproduct(double[][] arrayA, double[][] arrayB) {
//分别将两个二维数组转换为Array2DRowRealMatrix
Array2DRowRealMatrix realMatrixA = new Array2DRowRealMatrix(arrayA);
Array2DRowRealMatrix realMatrixB = new Array2DRowRealMatrix(arrayB);
//将数组B行转列
RealMatrix transpose=realMatrixB.transpose();
System.out.println("行转列:"+transpose);
//两个数组间进行相乘
RealMatrix multiply =transpose.multiply(realMatrixA);
System.out.println("相乘后的矩阵数据:"+multiply);
}
}