2024年数维杯国际大学生数学建模挑战赛D题城市弹性与可持续发展能力评价解题全过程论文及程序

article/2025/7/3 23:36:13

2024年数维杯国际大学生数学建模挑战赛

D题 城市弹性与可持续发展能力评价

原题再现:

  中国人口老龄化趋势的加剧和2022年首次出现人口负增长,表明未来一段较长时期内我国人口将呈现下降趋势。这一趋势必将影响许多城市的高质量和可持续发展,特别是二级和三级城市,这些城市的影响可能是多方面的。与此同时,极端全球气候事件的日益频繁和当前的经济衰退将对城市发展的恢复力提出前所未有的挑战。
  通过结合网络爬虫和实地调查,我们从58.com获得了城市1和城市2特定日期待售房产的基本信息,如附录1和2所示。此外,附录3和4提供了城市1和城市2特定年份的一些基本服务的POI数据。请使用这些数据对以下四个问题进行具体的优化和建模。
  问题(1):考虑到上述数据和可以在互联网上收集的数据,如人口和GDP,您能否对城市1和城市2的不同地区的未来房价进行具体预测,并对这两个城市的现有住房总量进行具体估计?
  问题(2):请定量分析城市1和城市2不同部门的服务水平,并提取这两个城市的共同和独特特征,以及各自的优势和劣势。
  问题(3):使用附录3和4中的数据,评估两个城市应对极端天气和紧急情况的弹性,并定量评估城市的可持续发展能力。考虑到有限的财政资源的限制,您的模型应明确确定两个城市的具体弱点、未来需要发展的关键领域以及城市的短期和长期投资计划。
  问题(4):根据上述分析,起草两个城市的未来发展计划,不超过两页。该计划应明确概述主要投资领域、投资金额和城市智能城市发展水平的预期改进。

整体求解过程概述(摘要)

  我国人口老龄化日益严重,未来人口将处于长期下降的趋势。这将对二、三线城市的可持续发展产生深远影响,并对城市弹性提出严重挑战。基于所附数据,建立了城市韧性和可持续发展能力评价的数学模型。
  对于问题1,首先对原始数据进行缺失值和离群值处理,然后使用三个回归模型(线性回归、随机森林和梯度提升)来训练数据,以学习特征与目标之间的关系,从而预测房价。结果表明,随机森林模型和梯度提升模型具有较好的预测效果。因此,城市1的住房存量估计为1459933.97,城市2的住房存量估算为834249.01。
  对于问题2,首先清理和转换附件中的数据,然后采用K均值聚类方法分析City1和City2中各种设施的地理分布和聚类特征,并将结果可视化。聚类结果揭示了它们的共同和独特特征,并分析了它们的优缺点。研究结果表明,与城市2相比,城市1的地理名称和地址信息、汽车服务、医疗保健服务、零售服务、摩托车设施和科学教育等设施的数量和密度明显更高。
  针对问题3,根据服务指数数据,建立了多指标加权城市弹性评价模型。结果表明,City1的整体韧性得分更好,为0.74,而City2的得分为0.67。分析表明,城市1在应急管理资源配置和政府机构覆盖率方面表现突出,但其弱点在于社会支持体系的多样性和基层组织的动员能力。建议加强社区应急设施建设。第二城基层应急资源的分布和可获得性有限,弱点在于社会群体参与度低。建议加强应急保障能力。
  针对问题4,在前三个问题的分析和结果的基础上,在综合分析研究城市1和城市2优劣势的基础上。加大对城市现有优势的投资,进一步巩固和扩大其在智慧城市建设中的领先地位;针对不足,致力于通过精准的资本投入,优化自身不足,促进智慧城市发展水平的全面提升。

模型假设:

  1.数据完整性和准确性:假设使用的数据准确、完整,并代表研究区域的实际情况。
  2.经济发展趋势的一致性:假设该市的经济发展遵循当前趋势,短期内不会出现重大波动或不可预见的政策变化。

