| |
public class arranger { private double[][] arrangermatrix; private double arrangerresult=1.0; public static void main(string args[]){ double[][] a={{4,1,4,8},{1,1,3,2},{2,2,5,1},{2,2,1,4}}; arranger ar=new arranger(); ar.arrfunction(a);//把行列式变成上三角行列式 ar.displaymatrix();//显示得出的上三角行列式 ar.displayresult(); //显示行列式计算结果 } public void arrfunction(double[][] a){//guass 消去 double k=0; for (int p = 0; p for (int r =p+1; r k=a[r][p]/a[p][p]; a[r][p]=0; for (int c = p+1; c a[r][c]=a[r][c]-k*a[p][c]; }//u }//r }//c arrangermatrix=new double[a.length][a[0].length]; for (int i = 0; i for (int j = 0; j arrangermatrix[i][j]=a[i][j]; if (i==j) {arrangerresult=arrangerresult*a[i][j];}//计算主对角线相乘的结果 //system.out.println (a[i][j]+" "); }//j }//i } public void displaymatrix(){ for (int i = 0; i for (int j = 0; j system.out.print (arrangermatrix[i][j]+" "); }//j system.out.println (); }//i } public void displayresult(){ system.out.println ("the result is "+arrangerresult); }
|
|