线性代数中已经证明:对于任意一个对实称矩阵A,必然存在可逆矩阵C,满足 C1 * A * C 是对角矩阵,其中C1为C的转置。一下为实现代码。
package myMatrix;
import java.io.*;
import java.util.*;
public class matrix {
public double arr[][];
public int r,c;
matrix(int r,int c){
this.r = r;
this.c = c;
arr = new double [r][c];
for(int i = 0;i < r; i++){
for(int j = 0;j < c; j++){
arr[i][j] = 0;
}
}
}
matrix(matrix s){
r = s.r;
c = s.c;
arr = new double [r][c];
for(int i = 0;i < r; i++){
for(int j = 0;j < c; j++){
arr[i][j] = s.arr[i][j];
}
}
}
void change(int i,int j,double v){
if(i >= 0 && i< r && j >= 0 && j < c){
arr[i][j] = v;
}
}
void swap(int i,int j, boolean row){
if(i != j){
if(row == true){
if(i >= 0 && i< r && j >= 0 && j < r){
for(int s = 0; s < c; s++){
double tep = arr[i][s];
arr[i][s] = arr[j][s];
arr[j][s] = tep;