问题分析:

  问题一的分析
  对于问题1,目标是根据提供的房地产销售信息和可以获得的其他相关数据(如人口和GDP数据),预测城市1和城市2的未来房价和现有住房存量。结合58.com网站的物业销售数据、基础服务POI数据和相关经济指标,提出了具体的优化方案和建模方法。通过对不同地区房价的趋势分析,并评估人口和GDP等因素的影响,目的是对这两个城市未来的住房市场动态进行全面预测。
  问题二的分析
  对于问题2,该任务要求我们定量分析两个城市的服务,提取共同和独特的特征,并确定各自的优势和劣势。首先,我们将清理和标准化附件中提供的数据。然后,我们将应用K-均值聚类方法来分析这些设施的分布、聚集、数量、覆盖和服务类型比例。通过使用可视化技术和表格数据,我们旨在比较这两个城市。
  问题三的分析
  关于问题3,目标是评估这两个城市在极端天气和紧急情况下的复原力和可持续性。通过分析提供的15个服务指标的数据,初步确定了各指标之间的相关性,以确定对衡量城市韧性和可持续性至关重要的指标。该分析将为城市韧性的进一步评估模型提供理论支持和数据基础。
  问题四的分析
  本部分基于问题1至问题3的分析结论,针对长春和呼和浩特的具体优势和劣势,确定主要投资方向和资本配置,并预测这些投资带来的智慧城市发展水平的提高。在保持城市现有优势的基础上,重点优化和完善短板区域,实现两市在智慧城市建设中的全面进步。以下内容系统梳理和分析了主要投资领域、预算分配和发展预期。

模型的建立与求解整体论文缩略图

在这里插入图片描述
在这里插入图片描述

全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

部分程序代码:

