アットウィキロゴ

えx43えx

var cps = new Array();
var cx = new Array();
var lx = new Array();
 var th = new Array();
 var k = new Array();
 var h;
 var ps=new Array();
var px=new Array();
 var a,beta;
 
function sample(){
 
    a = 0.33;
    beta=0.95;
 
 
 faststep();
 
 
 don();
 
 
    pon();
 
root();
 
 
paint();
 
 
}
 
function paint(){
 
var sub6=new svgpaint();
 
str="<svg width=\"700\" height=\"700\">"; 
 
 
for(s=1;s<100;s++){
str=str+sub6.line(5*s,500-cps[s],5*s+5,500-cps[s+1],2,"blue"); 
}
str=str+sub6.line(0,0,0,500,2,"black");
str=str+sub6.line(0,500,500,500,2,"black");
str=str+"</svg>";
 
$("#memo").html(str);   
 
 
}
 
function faststep(){
 
for(m=1;m<11;m++){
th[m]=0.95+0.01*m;
lx[m]=new Array();
cx[m]=new Array();
}
 
 
ls=(1-a)/(2-a);
ks=ls*Math.pow((1/ beta - 1)/a ,1/(a - 1)); 
h=2*ks/100;
 
 
for(s=1;s<101;s++){
k[s]=s*h;
}
 
for(m=1;m<11;m++){
for(s=1;s<101;s++){
lx[m][s]=ls;
cx[m][s]=th[m]*f(k[s],lx[m][s]);
}}
 
 
}
 
 
function f(k1,l1){
 
var f1;
 
f1=Math.pow(k1,a)*Math.pow(l1,1-a);
return f1;
}
 
function con(m2,n1){
 
var c1;
var n2;
var n3;
 
n2=Math.floor(n1);
n3=n2+1;
c1=cx[m2][n2]+(n1-n2)*(cx[m2][n3]-cx[m2][n2]);
return c1;
}
 
function lab(m2,n1){
var c1;
var n2;
var n3;
 
n2=Math.floor(n1);
n3=n2+1;
c1=lx[m2][n2]+(n1-n2)*(lx[m2][n3]-lx[m2][n2]);
return c1;
}
 
function don(){
 
 
var lxs = new Array();
var cxs = new Array(); 
 
for(m=1;m<11;m++){
lxs[m]=new Array();
cxs[m]=new Array();
}
 
mode=0;
 
while(mode<10){
 
for(m=1;m<11;m++){ 
for(s=10;s<91;s++){
l1=lab(m,s);
c1=con(m,s);
k1=k[s]+th[m]*f(k[s],lx[m][s])-c1;
n1=k1/h;
uc=0;
for(mx=1;mx<11;mx++){
c1=con(mx,n1);
l1=lab(mx,n1);
r1=th[mx]*a*Math.pow(k1,a-1)*Math.pow(l1,1-a);
uc=uc+(beta*(1+r1))/c1;
}
uc=uc/10;
cxs[m][s]=1/uc;
l1=lx[m][s];
w1=th[m]*(1-a)*Math.pow(k[s],a)*Math.pow(l1,-a);
lxs[m][s]=1-cx[m][s]/w1;
}}
 
var ep;
 
ep=0;
for(m=1;m<11;m++){
for(s=10;s<91;s++){
ep=ep+(cx[m][s]-cxs[m][s])*(cx[m][s]-cxs[m][s])+(lx[m][s]-lxs[m][s])*(lx[m][s]-lxs[m][s]);
}}
 
 
for(m=1;m<11;m++){
 for(s=10;s<91;s++){
cx[m][s]=cxs[m][s];
lx[m][s]=lxs[m][s];
}}
 
if(ep<0.01)mode=1000;
 
mode=mode+1;
 
}
 
 
 }
 
function root(){
 
    var cp=new Array();
 
k1=k[50];
 
for(t=1;t<101;t++){
n1=k1/h;
 
 
 
m1=10*Math.random();
m=Math.floor(m1)+1;
c1=con(m,n1);
l1=lab(m,n1);
 
k1=k1+th[m]*f(k1,l1)-c1;
 
n2=Math.floor(n1);
n3=n2+1;
 
cp[t]=px[m][n2]+(n1-n2)*(px[m][n3]-px[m][n2]);
 
}
 
 
 
maxc=0;
for(s=1;s<101;s++){
if(cp[s]>maxc)maxc=cp[s];
}
 
 
 
 
minc=9999;
for(s=1;s<101;s++){
if(cp[s]<minc)minc=cp[s];
}
 
for(s=1;s<101;s++){
cps[s]=500*(cp[s]-minc)/(maxc-minc);
}
 
 
}
 
 
 
 function pon(){
 
 
 
for ( n=1; n<11; n++ ){ 
px[n] = new Array(); 
ps[n] = new Array(); 
} 
 
var p1,p2;
 
for ( m=1; m<11; m++ ){ 
for ( n=1; n<101; n++ ){ 
px[m][n] = 1; 
}}
 
 
 
 
ms = 10; 
 
 
var n1,n2,n3;
var t2,t3;
var mx;
 
t2 = 0; 
while(t2<100){
 
var k1,pz,pi;
var l1,r1,ix,z1;
var p3,z2;
 
for ( m=1; m<11; m++ ){ 
for ( n=10; n<91; n++ ){ 
p1 = 0.9 * px[m][n]; 
p2 = 1.1 * px[m][n]; 
k1 = k[n] + th[m]*f(k[n],lx[m][n]) - cx[m][n]; 
n1 = k1 / h; 
n2 = Math.floor(n1); 
n3 = n2 + 1; 
z1=0;
for(mx=1;mx<11;mx++){
pz = px[mx][n2] + (n1 - n2) * (px[mx][n3] - px[mx][n2]); 
pi = pz / p1 - 1; 
l1 = lab(mx,n1); 
r1 = a * th[mx]*Math.pow(k1 , a - 1) * Math.pow(l1,1 - a); 
ix = (1 + r1) * (1 + pi) - 1; 
z1 = z1+ms * ix / (cx[m][n] * (1 + ix)) - p1; 
}
z1=z1/10;
t3 = 0; 
while(t3<100){ 
pi = pz / p2 - 1; 
ix = (1 + r1) * (1 + pi) - 1; 
z2 = ms * ix / (cx[m][n] * (1 + ix)) - p2; 
p3 = p2 - z2 * (p2 - p1) / (z2 - z1); 
p1 = p2; 
p2 = p3; 
z1 = z2; 
if(Math.pow(z2,2) < 0.0001)t3 = 1000;  
t3 = t3 + 1; 
} 
ps[m][n] = p2; 
}} 
 
 
 
var e;
 
e = 0; 
for(m=1;m<11;m++){
for (n=10; n<91; n++ ){ 
e = e + Math.pow(px[m][n] - ps[m][n], 2); 
}} 
 
 
for(m=1;m<11;m++){
for ( n=10; n<91; n++ ){ 
px[m][n] = ps[m][n]; 
}}
 
 
if (e < 0.01)t2 = 1000;  
t2 = t2 + 1; 
} 
 
 
 
}
 
最終更新:2015年12月03日 18:23