Maven项目之运用math3实现矩阵的加减乘

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);
	}
}
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值