アットウィキロゴ

逆行列

var a=new Array();
var ab=new Array();
var b=new Array();
var sol=new Array();
var rev=new Array();
 
function sample(){
 
 
    for(s=1;s<4;s++){
    a[s]=new Array();    
    ab[s]=new Array();  
    rev[s]=new Array();
    }
 
    a[1][1]=4;
    a[1][2]=-2;
    a[1][3]=1;
    a[2][1]=3;
    a[2][2]=6;
    a[2][3]=-4;
    a[3][1]=2;
    a[3][2]=1;
    a[3][3]=8;
 
    for(tr=1;tr<4;tr++){
 
    b[1]=0;
    b[2]=0;
    b[3]=0;
 
    b[tr]=1;
 
    for(s=1;s<4;s++){
     for(sx=1;sx<4;sx++){
    ab[s][sx]=a[s][sx];
    }}
    cal();
 
   rev[1][tr]=sol[1];
    rev[2][tr]=sol[2];
    rev[3][tr]=sol[3];
 
}
 
 
alert(rev[1][2])    
 
 
}
 
function cal(){
 
 
for (s = 1; s < 4; s++) {
        for (sx = 1; sx < 4; sx++) {
            z = ab[sx][s] / ab[s][s];
            if (s == sx) z = 0;
            for (tx = 1; tx < 4; tx++) {
            ab[sx][tx] = ab[sx][tx] - z * ab[s][tx];
            }
            b[sx] = b[sx] - z * b[s];
        }
    }
 
    for (s = 1; s < 3; s++) {
    sol[s] = b[s] / ab[s][s];
    }
 
 
}
最終更新:2015年10月18日 02:53