アットウィキロゴ

最適線形z

<html>
<head>
<meta charset="utf-8">
<title>最適線形所得税</title>
<script src="https://www.google.com/jsapi"></script>
<script src="jquery.js"></script>
<script src="linear.js"></script>  
<script src="line.js"></script>  
 
</head>
<body onload="linear()">
<div id="memo" style="width: 500px; height: 500px;">計算中</div>
</body>
</html>
 
 
 
th=new Array();
c=new Array();
y=new Array();
 
function linear(){
 
var s;
var h;
 
h=0.01;
 
for(s=1;s<101;s++){
th[s]=s*h;
}
 
var tr,tl;
var sx;
var we,maxw,trs,tls;
 
maxw=-9999;
trs=0;
tls=0;
 
sx=10;
 
maxw=-999;
for(sx=10;sx<50;sx++){
 
tl=0.01*sx;
tr=g(tl);
we=wel(tl,tr);
if(we>maxw)tls=tl;
if(we>maxw)trs=tr;
if(we>maxw)maxw=we;
}
 
 
for(s=1;s<101;s++){
y[s]=th[s]*lab(tls,trs);
c[s]=(1-tls)*y[s]+trs;
}
 
line();
 
 
}
 
function g(tlx){
 
var mode;
var e,tr1,tr2,tr3,b1,b2;
 
mode=0;
 
tr1=0.01;
tr2=0.4;
 
while(mode<100){
 
b1=bud(tlx,tr1);
b2=bud(tlx,tr2);
tr3=tr2-b2*(tr2-tr1)/(b2-b1);
tr1=tr2;
tr2=tr3;
e=b2*b2;
if(e<0.001)mode=1000;
mode=mode+1;
 
}
 
return tr2;
}
 
 
function wel(tl,tr){
 
var s;
var b1,w1,c1,l1,w2;
 
w2=0;
for(s=1;s<101;s++){
w1=(1-tl)*th[s];
l1=lab(w1,tr);
c1=w1*l1+tr;
w2=w2+u(c1,1-l1);
}
 
return w2;
}
 
function u(c1,x1){
var u1;
u1=Math.log(c1)+Math.log(x1);
return u1;
}
 
function bud(tl,tr){
 
var s;
var b1,w1,c1,l1,y1;
b1=0;
 
for(s=1;s<101;s++){
w1=(1-tl)*th[s];
l1=lab(w1,tr);
y1=th[s]*l1;
c1=w1*l1+tr;
b1=b1+y1-c1;
}
 
return b1;
}
 
function lab(w1,tr){
 
var l1;
l1=(w1-tr)/(2*w1);
if(l1<0)l1=0;
return l1;
}
 
 
 
 
 
google.load("visualization", "1", {packages:["corechart"]});
 
function line() {
 
var data = new google.visualization.DataTable();
data.addColumn('string', '期間');
data.addColumn('number', '消費');
data.addColumn('number', '所得');
 
 
data.addRows(100);
 
var str;
 
for(s=1;s<101;s++){
str=""+th[s];
data.setCell(s-1, 0, str);
data.setCell(s-1, 1, c[s]); 
data.setCell(s-1, 2, y[s]); 
}
 
 var options = {
          title: '最適線形所得税'
        };
 
var chart = new google.visualization.LineChart(document.getElementById('memo'));
chart.draw(data, options);
      }
 
最終更新:2013年12月26日 22:15