アットウィキロゴ

ざいこ循環

google.load("visualization", "1", {packages:["corechart"]});
var point = new Array();
var pointx = new Array();
var x = new Array();
 var year = new Array();
 var month = new Array();
var p=new Array();
var q=new Array();
 
 
function sample() {
 
        var query = "SELECT c1,c2,c3 FROM " +
            '1VtwPHha3oAlT8OYevpS998dRH5wKY97zpATb13mD';
        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;
                    point[sx]=rows[i][1];
                }
 
 
                number = sx;
 
 mm=12;
 yy=1984;
 
   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;
 
    }
 
              p[1]=new Array();
p[2]=new Array();
q[1]=new Array();
q[2]=new Array();
 
 
p[1][1]=0.9;
p[1][2]=0.1;
p[2][1]=0.1;
p[2][2]=0.9;    
 
q[1][1]=0.9;
q[1][2]=0.1;
q[2][1]=0.1;
q[2][2]=0.9;   
 
 
 optimal();
 
 
 for(tr=1;tr<3;tr++){
 
sigma();
 
 optimal();
 
 theta();
 
 optimal();
 
 }
 
 for(s=0;s<number+1;s++){
 x[s]=new Array();    
 }
 x[0][0]="date";
 x[0][1]="指標";
 x[0][2]="谷山";
 for(s=1;s<number+1;s++){
 x[s][0]=""+year[s]+"年"+month[s]+"月";    
 x[s][1]=1*point[s];   
 x[s][2]=pointx[s];
 }
 
 
var data =google.visualization.arrayToDataTable(x);
var op = {title: '景気動向指数'};
 
var chart = new google.visualization.LineChart(document.getElementById('memo'));
chart.draw(data, op);
 
 
 
 
 
 
 
            }
        });
 
}
 
function sigma(){
 
 
var delta=new Array();
 
 
 
 
delta[1]=1;
for(s=2;s<number+1;s++){
delta[s]=1;
if(point[s-1]>point[s])delta[s]=2;
}
 
 
s1=0;
for(s=1;s<number+1;s++){
if(delta[s]==1)s1=s1+1;
}
 
s2=0;
for(s=1;s<number+1;s++){
h=0;
if(delta[s]==1)h=h+1;
if(pointx[s]>100)h=h+1;
if(h==2)s2=s2+1;
}
 
p[1][1]=s2/s1;
p[1][2]=1-p[1][1];
 
s1=0;
for(s=1;s<number+1;s++){
if(delta[s]==2)s1=s1+1;
}
 
s2=0;
for(s=1;s<number+1;s++){
h=0;
if(delta[s]==2)h=h+1;
if(pointx[s]<100)h=h+1;
if(h==2)s2=s2+1;
}
 
p[2][2]=s2/s1;
p[2][1]=1-p[2][2];
 
 
 
}
 
function theta(){
 
 
var delta=new Array();
 
 
 
s1=0;
for(s=1;s<number;s++){
if(pointx[s]>100)s1=s1+1;
}
 
s2=0;
for(s=1;s<number+1;s++){
h=0;
if(pointx[s]>100)h=h+1;
if(pointx[s+1]>100)h=h+1;
if(h==2)s2=s2+1;
}
 
q[1][1]=s2/s1;
q[1][2]=1-q[1][1];
 
 
s1=0;
for(s=1;s<number;s++){
if(pointx[s]<100)s1=s1+1;
}
 
s2=0;
for(s=1;s<number+1;s++){
h=0;
if(pointx[s]<100)h=h+1;
if(pointx[s+1]<100)h=h+1;
if(h==2)s2=s2+1;
}
 
q[2][2]=s2/s1;
q[2][1]=1-q[2][2];
 
 
 
}
 
function optimal(){
 
 
 
var delta=new Array();
 
 
 
 
delta[1]=1;
for(s=2;s<number+1;s++){
delta[s]=1;
if(point[s-1]>point[s])delta[s]=2;
}
 
 
var v=new Array();
var gotos=new Array();
 
for(s=1;s<number+1;s++){
v[s]=new Array();
gotos[s]=new Array();
}
 
for(s=1;s<3;s++){
sx=delta[1];    
v[1][s]=Math.log(p[sx][s]);
}
 
 
 
for(s=2;s<number+1;s++){
for(sx=1;sx<3;sx++){
n=delta[s];
u1=Math.log(p[sx][n]);
maxv=-999;
k2=0;
for(k=1;k<3;k++){
v1=u1+v[s-1][k]+Math.log(q[k][sx]);    
if(v1>maxv)k2=k;
if(v1>maxv)maxv=v1;
}
v[s][sx]=maxv;                        
gotos[s][sx]=k2;
}     
}
 
var op=new Array();
 
sx=0;
maxv=-999;
for(s=1;s<3;s++){
if(v[number][s]>maxv)sx=s;
if(v[number][s]>maxv)maxv=v[number][s];    
}
 
 
op[number]=sx;
 
for(s=1;s<number;s++){
sx=op[number-s+1];
op[number-s]=gotos[number-s+1][sx];
}
 
for(s=1;s<number+1;s++){
pointx[s]=80;
if(op[s]==1)pointx[s]=120;   
}
 
 
 
 
 
}
 
最終更新:2016年01月12日 04:33