JAVA程序设计:设A为m行n列矩阵,B为n行k列矩阵,C为m行k列矩阵.
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/22 09:46:22
JAVA程序设计:设A为m行n列矩阵,B为n行k列矩阵,C为m行k列矩阵.
用JAVA设计矩阵乘法程序,能完成C=A*B的操作.m、n与k用define定义为常量,其值由用户自定义.
用JAVA设计矩阵乘法程序,能完成C=A*B的操作.m、n与k用define定义为常量,其值由用户自定义.
public class Matrix {
private int m,n;
private double[][] matrix;
public Matrix(int m,int n) {
this.n = n;
this.m = m;
if (n == 0 || m == 0) {
throw new RuntimeException();
}
matrix = new double[m][n];
}
public void init(double...value) {
if (value.length != m * n) {
throw new RuntimeException();
}
for (int i = 0,a = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
matrix[i][j] = value[a];
a++;
}
}
}
public Matrix mul(Matrix x) {
if (n != x.m) {
throw new RuntimeException();
}
Matrix c = new Matrix(n,x.m);
for (int i1 = 0; i1 < m; i1++) {
for (int i3 = 0; i3 < x.n; i3++) {
for (int i2 = 0; i2 < n; i2++) {
c.matrix[i1][i3] += matrix[i1][i2] * x.matrix[i2][i3];
}
}
}
return c;
}
public String toString() {
StringBuffer s = new StringBuffer();
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
s.append(matrix[i][j] + " ");
}
s.append("\n");
}
return s.toString();
}
public static void main(String[] args) {
Matrix a = new Matrix(2,2);
Matrix b = new Matrix(2,2);
a.init(new double[] { 1,7,8,3 });
b.init(new double[] { 2,5,6,4 });
Matrix c = a.mul(b);
System.out.println(c);
}
}
再问: 麻烦一下帮我把m、n、k用define定义为常量,最后输出C=A*B啊,我是真的不会这题,O(∩_∩)O谢谢啦
再答: java里面没有define关键字,定义常量用static final完成 public static final int m=2; public static final int n=2; public static final int k=2; 这3句加在public class Matrix {这一句下面,main函数里 Matrix a = new Matrix(2, 2); Matrix b = new Matrix(2, 2); 改为 Matrix a = new Matrix(m, n); Matrix b = new Matrix(n, k);
private int m,n;
private double[][] matrix;
public Matrix(int m,int n) {
this.n = n;
this.m = m;
if (n == 0 || m == 0) {
throw new RuntimeException();
}
matrix = new double[m][n];
}
public void init(double...value) {
if (value.length != m * n) {
throw new RuntimeException();
}
for (int i = 0,a = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
matrix[i][j] = value[a];
a++;
}
}
}
public Matrix mul(Matrix x) {
if (n != x.m) {
throw new RuntimeException();
}
Matrix c = new Matrix(n,x.m);
for (int i1 = 0; i1 < m; i1++) {
for (int i3 = 0; i3 < x.n; i3++) {
for (int i2 = 0; i2 < n; i2++) {
c.matrix[i1][i3] += matrix[i1][i2] * x.matrix[i2][i3];
}
}
}
return c;
}
public String toString() {
StringBuffer s = new StringBuffer();
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
s.append(matrix[i][j] + " ");
}
s.append("\n");
}
return s.toString();
}
public static void main(String[] args) {
Matrix a = new Matrix(2,2);
Matrix b = new Matrix(2,2);
a.init(new double[] { 1,7,8,3 });
b.init(new double[] { 2,5,6,4 });
Matrix c = a.mul(b);
System.out.println(c);
}
}
再问: 麻烦一下帮我把m、n、k用define定义为常量,最后输出C=A*B啊,我是真的不会这题,O(∩_∩)O谢谢啦
再答: java里面没有define关键字,定义常量用static final完成 public static final int m=2; public static final int n=2; public static final int k=2; 这3句加在public class Matrix {这一句下面,main函数里 Matrix a = new Matrix(2, 2); Matrix b = new Matrix(2, 2); 改为 Matrix a = new Matrix(m, n); Matrix b = new Matrix(n, k);
JAVA程序设计:设A为m行n列矩阵,B为n行k列矩阵,C为m行k列矩阵.
编程实现矩阵相乘C=A×B(A为m行k列,B为k行n列;求一程序
A为m×n阶矩阵,B为n×k阶矩阵,c=AB为m×k阶矩阵,若r(A)=n,r(B)=k,证明:c的列向量线性无关
重载矩阵加法运算.设A,B,C均为m行,n列的矩阵,程序能实现C=A+B的操作.
若矩阵A,B分别为m行n列,k行n列矩阵,且已知他们行向量等价,那么怎么证明AX=0与BX=0同解啊?
设A为m*n矩阵,B为k*n矩阵,且r(A)+r(B)
mathematica 9.0 如何用函数创建一个m行,n列的矩阵,元素为a[i,j]的矩阵
2、设A为m×n矩阵,B为n×m矩阵,且m<n,已知AB=I,其中I为m阶单位矩阵,证明B的列向量组线性无
设A为m×n矩阵,B为n×s矩阵,已知A的列向量组线性无关,证明:B与AB有相同的秩
设A和B分别是n*m型和m*n型矩阵,C=AB为可逆阵,证明:B的列向量组线性无关
设A和B分别是n×m型和m×n型矩阵,C=AB为可逆阵,证明:B的列向量线性无关
P为m*n矩阵,r(P)=1怎么推出P=AB,其中A为m维列向量,B为n维行向量