利用javascript計算n階矩陣

其中n是js數組,n是矩陣階數。
例如三階矩陣則n=3;
 function Ma(a,n){
var A;
var b=new Array();
if(n==1){
A=a[0][0];
   return A;
}
else if(n==2){
A=a[0][0]*a[1][1]-a[0][1]*a[1][0];
return A;
}
else if(n==3){
A=a[0][0]*a[1][1]*a[2][2]+
                  a[1][0]*a[2][1]*a[0][2]+
                  a[2][0]*a[0][1]*a[1][2]-
                  a[2][0]*a[1][1]*a[0][2]-
                  a[0][0]*a[2][1]*a[1][2]-
                  a[1][0]*a[0][1]*a[2][2];
                 return A;
}else {
A=0;
var c=new Array();
var e=new Array();
//計算第一行結果爲1,-5,9,-3;
for(var i=0;i<n;i++) {
b[i]=a[i][0]*power(-1,i+1+1);
}
//上面的循環沒有問題
//把第一行除外的其他行的值從上向下,從左到右賦值給新的數組a[i][j]
for(var i=0;i<n;i++){
e[i]=new Array();
for(var j=0;j<n-1;j++){
  e[i][j]=a[i][j+1];
}
}
//降階後重組
for(var i=0;i<n;i++)
{   
for(var j=0;j<n;j++){
c[j]=new Array();
for(var k=0;k<n-1;k++){
if(i>j){
c[j][k]=e[j][k];
//主要把在之前的四階降級爲三階,右下角三階  
}
else if(i<j){
c[j-1][k]=e[j][k];
}
}
 }
 A+=b[i]*arguments.callee(c,(n-1));
}
return A;
}
  }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章