import pandas as pd 
import matplotlib.pyplot as plt 
import folium 
from geopy.distance import geodesic 
import seaborn as sns 
import matplotlib as mpl 
mpl.rcParams['font.family'] = 'SimHei'  
mpl.rcParams['axes.unicode_minus'] = False 
file_path_1 = r"Appendix 1.xlsx" 
file_path_2 = r"Appendix 2.xlsx" 
city1_files = { culture data.csv" } 
city2_files = { data.csv" }
def load_house_data(file_path): data = pd.read_excel(file_path, sheet_name='Sheet1') return data house_data_1 = load_house_data(file_path_1) 
house_data_2 = load_house_data(file_path_2) # 处理缺失值和异常值 
def process_missing_and_outliers(data, column_name): print(f"处理前{column_name}缺失值数量:", 
data[column_name].isnull().sum()) data[column_name] = 
data[column_name].fillna(data[column_name].mean())  # 填充缺失值 Q1, Q3 = data[column_name].quantile([0.25, 0.75])  # 四分位数 IQR = Q3 - Q1  # 四分位距 lower_bound, upper_bound = Q1 - 1.5 * IQR, Q3 + 1.5 * IQR data[column_name] = data[column_name].apply(lambda x: max(min(x, 
upper_bound), lower_bound)) print(f"处理后{column_name}缺失值数量:", 
data[column_name].isnull().sum()) return data house_data_1 = process_missing_and_outliers(house_data_1, 'Price (USD)') 
house_data_2 = process_missing_and_outliers(house_data_2, 'Price (USD)') # 数据分布分析 
def plot_distribution(data, column_name, title): plt.figure(figsize=(10, 6)) plt.hist(data[column_name], bins=30, color='#3E92CC', 
edgecolor='black', alpha=0.7) plt.title(f"{title}: {column_name}") plt.xlabel(column_name) plt.ylabel('Frequency') plt.grid(axis='y', linestyle='--', alpha=0.7) plt.show() plot_distribution(house_data_1, 'Price (USD)', 'city1-Price') 
plot_distribution(house_data_2, 'Price (USD)', 'city2-Price') # 绘制箱型图 
def plot_boxplot(data1, data2, column_name, city1_name, city2_name, 
title):plt.figure(figsize=(10, 6)) # 合并数据用于绘制 combined_data = [data1[column_name], data2[column_name]] # 绘制箱型图 plt.boxplot(combined_data, patch_artist=True, boxprops=dict(facecolor='#3E92CC', color='black', 
alpha=0.7), medianprops=dict(color='red', linewidth=1.5), whiskerprops=dict(color='black', linewidth=1), capprops=dict(color='black', linewidth=1)) # 设置x轴和标题 plt.xticks([1, 2], [city1_name, city2_name], fontsize=12) plt.title(title, fontsize=16) plt.ylabel(column_name, fontsize=12) plt.grid(axis='y', linestyle='--', alpha=0.7) plt.tight_layout() plt.show() # 绘制城市1和城市2的房价箱型图 
plot_boxplot(house_data_1, house_data_2, 'Price (USD)', 'City 1', 'City 
2', 'Comparison of Price (USD) Between City 1 and City 2') # 加载设施数据 
def load_facilities(file_dict): datasets = {} for key, path in file_dict.items(): try: data = pd.read_csv(path) if 'lon_gcj02' in data.columns and 'lat_gcj02' in 
data.columns: data['lon_gcj02'] = pd.to_numeric(data['lon_gcj02'], 
errors='coerce')data['lat_gcj02'] = pd.to_numeric(data['lat_gcj02'], 
errors='coerce') datasets[key] = data.dropna(subset=['lon_gcj02', 
'lat_gcj02']) else: print(f"{key} 跳过。") except Exception as e: print(f"加载 {key} {e}") return datasets city1_data = load_facilities(city1_files) 
city2_data = load_facilities(city2_files) # 计算房产到设施的最近距离 
def calculate_nearest_distance(house_data, facility_data, house_lat_col, 
house_lon_col): distances = [] for _, house in house_data.iterrows(): house_location = (house[house_lat_col], house[house_lon_col]) min_distance = facility_data.apply( lambda row: geodesic(house_location, (row['lat_gcj02'], 
row['lon_gcj02'])).km, axis=1 ).min() distances.append(min_distance) return distances # 为房产添加设施距离特征 
def add_facility_distance_features(house_data, facilities, 
house_lat_col, house_lon_col): for facility_type, facility_data in facilities.items(): print(f"计算房产到最近 {facility_type} 的距离...") house_data[f'nearest_{facility_type}_distance'] = 
calculate_nearest_distance( house_data, facility_data, house_lat_col, house_lon_col ) add_facility_distance_features(house_data_1, city1_data, 'lat', 'lon') 
add_facility_distance_features(house_data_2, city2_data, 'lat', 'lon') # 综合相关性分析(城市1和城市2在同一张图中) 
def analyze_feature_correlation_combined(data1, data2, target_col, 
city1_name, city2_name): 
# 选择数值型列 numeric_cols1 = data1.select_dtypes(include=['float64', 
'int64']).columns numeric_cols2 = data2.select_dtypes(include=['float64', 
'int64']).columns # 计算相关性 correlation1 = 
data1[numeric_cols1].corr()[target_col].sort_values(ascending=False)[1:] correlation2 = 
data2[numeric_cols2].corr()[target_col].sort_values(ascending=False)[1:] # 合并列索引 combined_index = list(set(correlation1.index) | 
set(correlation2.index)) correlation1 = correlation1.reindex(combined_index, fill_value=0) correlation2 = correlation2.reindex(combined_index, fill_value=0) # 绘制相关性柱状图 x = range(len(combined_index)) plt.figure(figsize=(15, 8)) # 城市1的柱状图 plt.bar(x, correlation1, width=0.4, label=city1_name, 
color='#3E92CC', edgecolor='black', alpha=0.7, align='center') # 城市2的柱状图 plt.bar([i + 0.4 for i in x], correlation2, width=0.4, 
label=city2_name, color='#F95D6A', edgecolor='black', alpha=0.7, align='center') # 图表美化 plt.title(f"Correlation of Features with {target_col}", fontsize=16) plt.ylabel("Correlation Coefficient", fontsize=12) plt.xlabel("Feature Names", fontsize=12) plt.axhline(0, color='black', linewidth=0.8)  # 添加水平线 plt.xticks([i + 0.2 for i in x], combined_index, rotation=45, 
ha='right', fontsize=10)  # 调整x轴刻度和标签 plt.legend(fontsize=12) plt.grid(axis='y', linestyle='--', alpha=0.7)  # 添加网格线,样式统一 plt.tight_layout()  # 调整布局防止溢出 plt.show() 
全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

