您的位置:首页 > 其它

算法-->矩阵运算

2017-08-04 14:34 141 查看
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");
}
}
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法 矩阵运算
相关文章推荐