矩阵相关运算的java实现
来源:互联网 发布:数据库的英文单词 编辑:程序博客网 时间:2024/06/16 20:46
<pre name="code" class="java">/** * 矩阵的加、减、乘、乘方,其中两矩阵为同阶方阵 * @author * */public class Matrix {/* * 加法 */public static int[][] add(int[][] A, int[][] B){int[][] result = new int[A.length][A.length];for(int i = 0;i<A.length;i++){for(int j = 0;j<A[0].length;j++){result[i][j] = A[i][j]+B[i][j];}}return result;}/* * 减法 */public static int[][] sub(int[][] A, int[][] B){int[][] result = new int[A.length][A.length];for(int i = 0;i<A.length;i++){for(int j = 0;j<A[0].length;j++){result[i][j] = A[i][j]-B[i][j];}}return result;}/* * 乘法 */public static int[][] mutiply(int[][] A, int[][] B){int n = A.length;int[][] result = new int[n][n];for(int i = 0;i<n;i++){for(int j = 0;j<n;j++){int sum = 0;for(int k = 0;k<n;k++){sum+=(A[i][k]*B[k][j]);}result[i][j] = sum;}}return result;}/* * 返回n*n单位矩阵的函数 */public static int[][] identity(int n){int[][] A = new int[n][n];for(int i = 0;i<n;i++){for(int j = 0;j<n;j++){A[i][j] = 0;}}for(int i = 0;i<n;i++){A[i][i] = 1;}return A;}/* * 采用分治法求矩阵乘方 */public static int[][] pow(int[][] A, int x){if(x==0) return identity(A.length);if(x%2>0) return mutiply(pow(A, x-1), A);int[][] half = pow(A, x/2);return mutiply(half, half);}public static void main(String[] args) {// TODO Auto-generated method stubMatrix m = new Matrix();int[][] A = {{1,2,3},{1,2,3},{1,2,3}};int[][] B = {{1,2,3},{1,2,3},{1,2,3}};System.out.println("***********************");int[][] result = Matrix.mutiply(A, B);for (int i = 0; i < result.length; i++) {for (int j = 0; j < result[0].length; j++) {System.out.print(result[i][j]+" ");}System.out.println();}System.out.println("***********************");int[][] result0 = Matrix.add(A, B);for (int i = 0; i < result0.length; i++) {for (int j = 0; j < result0[0].length; j++) {System.out.print(result0[i][j]+" ");}System.out.println();}System.out.println("***********************");int[][] result2 = Matrix.sub(A, B);for (int i = 0; i < result2.length; i++) {for (int j = 0; j < result2[0].length; j++) {System.out.print(result2[i][j]+" ");}System.out.println();}System.out.println("***********************");int[][] result1 = Matrix.pow(A, 4);for (int i = 0; i < result1.length; i++) {for (int j = 0; j < result1[0].length; j++) {System.out.print(result1[i][j]+" ");}System.out.println();}}}
使用java实现的矩阵的相关运算,包括加、减、乘、乘方,矩阵乘方采用分治法实现
0 0
- 矩阵相关运算的java实现
- 矩阵相关运算代码实现
- 基本矩阵运算的Java实现
- 基本矩阵运算的Java实现
- java通过矩阵类实现矩阵的加减乘运算
- 浮点数的相关运算Java实现
- 矩阵乘法运算-JAVA实现
- [算法]矩阵的基本运算(Java实现)
- 矩阵运算相关问题
- 用java实现逆矩阵运算
- Java实现矩阵加减乘除转制等运算
- Java调用jama实现矩阵运算
- Java调用jama实现矩阵运算
- 实现数据的矩阵转换运算
- 矩阵类的实现,运算符重载
- 矩阵的基本运算 ------ C 实现
- 4.1矩阵运算的设计与实现
- 4.3稀疏矩阵的运算与实现
- HDU5493 Queue 线段树单点更新
- 为什么匿名内部类参数必须为final类型
- PAT1018锤子剪刀布
- JAXB XML与Object之间的转换
- java(android)客户端post方式上传多图片至服务器
- 矩阵相关运算的java实现
- 《程序员面试金典》--平衡二叉树的检测
- leetcode58题---java解法
- example 收集(未完待续)
- C++中typename实例
- JAVA容器类解析
- html5使得CORS更简单
- ubuntu12.04 安装配置jdk1.7
- Jsp+Servlet实现文件上传下载——前台页面开发