http://www.hkcw.cn/article/lqRNJOxQvY.shtml

相关文章

第18讲、Odoo接口开发详解:原理、类型与实践

1. 引言 Odoo作为一个功能强大的开源ERP和业务应用套件,其开放性和可扩展性是核心优势之一。接口(API)开发在Odoo生态中扮演着至关重要的角色,它使得Odoo能够与外部系统、第三方应用、移动端以及Web前端进行数据交换和功能集成。…

react实现markdown文件预览

文章目录 react实现markdown文件预览1、实现md文件预览2、解决图片不显示3、实现效果 react实现markdown文件预览 1、实现md文件预览 1️⃣第一步:安装依赖: npm install react-markdown remark-gfmreact-markdown:将 Markdown 渲染为 Rea…

AI大数据模型如何与thingsboard物联网结合

一、 AI大数据与ThingsBoard物联网的结合可以从以下几个方面实现: 1. 数据采集与集成 设备接入:ThingsBoard支持多种通信协议(如MQTT、CoAP、HTTP、Modbus、OPC-UA等),可以方便地接入各种物联网设备。通过这些协议&am…

一张图,生成一个网站!

大家好!我是羊仔,专注AI工具、智能体、编程。 最近羊仔在网上冲浪的时候,又发现一个超级有意思的AI工具,简直是效率神器! 今天要跟大家聊聊的,就是这个最近在GitHub上爆火的开源项目—— LlamaCoder&#…

ToolsSet之:数值提取及批处理

ToolsSet是微软商店中的一款包含数十种实用工具数百种细分功能的工具集合应用,应用基本功能介绍可以查看以下文章: Windows应用ToolsSet介绍https://blog.csdn.net/BinField/article/details/145898264 ToolsSet中Number菜单下的Numeric Batch是一个数…

会计科目主数据:企业数字化转型的“数据总线“与财务核算基石

在数字化浪潮席卷全球的今天,企业数据管理面临前所未有的挑战与机遇。作为财务管理的核心要素,会计科目不仅是ERP系统的基础架构,更是连接企业各业务系统的"数据总线"。本文将深入解析会计科目作为主数据的本质特征、跨系统应用模式…

微服务-Sentinel

目录 背景 Sentinel使用 Sentinel控制台 Sentinel控制规则 Sentinel整合OpenFeign 背景 在微服务项目架构中,存在多个服务相互调用场景,在某些情况下某个微服务不可用时,上游调用者若一直等待,会产生资源的消耗,极端情…

机器学习知识图谱——逻辑回归算法(Logistic Regression)

目录 一、图解逻辑回归 (Logistic Regression)算法知识图谱 二、什么是逻辑回归? 三、应用场景 四、算法核心思想 五、数学表达式公式 六、分类规则 七、损失函数(Log Loss) 八、优点 与 缺点 九、与线性回归的区别 十、Python 简易代码示例 机器学习知识图谱——…

【机器学习基础】机器学习入门核心算法:Mini-Batch K-Means算法

机器学习入门核心算法:Mini-Batch K-Means算法 一、算法逻辑工作流程与传统K-Means对比 二、算法原理与数学推导1. 目标函数2. Mini-Batch更新规则3. 学习率衰减机制4. 伪代码 三、模型评估1. 内部评估指标2. 收敛性判断3. 超参数调优 四、应用案例1. 图像处理 - 颜…

前端框架Vue

vue基础知识点 首先介绍用 HTML 写结构 script 里写 Vue&#xff0c;不需要环境 1.差值表达式{{ }} <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>Hello Vue</title><script src"https://cdn.jsdeliv…

ESP32系列AT固件快速开发——Wi-Fi MQTT

