當前位置:編程學習大全網 - 編程軟體 - matlab 擬合洛倫茲曲線 計算基尼系數

matlab 擬合洛倫茲曲線 計算基尼系數

%x1=0:0.1:1;

x1=linspace(0,1,8);

x2=0:0.001:1;

t=[0,4.12222,5.57722,13.91623,18.05866,22.62142,14.21962,21.48463]*0.01;%收入數百分比

xlen=length(x1);

y=zeros(1,xlen);

for i=1:xlen

y(i)=sum(t(1:i));

end

% c=polyfit(x1,y,7);

c=fit(x1',y','smoothingspline');

%d=polyval(c,x2);

d=c(x2);

%plot([0,1],[0,1],x1,y,['-'])

plot(x1,x1,'b-.',x1,y,'*',x2,d,'-')

title('洛倫茲曲線')

xlabel('人口百分比累計'),ylabel('收入百分比累計')

axis equal

axis([0,1,0,1])

grid on

%計算基尼系數

area1=trapz(x2,d);

area2=trapz(x1,x1);

JN=area1/area2;

disp(['收入數百分比基尼系數=',num2str(JN)])

%x1=0:0.1:1;

x1=linspace(0,1,8);

x2=0:0.001:1;

t=[0,4.12222,5.57722,13.91623,18.05866,22.62142,14.21962,21.48463]*0.01;%累計收入百分比

for i=1:length(x1)

y(i)=sum(t(1:i));

end

% c=polyfit(x1,y,7);

c=fit(x1',y','smoothingspline');

%d=polyval(c,x2);

d=c(x2);

figure

plot(x1,x1,'b-.',x1,y,'*',x2,d,'-')

% plot([0,1],[0,1],x1,y,['-'])

title('洛倫茲曲線')

xlabel('人口百分比累計')

ylabel('收入百分比累計')

axis equal

axis([0,1,0,1])

grid on

%計算基尼系數

area1=trapz(x2,d);

area2=trapz(x1,x1);

JN=area1/area2;

disp(['累計收入百分比基尼系數=',num2str(JN)])

按上面的程序試試

  • 上一篇:如何編程vb6命令按鈕顯示函數圖像?
  • 下一篇:五路灰度循跡上的out1到out5怎麽連到單片機上
  • copyright 2024編程學習大全網