var a=new Array();
var bus=new Array();
var alpha=new Array();
var beta=new Array();
var sol=new Array();
var number;
function sample() {
number=54;
var id="1kIGE3rFcGaX8DWoulzJ18iKRp92_feKN0IGzkNWa1Vs";
ex1 = SpreadsheetApp.openById(id);
var sheet = ex1.getSheetByName("大分類");
var y=new Array();
for(s=1;s<number+1;s++){
a[s]=new Array();
}
for(s=1;s<number+1;s++){
for(sx=1;sx<number+1;sx++){
a[s][sx]=sheet.getRange(s+2, sx+2).getValue();
}}
for(sx=1;sx<number+1;sx++){
y[sx]=sheet.getRange(65, sx+2).getValue();
}
for(s=1;s<number+1;s++){
bus[s]=sheet.getRange(s+2, 2).getValue();
}
for(s=1;s<number+1;s++){
for(sx=1;sx<number+1;sx++){
a[s][sx]=a[s][sx]/y[sx];
}
}
for(s=1;s<number+1;s++){
alpha[s]=new Array();
}
for(s=1;s<number+1;s++){
for(sx=1;sx<number+1;sx++){
alpha[s][sx]=-1*a[s][sx];
}}
for(s=1;s<number+1;s++){
alpha[s][s]=1+alpha[s][s];
}
for(s=1;s<number+1;s++){
beta[s]=new Array();
}
for(n=1;n<number+1;n++){
rev(n);
for(s=1;s<number+1;s++){
beta[s][n]=sol[s];
}
}
var shx = ex1.getSheetByName("ABC");
for(s=1;s<number+1;s++){
for(sx=1;sx<number+1;sx++){
shx.getRange(s, sx).setValue(beta[s][sx]);
}}
}
function rev(n){
var bx=new Array();
var ax=new Array();
for(s=1;s<number+1;s++){
ax[s]=new Array();
}
for(s=1;s<number+1;s++){
bx[s]=0;
}
bx[n]=1;
for(s=1;s<number+1;s++){
for(sx=1;sx<number+1;sx++){
ax[s][sx]=alpha[s][sx];
}}
for(s=1;s<number+1;s++){
for(sx=1;sx<number+1;sx++){
z=ax[sx][s]/ax[s][s];
if(s==sx)z=0;
for(tx=1;tx<number+1;tx++){
ax[sx][tx]=ax[sx][tx]-z*ax[s][tx];
}
bx[sx]=bx[sx]-z*bx[s];
}
}
for(s=1;s<number+1;s++){
sol[s]=bx[s]/ax[s][s];
}
}
最終更新:2016年06月08日 12:13