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
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/221215.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

牛客网刷题笔记四 链表节点k个一组翻转

NC50 链表中的节点每k个一组翻转 题目&#xff1a; 思路&#xff1a; 这种题目比较习惯现在草稿本涂涂画画链表处理过程。整体思路是赋值新的链表&#xff0c;用游离指针遍历原始链表进行翻转操作&#xff0c;当游离个数等于k时&#xff0c;就将翻转后的链表接到新的链表后&am…

Postman如何使用(三):使用数据文件

数据文件是非常强大的方式使用不同的测试数据来测试我们的API&#xff0c;以检查它们是否在各种情况下都能正常运行。我们可以认为数据文件是“Collection Runner”中每个请求的参数。下面&#xff0c;我们通过一个例子来说明如何使用数据文件。 这篇文章需要结合下面两个文件进…

Java入坑之模块化

一、Java模块化概述 1.1历史开发模式 JDK 8及以前开发模式 Java源代码以Java文件&#xff08;类/接口/注解等&#xff09;的形式编写每个Java文件被明确地放入到一个包中Java文件编译后的class文件&#xff0c;可以压缩为jar包&#xff0c;供别的程序调用一个程序可以使用类库…

【docker系列】docker高阶篇

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

正则化与正则剪枝

写在前面&#xff1a;本博客仅作记录学习之用&#xff0c;部分图片来自网络&#xff0c;如需引用请注明出处&#xff0c;同时如有侵犯您的权益&#xff0c;请联系删除&#xff01; 文章目录 引言正则化为什么会过拟合拉格朗日与正则化梯度衰减与正则化 应用解决过拟合网络剪枝 …

Linux socket编程(6):IO复用之select原理及例子

文章目录 1 五种I/O模型1.1 阻塞I/O模型1.2 非阻塞I/O模型1.3 I/O复用模型1.4 信号驱动I/O模型1.5 异步I/O模型 2 select函数3 select实战&#xff1a;实现多个套接字监听3.1 客户端3.2 服务端3.3 实验结果3.4 完整代码 在之前的网络编程中&#xff0c;我们遇到了一个问题&…

Linux的基本指令 ( 一 )

目录 前言 Linux基本指令 快速认识五个指令 ls指令 补充内容 pwd指令 补充内容 cd指令 补充内容 重新认识指令 指令的本质 which指令 alias指令 最后 一个文件的三种时间 tree指令及安装 tree指令 前言 关于Linux操作系统的桌面&#xff0c;在学校教学中我们…

CountDownLatch实战应用——批量数据多线程协调异步处理(主线程执行事务回滚)

&#x1f60a; 作者&#xff1a; 一恍过去 &#x1f496; 主页&#xff1a; https://blog.csdn.net/zhuocailing3390 &#x1f38a; 社区&#xff1a; Java技术栈交流 &#x1f389; 主题&#xff1a; CountDownLatch实战应用——批量数据多线程协调异步处理(主线程执行事务…

【C/C++】如何不使用 sizeof 求数据类型占用的字节数

实现代码&#xff1a; #include <stdio.h>#define GET_TYPE_SIZE(TYPE) ((char *)(&TYPE 1) - (char *) & TYPE)int main(void) {char a a;short b 0;int c 0;long d 0;long long e 0;float f 0.0;double g 0.0;long double h 0.0;char* i NULL;print…

大语言模型损失函数详解

我们可以把语言模型分为两类&#xff1a; 自动回归式语言模型&#xff1a;自动回归式语言模型在本质上是单向的&#xff0c;也就是说&#xff0c;它只沿着一个方向阅读句子。正向&#xff08;从左到右&#xff09;预测&#xff1b;反向&#xff08;从右到左&#xff09;预测。…

第二十二章 解读pycocotools的API,目标检测mAP的计算COCO的评价指标(工具)

Pycocotools介绍 为使用户更好地使用 COCO数据集, COCO 提供了各种 API。COCO是一个大型的图像数据集&#xff0c;用于目标检测、分割、人的关键点检测、素材分割和标题生成。这个包提供了Matlab、Python和luaapi&#xff0c;这些api有助于在COCO中加载、解析和可视化注释。 …

【古诗生成AI实战】之二——项目架构设计

[1] 项目架构 在我们深入古诗生成AI项目的具体实践之前&#xff0c;让我们首先理解整个项目的架构。本项目的代码流程主要分为三个关键阶段&#xff1a; 1、数据处理阶段&#xff1b;   2、模型训练阶段&#xff1b;   3、文本生成阶段。 第一步&#xff1a;在数据处理阶段…