目录 【烧录固件时硬件接线】 【烧录固件】 【AT指令WiFi部分】 设置 Wi-Fi 模式 (Station/SoftAP/StationSoftAP) 查询 Wi-Fi 状态和 Wi-Fi 信息 【AT指令MQTT部分】 Demo:已验证的Wi-Fi连接MQTT连接、发布与订阅 设置MQTT用户属性 设置MQTT连接属性&#xff08;测试…

重温经典算法——并归排序

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl 基本原理 归并排序基于分治思想&#xff0c;递归地将数组拆分为两个子数组&#xff0c;分别排序后合并。时间复杂度为 O(n log n)&#xff0c;空间复杂度 O(n)&#xff08;…

05-power BI高级筛选器filter与Values人工造表

返回一个表&#xff0c;用于表示另一个表或表达的子集&#xff0c;不能够单独使用&#xff0c; fileter函数对筛选的表进行横向的逐行扫描&#xff0c;这样的函数也叫迭代函数 例&#xff1a;countrows(fileter(表筛选条件))filter的第一参数必须是唯一值得表&#xff0c; 如果…

贪心算法应用:欧拉路径(Fleury算法)详解

Java中的贪心算法应用&#xff1a;欧拉路径&#xff08;Fleury算法&#xff09;详解 一、欧拉路径与欧拉回路基础 1.1 基本概念 欧拉路径&#xff08;Eulerian Path&#xff09;是指在一个图中&#xff0c;经过图中每一条边且每一条边只经过一次的路径。如果这条路径的起点和…

【CF】Day73——Codeforces Round 887 (Div. 2) B (思维 + 模拟)

B. Fibonaccharsis 题目&#xff1a; 思路&#xff1a; 比C题有意思&#xff0c;但也么意思 对于这一题我们可以考虑最小的情况&#xff0c;即 f0 0&#xff0c;f1 1 时&#xff0c;然后看看什么时候会超过 n 的最大值&#xff0c;我们可以发现 k > 30 时就炸了&#xff…

工作流引擎-16-开源审批流项目之 整合Flowable官方的Rest包

工作流引擎系列 工作流引擎-00-流程引擎概览 工作流引擎-01-Activiti 是领先的轻量级、以 Java 为中心的开源 BPMN 引擎&#xff0c;支持现实世界的流程自动化需求 工作流引擎-02-BPM OA ERP 区别和联系 工作流引擎-03-聊一聊流程引擎 工作流引擎-04-流程引擎 activiti 优…

Windows+VSCode搭建小智(xiaozhi)开发环境

作为一名DIY达人&#xff0c;肯定不会错过最近很火的“小智AI聊天机器人”&#xff0c;网上教程非常丰富&#xff0c;初级玩家可以直接在乐鑫官方下载ESP-IDF安装包并经过简单的菜单式配置后&#xff0c;即可进行代码编译和烧录&#xff08;详见&#xff1a;Docs&#xff09;。…

《仿盒马》app开发技术分享-- 购物车业务逻辑完善(端云一体)

开发准备 之前我们已经实现了购物车相关的内容&#xff0c;实现了购物车数据列表的展示&#xff0c;但是我们结算订单之后我们的购物车列表并没有刷新&#xff0c;而且底部的状态栏并没有明显的数据展示来提醒用户&#xff0c;而且当我们在商品详情页添加新商品&#xff0c;底…

谷歌CEO皮查伊眼中的“下一代平台“与未来图景

目录 前言 一、从"能力秀"到"平台重构"&#xff1a;AI的"第二乐章" 二、"万物皆可创"&#xff1a;AI如何引爆每个人的创造力&#xff1f; 三、AI走出屏幕&#xff1a;XR眼镜与机器人的未来交响曲 四、Web不死&#xff0c;只是换了…

DDC Learning Record(2)

这些是 “UV 生成策略”&#xff0c;决定了 Houdini 如何分析模型空间&#xff0c;并分配 UV 坐标。它们只影响 UV 坐标的生成方式&#xff0c;不影响后续贴图的读取行为。 face得到的结果是&#xff1a; 每个面都被映射到了整张贴图&#xff08;[0,1]&#xff09;&#xff0c;…