[宿題] by shinnou 2007/04/06
引数で与えられた整数( N > 0) を次数とする
正方行列 A (N×N) を適当に作成し、
(1) 各行の平均を求めよ
(2) Aの転置行列を求めよ
(3) Aの2乗を求めよ
A の要素は -1 から 1 の double 型の数とする
[解答例]
//(1)各行の平均を求めよ
public class ShinnouHW {
public static void main(String[] args) {
int n = Integer.valueOf(args[0]).intValue( );
double a[][], r, sum;
a = new double [n][n];
for(int i = 0;i < n;i++) {
for(int j = 0;j < n;j++) {
r = Math.random();
a[i][j] = 2*r - 1;
}
}
for(int i = 0;i < n;i++) {
sum = 0.0;
for(int j = 0;j < n;j++) {
sum += a[i][j];
}
System.out.println(sum/n);
}
}
}
//(2)Aの転置行列を求めよ
public class ShinnouHW2 {
public static void main(String[] args) {
int n = Integer.valueOf(args[0]).intValue( );
double a[][], r;
a = new double [n][n];
for(int i = 0;i < n;i++) {
for(int j = 0;j < n;j++) {
r = Math.random();
a[i][j] = 2*r - 1;
}
}
for(int i = 0;i < n;i++) {
for(int j = 0;j < n;j++) {
System.out.print(a[i][j] + " ");
}
System.out.println();
}
System.out.println("-----------------");
for(int j = 0;j < n;j++) {
for(int i = 0;i < n;i++) {
System.out.print(a[i][j] + " ");
}
System.out.println();
}
}
}
//(3)Aの2乗を求めよ
public class ShinnouHW3 {
public static void main(String[] args) {
int n = Integer.valueOf(args[0]).intValue( );
double a[][], b[][], r, sum;
a = new double [n][n];
b = new double [n][n];
for(int i = 0;i < n;i++) {
for(int j = 0;j < n;j++) {
r = Math.random();
a[i][j] = 2*r - 1;
}
}
for(int i = 0;i < n;i++) {
for(int j = 0;j < n;j++) {
sum = 0;
for(int k = 0;k < n;k++) {
sum += a[i][k] * a[k][j];
}
b[i][j] = sum;
}
}
for(int i = 0;i < n;i++) {
for(int j = 0;j < n;j++) {
System.out.print(a[i][j] + " ");
}
System.out.println();
}
System.out.println("-----------------");
for(int i = 0;i < n;i++) {
for(int j = 0;j < n;j++) {
System.out.print(b[i][j] + " ");
}
System.out.println();
}
}
}