<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