这个问题能用lingo求解吗?
有一组人,他们的月收入分别是:800,820,870,1000,1050,1100,1200,1250,1500,1600,1800,2000,2500,3600,450...
有一组人,他们的月收入分别是:800,820,870,1000,1050,1100,1200,1250,1500,1600,1800,2000,2500,3600,4500,5600,8000,10000,12000,15000。税收制度为,超过起征点的部分按20%交税。假设我们用税后收入的方差来衡量贫富差距,那么,起征点多少的时候,贫富差距最小?
这是我的想法,但求出来,x一直为零。。。
model:
sets:
people/1..20/:a,b,c;!a是税前收入;c是税后收入;
endsets
min=@sum(people(j):((c(j)-s)^2));!s是平均数;
s=@sum(people(j):c(j))/20;!求s;
@for(people(j):b(j)=@if(a(j)-x #gt# 0,1,0));!b(j)就是一个零一变量;
@for(people(j):c(j)=a(j)-(a(j)-x)*0.8*b(j));!用b(j)来看收入是否超过了起征点,进而进行税后收入的计算;
data:
a=800 820 870 1000 1050 1100 1200 1250 1500 1600 1800 2000 2500 3600 4500 5600 8000 10000 12000 15000;
enddata
end 展开
这是我的想法,但求出来,x一直为零。。。
model:
sets:
people/1..20/:a,b,c;!a是税前收入;c是税后收入;
endsets
min=@sum(people(j):((c(j)-s)^2));!s是平均数;
s=@sum(people(j):c(j))/20;!求s;
@for(people(j):b(j)=@if(a(j)-x #gt# 0,1,0));!b(j)就是一个零一变量;
@for(people(j):c(j)=a(j)-(a(j)-x)*0.8*b(j));!用b(j)来看收入是否超过了起征点,进而进行税后收入的计算;
data:
a=800 820 870 1000 1050 1100 1200 1250 1500 1600 1800 2000 2500 3600 4500 5600 8000 10000 12000 15000;
enddata
end 展开
展开全部
可以 确实是0 这个没问题 问题在于你衡量的方式 用方差的话就是0 你可以找一下其它方式
model:
sets:
point:a,b;
endsets
data:
a=800,820,870,1000,1050,1100,1200,1250,1500,1600,1800,2000,2500,3600,4500,5600,8000,10000,12000,15000;
enddata
min=@sum(point:(b-@sum(point:b)/@size(point))^2);
@for(point:b=a-@if(a#gt#x,0.2*(a-x),0));
end
model:
sets:
point:a,b;
endsets
data:
a=800,820,870,1000,1050,1100,1200,1250,1500,1600,1800,2000,2500,3600,4500,5600,8000,10000,12000,15000;
enddata
min=@sum(point:(b-@sum(point:b)/@size(point))^2);
@for(point:b=a-@if(a#gt#x,0.2*(a-x),0));
end
追问
意思就是说,根据题目的要求和给出的数据,计算出来纳税起征点就是零!?
追答
是的
这个其实可以自己想一下
比如起征点是800 那么每个人都少交了160的税 根据方差的平移不变性其实跟起征点是0一样
再比如起征点是820 除了第一个人都少交了820*0.2的税 但是第一个人只少交了800*0.2的税 这样方差反而增大了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询