アットウィキロゴ

p6p999

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