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)])
按上面的程序試試