算法-->矩阵运算

来源:互联网 发布:亚洲人头大 知乎 编辑:程序博客网 时间:2024/06/03 19:14
package 矩阵运算;/** * 矩阵的加法,减法,乘法 *  * @author 朱珍珍 * */public class juzheng {    static void Add(double A[][], double B[][], int m, int n, double C[][]) {        // A,B参与的矩阵,m,n列数C为相加后的 结果        int i, j;        for (i = 0; i < m; i++) {            for (j = 0; j < n; j++) {                C[i][j] = A[i][j] + B[i][j];            }        }    }    static void Mat(double A[][], double B[][], int m, int n, double C[][]) {        // A,B参与的矩阵,m,n列数C为相加后的 结果        int i, j;        for (i = 0; i < m; i++) {            for (j = 0; j < n; j++) {                C[i][j] = A[i][j] - B[i][j];            }        }    }    static void mul(double A[][], double B[][], int m, int n, int k, double C[][]) {        // k为矩阵B的列数        int i, j, l;        for (i = 0; i < m; i++) {            for (j = 0; j < n; j++) {                C[i][j] = 0;                for (l = 0; l < k; l++) {                    C[i][j] += (A[i][l] * B[l][j]);// 相乘累加                }            }        }    }    public static void main(String[] args) {        double A[][] = { { 1.0, 2.0, 3.0 }, { 4.0, 5.0, 6.0 }, { 7.0, 8.0, 9.0 }        };        double B[][] = { { 2.0, -2.0, 1.0 }, { 1.0, 3.0, 9.0 }, { 17.0, -3.0, 7.0 }        };        double[][] C = new double[3][3];        int m, n, i, j, k;        m = 3;// 行数        n = 3;// 列数        k = 3;        System.out.print("矩阵A和B想 加的结果 为:\n");        Add(A, B, m, n, C);        for (i = 0; i < m; i++) {            for (j = 0; j < n; j++) {                System.out.printf("%10.6f", C[i][j]);            }            System.out.print("\n");        }        System.out.print("\n");        System.out.print("矩阵A和B想 减的结果 为:\n");        Mat(A, B, m, n, C);        for (i = 0; i < m; i++) {            for (j = 0; j < n; j++) {                System.out.printf("%10.6f", C[i][j]);            }            System.out.print("\n");        }        System.out.print("\n");        System.out.print("矩阵A和B想 乘的结果 为:\n");        mul(A, B, m, n, k, C);        for (i = 0; i < m; i++) {            for (j = 0; j < n; j++) {                System.out.printf("%15.6f", C[i][j]);            }            System.out.print("\n");        }    }}

这里写图片描述

原创粉丝点击