`
鬼大来晚了
  • 浏览: 67860 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

java 求矩阵乘法及行列式的值

    博客分类:
  • Java
 
阅读更多
最近用到矩阵的数学计算,写了两个简单的程序,贴在这里:

1、矩阵的乘法:

/**
	 * 矩阵乘法
	 * @param a
	 * @param b
	 * @return
	 */
     public static double[][] mulMatrix(double[][] a,double[][] b){
    	 double[][] c=new double[a.length][b[0].length];
    	 //相乘的两个行列式需要满足,第一个行列式的列于第二个行列式的行相等
    	 if(a[0].length!=b.length){
    		 System.out.println("Wrong parameters.");
    		 return c;
    	 }
    	 //若A为mXn矩阵,B为nXp矩阵,返回一个mXp的矩阵
    	 for (int i = 0; i < c.length; i++) {
			for (int j = 0; j < c[0].length; j++) {
               for (int j2 = 0; j2 < a[0].length; j2++) {
				c[i][j]=c[i][j]+a[i][j2]*b[j2][j];
			}
			}
		}
    	 return c;
     }



2、递归方式求行列式的值

/**
	 * 计算行列式的值
	 * @param a
	 * @return
	 */
    static double determinant(double[][] a){
        double result2 = 0;
        if(a.length>2){
       	 //每次选择第一行展开
            for(int i=0;i<a[0].length;i++){
           	    //系数符号
                double f=Math.pow(-1,i);
                //求余子式
                double[][] yuzs=new double[a.length-1][a[0].length-1];
                for (int j = 0; j < yuzs.length; j++) {
					for (int j2 = 0; j2 < yuzs[0].length; j2++) {
						//去掉第一行,第i列之后的行列式即为余子式
						if(j2<i){
							yuzs[j][j2]=a[j+1][j2];
						}else {
							yuzs[j][j2]=a[j+1][j2+1];
						}
						
					}
				} 
                //行列式的拉普拉斯展开式,递归计算
                result2+=a[0][i]*determinant(yuzs)*f;
            }
        }
        else{
        	//两行两列的行列式使用公式
            if(a.length==2){
                result2=a[0][0]*a[1][1]-a[0][1]*a[1][0];
            }
            //单行行列式的值即为本身
            else{
                result2=a[0][0];
            }
        }
        return result2;
    }
	

分享到:
评论

相关推荐

    java 矩阵转置、求逆等的实现

    在Java编程中,矩阵操作是线性代数中常见的任务,包括矩阵的转置、求逆和矩阵乘法。这些操作在科学计算、图像处理、机器学习等领域有着广泛的应用。以下将详细介绍这些概念以及如何在Java中实现它们。 首先,矩阵...

    Java复数矩阵库——JamPack

    此外,还提供了矩阵的转置、行列式计算、迹(对角元素之和)计算等功能。 3. **矩阵运算**:JamPack支持矩阵的加、减、乘、点乘(逐元素乘法)等基本运算,以及与标量的乘法。特别地,矩阵乘法遵循线性代数中的规则...

    java实现矩阵的基本运算。

    6. **矩阵的求逆**:对于2阶及以上的方阵,如果其行列式不为零,那么它有逆矩阵。求逆可以使用伴随矩阵、高斯-约旦消元法或者矩阵分块等方法。逆矩阵A^-1满足AA^-1 = A^-1A = I,其中I是单位矩阵。 7. **矩阵的转秩...

    java实现的矩阵转换算法—适合java入门

    对于可逆矩阵(行列式不为0),逆矩阵A^-1满足AA^-1 = A^-1A = I(单位矩阵)。Java实现时,可以使用库如Apache Commons Math,它提供了计算逆矩阵的功能。 5. **示例代码结构**: 一个简单的Java项目可能包含以下...

    java版本矩阵类

    这个Java矩阵类提供的功能表明,它可以用于各种数学计算任务,例如求解线性系统Ax=b,计算矩阵的迹、行列式、逆矩阵,甚至进行谱分析等。对于开发者来说,这样的库能够大大简化复杂的数学运算,并提供数值稳定的方法...

    NETBEANS编写各种矩阵类代码

    此类通常包含初始化矩阵、添加元素、删除元素、获取元素、设置元素、矩阵乘法、转置矩阵以及求矩阵的行列式等方法。 其次,`TriangleMatrix.java`文件表示三角矩阵类。三角矩阵分为上三角矩阵和下三角矩阵,其中非...

    乘法矩阵与动态规划应用

    #### 一、矩阵乘法定义及性质 矩阵乘法是线性代数中的一个基本概念,在多种数学领域、计算机科学以及工程学中都有广泛应用。下面首先来介绍矩阵乘法的基本定义及其性质。 **矩阵乘法定义:** 设两个矩阵 \(A\) 和...

    基于JAVA的矩阵运算JAR包

    矩阵运算在数学上是线性代数的核心,它涉及加法、减法、乘法、转置、求逆、求行列式、特征值、特征向量等多种操作。在计算机科学中,这些运算常用于图像处理、机器学习、信号处理等领域。Java库如Apache Commons ...

    Java ejml矩阵包

    同时,Ejml还支持多种矩阵运算,如矩阵加法、减法、乘法、转置、求逆、求行列式、求特征值与特征向量等基本操作,以及更复杂的线性代数运算。 在性能方面,Ejml通过优化算法和内部数据结构,实现了高效的矩阵运算。...

    (Java语言实现的矩阵的基本运算)矩阵的加法乘法.rar

    除了基本的矩阵运算,还可以扩展到其他高级功能,如矩阵转置、求逆、求行列式、特征值等。矩阵的这些特性在解决各种问题时都非常有用,例如在机器学习中的权重更新、图像处理中的滤波操作以及物理学中的运动方程求解...

    Jama.zip_jama java_矩阵

    2. **矩阵操作**:提供了矩阵的基本运算,如加法、减法、乘法(包括矩阵乘法和点乘)、转置、求逆、求行列式等。这些操作对于进行线性代数计算至关重要。 3. **线性系统求解**:JAMA支持求解线性方程组,如高斯消元...

    数据结构 用Java语言实现矩阵 可视代码

    以上代码实现了基本的矩阵操作,但实际应用中可能需要更多高级功能,如转置、求逆、求行列式等。在设计类时,可以考虑使用面向对象的原则,将矩阵封装为一个类,包含必要的属性(如行数、列数和元素)以及相关的操作...

    矩阵运算Matrix,java实现

    5. **矩阵求逆**:逆矩阵是矩阵的一种特殊形式,对于非奇异矩阵(行列式不为零的矩阵),可以通过高斯-约旦消元法或者LU分解来求解。 6. **求特征值和特征向量**:这是线性代数中的重要概念,可以通过特征方程求解,...

    nc.jar.zip_java 矩阵_java 计算_大数_大数计算 java_矩阵

    矩阵运算包括但不限于矩阵加法、减法、乘法、转置、求逆、求行列式、特征值和特征向量等。这些操作在工程计算、图像处理、机器学习等领域都有广泛应用。 大数计算在处理超过Java基本数据类型(如long)能表示的数字...

    java实现的n*n矩阵求值及求逆矩阵算法示例

    Java 实现的 n*n 矩阵求值及求逆矩阵算法示例 本文主要介绍了 Java 实现的 n*n 矩阵求值及求逆矩阵算法,结合具体实例形式分析了 Java 基于数组的矩阵定义、遍历、运算等相关操作技巧。 矩阵定义 在 Java 中,...

    java矩阵计算工具包ujmp 0.2.5

    2. **矩阵操作**:提供基本的矩阵运算,如加法、减法、乘法、除法,以及更复杂的矩阵运算,如转置、求逆、行列式计算、特征值和特征向量计算等。 3. **线性代数函数**:包括求解线性方程组、奇异值分解(SVD)、特征...

    java实现矩阵.pdf

    对于更复杂的矩阵运算,如乘法、求逆、求行列式等,可以扩展这个类以添加更多的方法。同时,为了提高代码的可读性和可维护性,可以考虑将一些功能提取为私有辅助方法,或者使用更先进的设计模式。此外,为了适应大...

    java矩阵计算工具包Jama-1.0.3

    同时,Jama还提供了转置、矩阵的逆运算以及行列式的计算。 3. **线性方程组求解**:通过高斯消元法,Jama可以解决线性方程组Ax=b的问题,其中A是系数矩阵,x是变量向量,b是常数向量。 4. **特征值与特征向量计算*...

    java 矩阵学习包 jama-1.0.3.jar

    2. **矩阵操作**:提供基本的矩阵运算,如矩阵加法、减法、乘法、转置、求逆、矩阵乘积(包括点乘和普通乘法)、求行列式、求特征值和特征向量、求矩阵指数等。 3. **向量操作**:支持向量的创建、加法、减法、标量...

    矩阵运算库

    7. **行列式**:仅适用于方阵,行列式值可以反映矩阵的一些特性,如是否可逆、其逆的行列式值等。 8. **奇异值分解(SVD)**:任何矩阵都可以表示为一个方阵U、对角矩阵Σ和方阵V的乘积,即A=USV^T,S是对角线上非负...

Global site tag (gtag.js) - Google Analytics