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 " +
'1yNO-Blz2yG9MMhjIUSN05qUd6ZE657OT-Lb78x2S';
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]/1;
m[sx]=rows[i][2]/1;
rate[sx]=rows[i][3]/1;
p[sx]=rows[i][4]/1;
r[sx]=rows[i][5]/1;
}
number = sx;
mm=3;
yy=2004;
for(s=1;s<number+1;s++){
mm=mm+1;
if(mm>12)yy=yy+1;
if(mm>12)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);
c3=0;
for(sx=1;sx<17;sx++){
c3=c3+sol[sx]*x[sx][s];
}
c4=0;
for(sx=1;sx<17;sx++){
c4=c4+sol[sx]*x[sx][s+1];
}
str=str+sub.line(5*s,500-c1,5*s+5,500-c2,3,"red");
c3 = 500 * (c3-ming) / (maxg-ming);
c4 = 500 * (c4-ming) / (maxg-ming);
str=str+sub.line(5*s,500-c3,5*s+5,500-c4,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月08日 17:15