var m = new Array();
var g = new Array();
var r = new Array();
var p = new Array();
var rate = new Array();
var x = new Array();
var year = new Array();
var month = new Array();
var y = new Array();
var sol = new Array();
function sample() {
for(s=1;s<17;s++){
x[s]=new Array();
}
var query = "SELECT * FROM " +
'1v-jv7dtAMWYeEW_vV_yjUqfJ84V9482xxqr3nE8l';
var encodedQuery = encodeURIComponent(query);
var url = ['https://www.googleapis.com/fusiontables/v1/query'];
url.push('?sql=' + encodedQuery);
url.push('&key=AIzaSyAH0WCAXRIdHdbI-6bnMSN4kVDDZZmGyqY');
url.push('&callback=?');
$.ajax({
url: url.join(''),
dataType: 'jsonp',
success: function (data) {
var rows = data['rows'];
sx = 0;
for (var i in rows) {
sx = sx + 1;
g[sx]=rows[i][1];
m[sx]=rows[i][2];
rate[sx]=rows[i][3];
p[sx]=rows[i][4];
r[sx]=rows[i][5];
}
number = sx;
mm=4;
yy=1999;
for(s=1;s<number+1;s++){
mm=mm+1;
if(mm>4)yy=yy+1;
if(mm>4)mm=1;
year[s]=yy;
month[s]=mm;
}
datanumber=number-3;
for(s=1;s<datanumber+1;s++){
x[1][s]=1;
}
tx=1;
for(s=1;s<6;s++){
for(sx=1;sx<4;sx++){
tx=tx+1;
for(k=1;k<datanumber+1;k++){
if(s==1)x[tx][k]=g[k+3-sx];
if(s==2)x[tx][k]=m[k+3-sx];
if(s==3)x[tx][k]=rate[k+3-sx];
if(s==4)x[tx][k]=p[k+3-sx];
if(s==5)x[tx][k]=r[k+3-sx];
}
}
}
for(k=1;k<datanumber+1;k++){
y[k]=g[k+3];
}
ols();
paint();
}
});
}
function paint(){
var sub=new svgpaint();
str="<svg width=\"500\" height=\"500\">";
maxm = 0;
for (s = 1; s < number + 1;s++ ){
if (m[s] > maxm) maxm = m[s];
}
minm = maxm;
for (s = 1; s < number + 1;s++ ){
if (m[s] < minm) minm = m[s];
}
maxg = 0;
for (s = 1; s < number + 1;s++ ){
if (g[s] > maxg) maxg = g[s];
}
ming = maxg;
for (s = 1; s < number + 1;s++ ){
if (g[s] < ming) ming = g[s];
}
maxr = 0;
for (s = 1; s < number + 1;s++ ){
if (rate[s] > maxr) maxr = rate[s];
}
minr = maxr;
for (s = 1; s < number + 1;s++ ){
if (rate[s] < minr) minr = rate[s];
}
maxp = 0;
for (s = 1; s < number + 1;s++ ){
if (p[s] > maxp) maxp = p[s];
}
minp = maxp;
for (s = 1; s < number + 1;s++ ){
if (p[s] < minp) minp = p[s];
}
maxr2 = 0;
for (s = 1; s < number + 1;s++ ){
if (r[s] > maxr2) maxr2 = r[s];
}
minr2 = maxr2;
for (s = 1; s < number + 1;s++ ){
if (r[s] < minr2) minr2 = r[s];
}
for(s=1;s<datanumber;s++){
c1 = 500 * (y[s]-ming) / (maxg-ming);
c2 = 500 * (y[s+1]-ming) / (maxg-ming);
str=str+sub.line(5*s,500-c1,5*s+5,500-c2,3,"red");
g1=0;
for(sx=1;sx<17;sx++){
g1=g1+sol[sx]*x[sx][s];
}
g2=0;
for(sx=1;sx<17;sx++){
g2=g2+sol[sx]*x[sx][s+1];
}
c1 = 500 * (g1-ming) / (maxg-ming);
c2 = 500 * (g2-ming) / (maxg-ming);
str=str+sub.line(5*s,500-c1,5*s+5,500-c2,3,"blue");
}
str=str+sub.line(0,0,0,500,3,"black");
str=str+sub.line(0,500,500,500,3,"black");
str=str+"</svg>";
$("#memo").html(str);
}
function ols(){
var a=new Array();
var b=new Array();
for(s=1;s<17;s++){
a[s]=new Array();
}
for(k=1;k<17;k++){
b1=0;
for(s=1;s<datanumber+1;s++){
b1=b1+x[k][s]*y[s];
}
b[k]=b1;
}
for(s1=1;s1<17;s1++){
for(s2=1;s2<17;s2++){
b1=0;
for(s=1;s<datanumber+1;s++){
b1=b1+x[s1][s]*x[s2][s];
}
a[s1][s2]=b1;
}
}
for(s1=1;s1<17;s1++){
for(s2=1;s2<17;s2++){
z=a[s2][s1]/a[s1][s1];
if(s1==s2)z=0;
for(s=1;s<17;s++){
a[s2][s]=a[s2][s]-z*a[s1][s];
}
b[s2]=b[s2]-z*b[s1]
}
}
for(s=1;s<17;s++){
sol[s]=b[s]/a[s][s];
}
}
最終更新:2016年05月07日 11:01