var a=new Array();
var bus=new Array();
var alpha=new Array();
var beta=new Array();
var sol=new Array();
function sample() {
var id="1IS1vkU6S31qK02F-7pxqXbODPMmSjGr3Vv2KAzW-Hj0";
ex1 = SpreadsheetApp.openById(id);
var sheet = ex1.getSheetByName("data");
var y=new Array();
for(s=1;s<14;s++){
a[s]=new Array();
}
for(s=1;s<14;s++){
for(sx=1;sx<14;sx++){
a[s][sx]=sheet.getRange(s+6, sx+2).getValue();
}}
for(sx=1;sx<14;sx++){
y[sx]=sheet.getRange(28, sx+2).getValue();
}
for(s=1;s<14;s++){
bus[s]=sheet.getRange(s+6, 2).getValue();
}
for(s=1;s<14;s++){
for(sx=1;sx<14;sx++){
a[s][sx]=a[s][sx]/y[sx];
}
}
for(s=1;s<14;s++){
alpha[s]=new Array();
}
for(s=1;s<14;s++){
for(sx=1;sx<14;sx++){
alpha[s][sx]=-1*a[s][sx];
}}
for(s=1;s<14;s++){
alpha[s][s]=1+alpha[s][s];
}
for(s=1;s<14;s++){
beta[s]=new Array();
}
for(n=1;n<14;n++){
rev(n);
for(s=1;s<14;s++){
beta[s][n]=sol[s];
}
}
var shx = ex1.getSheetByName("逆行列");
for(s=1;s<14;s++){
for(sx=1;sx<14;sx++){
shx.getRange(s, sx).setValue(beta[s][sx]);
}}
paint();
}
function rev(n){
var bx=new Array();
var ax=new Array();
for(s=1;s<14;s++){
ax[s]=new Array();
}
for(s=1;s<14;s++){
bx[s]=0;
}
bx[n]=1;
for(s=1;s<14;s++){
for(sx=1;sx<14;sx++){
ax[s][sx]=alpha[s][sx];
}}
for(s=1;s<14;s++){
for(sx=1;sx<14;sx++){
z=ax[sx][s]/ax[s][s];
if(s==sx)z=0;
for(tx=1;tx<14;tx++){
ax[sx][tx]=ax[sx][tx]-z*ax[s][tx];
}
bx[sx]=bx[sx]-z*bx[s];
}
}
for(s=1;s<14;s++){
sol[s]=bx[s]/ax[s][s];
}
}
function paint(){
var x1=new Array();
var x2=new Array();
for(s=1;s<14;s++){
z1=0;
for(sx=1;sx<14;sx++){
z1=z1+beta[sx][s];
}
x1[s]=z1;
}
for(s=1;s<14;s++){
z1=0;
for(sx=1;sx<14;sx++){
z1=z1+beta[s][sx];
}
x2[s]=z1;
}
var sh2 = ex1.getSheetByName("分析");
for(s=1;s<14;s++){
sh2.getRange(s, 2).setValue(x1[s]);
}
for(s=1;s<14;s++){
sh2.getRange(s, 3).setValue(x2[s]);
}
for(s=1;s<14;s++){
sh2.getRange(s, 1).setValue(bus[s]);
}
}
最終更新:2016年06月06日 02:48