2017年五一杯数学建模C题宜居城市问题值解题全过程文档及程序
2017年五一杯数学建模
C题 宜居城市问题
原题再现
城市宜居性是当前城市科学研究领域的热点议题之一,也是政府和城市居民密切关注的焦点。建设宜居城市已成为现阶段我国城市发展的重要目标,对提升城市居民生活质量、完善城市功能和提高城市运行效率具有重要意义。
我国宜居城市的排名每年都是热门话题,不同机构对宜居城市的排名结果也不尽相同。2016 年,中科院发布了《中国宜居城市研究报告》,在被调查的 40 个城市中,排名前十的城市分别为:青岛、昆明、三亚、大连、威海、苏州、珠海、厦门、深圳、重庆。而美世人力资源咨询公司(William Mercer)公布的 2016 年全球宜居城市排行中大陆前十名分别为上海、北京、广州、成都、南京和深圳(并列)、西安、重庆、青岛、沈阳、吉林。宜居城市评价指标体系不同,宜居城市排名结果也会发生变化。一座宜居的城市不仅应具备物质丰足、生活便利等条件,而且应注重人们的切身感受。人们选择留在某个城市,不单是为了生存,更是寄托了自己的梦想与希望。对很多人来说,衡量是否宜居或许就是八个字:衣食住行、安居乐业。
请你查阅相关资料和数据,结合数据特点,回答下列问题:
1、 通过查阅资料,筛选评价宜居城市的主要指标,并阐述这些指标的合理性。根据所筛选的主要指标,建立评价宜居城市的数学模型。
2、 利用你构建的评价宜居城市的数学模型,对淮海经济区内的 8 个城市(宿迁、连云港、宿州、商丘、济宁、枣庄、徐州、淮北)进行合理性研究,给出宜居城市排名。
3、 以问题 2 为例,定量分析你所建立的模型中,哪些评价指标的变化会对宜居城市排名产生显著的影响。
4、 一些不确定性的因素(如突发自然灾害、房价大幅波动、宏观政策的重大调整等)会对宜居城市的某些指标产生重大影响。建立基于某些不确定性因素的评价宜居城市的数学模型,并重新讨论问题 2。
5、 根据上述定量分析的结果,请有针对性地给出进一步提高徐州市宜居水平的政策建议。
整体求解过程概述(摘要)
本文建立了宜居城市指标的筛选模型,评价模型,指标对评价敏感度模型,以及不稳定因素下的宜居城市评价模型。总体上,查阅资料得到了十八个评价指标,经过筛选后留下八个指标,接着就四省八地各统计局,地震局等相关部门给出的数据,对淮海经济区的八个城市进行了宜居城市评价,并给出了排名。通过指标对评价敏感度的分析,我们得出三个会对评价产生显著影响的指标,在此基础上,我们选择一种不稳定因素并计算其概率,将其和敏感度结合,代入评价模型,得到一个基于不稳定因素的评价模型。
对于问题一和问题二,结合政治,经济,社会,环境,以及参考国家政策查阅得到指标体系,构建层次分析法中的判断矩阵,然后将权重大的几个提取出来,作为主要指标,接着利用神经网络做评价,先将指标结合已有的宜居城市评价打分机制建立标准体系,然后进行网络训练与仿真。再将淮海等地的数据代入就得到了宜居城市排名。
对于问题三,通过利润敏感度分析法,分别设置较大变化和较小变化两类四种量变来求指标对于评价分数的敏感度。敏感度大的指标变化将导致评价分数显著变化从而使得宜居城市排名也发生显著变化。
对于问题四,不确定因素多种多样,我们简化模型,认为不确定因素发生的概率都是一样的。于是我们通过查阅旱涝资料,利用泊松分布计算不确定因素发生的概率。因为较难建立不确定因素到底对指标产生如何的影响,我们假设不确定因素都将对指标产生负面的印象,降低指标,从而影响对宜居城市的评价。
对于问题五,将前几问得到的结论结合徐州的评价情况。我们可以说徐州在敏感度不大的方面做得较好,同时在敏感度较大的几个指标上徐州应该做得更好,本文根据前面的问题针对性地为徐州政府提出了若干改进意见。
模型假设:
1 假设选择的指标相互间影响不显著
2 假设数据准确无误;
3 假设不确定因素发生的概率都一样;
4 假设不确定因素将使描述宜居城市的指标下降;
5 假设每三十年发生的旱涝灾害数量符号泊松分布;
6 假设发生了不稳定因素后八个城市都收到影响。
问题分析:
问题一和问题二
问题一要求我们查阅资料,得到评价宜居城市的指标,并以具备合理性的原则来筛选出若干主要指标,并根据主要指标建立一个评价宜居城市的模型。我们首先查找了官方的非行政性文件《宜居城市科学评价指标体系》[3]了解到宜居城市在政治,经济,社会,环境等方面定义。接着在《中国主要城市宜居性发展的地域差异研究》[4]中得到一些参考性指标。在这些参考指标中,有一些数据是较难得到的,我们结合第二问给出的四省八地,先后查阅了《江苏省统计年鉴》、《安徽省统计年鉴》、《河南省统计年鉴》、《山东省统计年鉴》等相关资料,检索并确定了得到了若干个可用于描述宜居城市的指标,如附录表 1。接下来通过合理的权重计算,提取出权重较大的几个指标,并判断其是否具有作为主要指标的合理性。我们再用筛选出的主要指标建议一个评价模型。
问题二要求我们用评价模型合理性研究淮海经济区八地的宜居问题,并给出排名。我们只需将上一问得到的数据代入建立的评价模型中,将结果排名即可。
问题三
问题三要求以第二问为基础,定量分析评价模型中哪些评价指标变化会对宜居城市排名产生较大影响。由于我们上面已经筛选出主要指标,只需要控制变量,改变一个指标,其他指标不变,观察结果的变化就能反映出哪些评价指标对结果有较大影响。同时由于有八个城市,考虑建立一个小的检验模型,检验不同城市同一指标变化,结果的上下波动是否合理。
问题四
问题四给出条件,一些不确定因素的剧烈变动将使得宜居城市的某些指标产生重大影响,要求我们建立基于这些不确定性因素的评价模型,并重新讨论问题2。我们考虑先得到这些不稳定因素发生的概率,然后将敏感度转化为一个影响因素,通过概率、影响因素,再将其输入问题一中的评价模型,就得到在不确定因素下的评价模型。
问题五
问题五是对以上四个问题的总结,其要求我们针对性地给出提高徐州宜居水平的政策建议。由问题三可得到哪些指标对结果影响较大,这些指标应是徐州应当继续提高的,而由问题四可到到哪些指标的剧烈变化会对宜居评价产生较大影响,主要从这两方面去给出建议即可。
模型的建立与求解整体论文缩略图
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可
程序代码:(代码和文档not free)
C0 = ones(5);
C0(2,1) = 1;
C0(3,1) = 1;
C0(4,1) = 1;
C0(5,1) = 1;
for i = 1:1:5
for j = 2:1:5
if C0(i,1)>=C0(j,1)>=1
C0(i,j)=C0(i,1)-C0(j,1)+1;
else if C0(j,1)>C0(i,1)>=1
C0(i,j)=1/(C0(j,1)-C0(i,1)+1);
else if C0(i,1)>=1&&C0(j,1)<1
C0(i,j)=C0(i,1)+1/C0(j,1)-1;
else if C0(i,1)<1&&C0(j,1)>=1
C0(i,j)=1/(C0(j,1)+1/C0(i,1)-1);
else if C0(j,1)<=C0(i,1)<1
C0(i,j)=1/C0(j,1)-1/C0(i,1)-1;
else C0(i,j)=1/(1/C0(i,1)-1/C0(j,1)+1);
end
end
end
end
end
end
end
C1 = ones(4);
C1(2,1) = 1/9;
C1(3,1) = 1/9;
C1(4,1) = 1;
for i = 1:1:4
for j = 2:1:4
if C1(i,1)>=C1(j,1)>=1
C1(i,j)=C1(i,1)-C1(j,1)+1;
else if C1(j,1)>C1(i,1)>=1
C1(i,j)=1/(C1(j,1)-C1(i,1)+1);
else if C1(i,1)>=1&&C1(j,1)<1
C1(i,j)=C1(i,1)+1/C1(j,1)-1;
else if C1(i,1)<1&&C1(j,1)>=1
C1(i,j)=1/(C1(j,1)+1/C1(i,1)-1);
else if C1(j,1)<=C1(i,1)<1
C1(i,j)=1/C1(j,1)-1/C1(i,1)-1;
else C1(i,j)=1/(1/C1(i,1)-1/C1(j,1)+1);
end
end
end
end
end
end
end
C2 = ones(4);
C2(2,1) = 1/7;
C2(3,1) = 1/9;
C2(4,1) = 1;
for i = 1:1:4
for j = 2:1:4
if C2(i,1)>=C2(j,1)>=1
C2(i,j)=C2(i,1)-C2(j,1)+1;
else if C2(j,1)>C2(i,1)>=1
C2(i,j)=1/(C2(j,1)-C2(i,1)+1);
else if C2(i,1)>=1&&C2(j,1)<1
C2(i,j)=C2(i,1)+1/C2(j,1)-1;
else if C2(i,1)<1&&C2(j,1)>=1
C2(i,j)=1/(C2(j,1)+1/C2(i,1)-1);
else if C2(j,1)<=C2(i,1)<1
C2(i,j)=1/C2(j,1)-1/C2(i,1)-1;
else C2(i,j)=1/(1/C2(i,1)-1/C2(j,1)+1);
end
end
end
end
end
end
end
C4 = ones(3);
C4(2,1) = 7;
C4(3,1) = 9;
for i = 1:1:3
for j = 2:1:3
if C4(i,1)>=C4(j,1)>=1
C4(i,j)=C4(i,1)-C4(j,1)+1;
else if C4(j,1)>C4(i,1)>=1
C4(i,j)=1/(C4(j,1)-C4(i,1)+1);
else if C4(i,1)>=1&&C4(j,1)<1
C4(i,j)=C4(i,1)+1/C4(j,1)-1;
else if C4(i,1)<1&&C4(j,1)>=1
C4(i,j)=1/(C4(j,1)+1/C4(i,1)-1);
else if C4(j,1)<=C4(i,1)<1
C4(i,j)=1/C4(j,1)-1/C4(i,1)-1;
else C4(i,j)=1/(1/C4(i,1)-1/C4(j,1)+1);
end
end
end
end
end
end
end
A=C0;
[n,n]=size(A);
[V,D]=eig(A);
tempNum=D(1,1);
pos=1;
for h=1:n
if D(h,h)>tempNum
tempNum=D(h,h);
pos=h;
end
end
w=abs(V(:,pos));
w=w/sum(w);
t=D(pos,pos);
disp('准则层特征向量 w=');disp(w);disp('准则层最大特征根 t=');disp(t);
CI=(t-n)/(n-1);RI=[0 0 0.52 0.89 1.12 1.26 1.36 1.41 1.46 1.49 1.52 1.54
1.56 1.58 1.59 1.60 1.61
CR=CI/RI(n);
if CR<0.10
disp('此矩阵的一致性可以接受!');
disp('CI=');disp(CI);
disp('CR=');disp(CR);
else disp('此矩阵的一致性验证失败,请重新进行评分!');
end
for i=1:n
G=eval([‘C’,num2str(i)]);
[m,m]=size(G);
[V,D]=eig(G);
tempNum=D(1,1);
pos=1;
for h=1:m
if D(h,h)>tempNum
tempNum=D(h,h);
pos=h;
end
end
eval( ['W',num2str(i),'=abs(V(:,pos))/sum(abs(V(:,pos)))']);
eval( ['T',num2str(i),'=D(pos,pos)']);
temp=D(pos,pos);
CI=(temp-m)/(m-1);RI=[0 0 0.52 0.89 1.12 1.26 1.36 1.41 1.46 1.49 1.52
1.54 1.56 1.58 1.59 1.60 1.61 1.615 1.62 1.63];
CR=CI/RI(m);
if CR<0.10
disp('此矩阵的一致性可以接受!');
else disp('此矩阵的一致性验证失败,请重新进行评分并在 clear 后重新
运行程序!');return;
end
eval( ['B',num2str(i),'=G']);
end