2023五一杯数学建模C题保姆级思路代码过程(“双碳”目标下低碳建筑研究)

第一问:

欢迎关注我的gzh:数模孵化园,今晚会更新A和B

我会一直更新今年的所有比赛,大大小小,欢迎联系我,全部免费更新

根据题目给定的条件,我们可以计算该建筑物通过空调调节温度的年碳排放量。首先,我们需要计算墙体、屋顶、门窗和地面的热传导面积以及月度温度差。

墙体面积 = 周长 × 高度 = (4 + 3) × 2 × 3 = 42平方米;

屋顶面积 = 长 × 宽 = 4 × 3 = 12平方米;

门窗总面积已知为5平方米;

地面面积 = 长 × 宽 = 4 × 3 = 12平方米。

接下来,我们计算每月的温度差,得到以下结果:

月份 1 2 3 4 5 6 7 8 9 10 11 12

温度差 19 16 12 6 0 0 5 6 0 0 3 16

然后,我们计算每月需要消耗的电能。需要考虑热量通过墙体、屋顶、门窗和地面传递的损失。

每月的热量损失(单位:焦耳/月)= [(墙体面积 × K1 + 屋顶面积 × K2 + 门窗面积 × K3) × 温度差 × 30] + [地面面积 × K4 × 温度差 × 30]。

将热量损失除以空调制热性能系数COP(如果需要加热)或制冷性能系数EER(如果需要制冷),就可以得到每月需要消耗的电能(单位:千瓦时/月)。

(注意,COP和EER的单位不同,为了保持单位一致,需要将COP和EER换算为相同的单位,这里我们使用千瓦时/焦耳。)

COP = 3.5 * 3600 J/(kWh) = 12600 J/kWh

EER = 2.7 * 3600 J/(kWh) = 9720 J/kWh

月份 1 2 3 4 5 6 7 8 9 10 11 12

电能(kWh)

加热 55.92 45.44 34.97 17.48 0.00 0.00 0.00 0.00 0.00 0.00 8.74 45.44

制冷 0.00 0.00 0.00 0.00 0.00 0.00 7.86 8.92 0.00 0.00 0.00 0.00

总电能(kWh)= 加热电能(kWh)+ 制冷电能(kWh)

我们将每个月的加热和制冷电能相加:

总电能(kWh)= (55.92 + 45.44 + 34.97 + 17.48 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 8.74 + 45.44) + (0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 7.86 + 8.92 + 0.00 + 0.00 + 0.00 + 0.00) = 208.99

因此,这个建筑物一年中总共需要消耗208.99千瓦时的电能来调节温度。

最后,我们计算年碳排放量。将总电能乘以0.28千克/度,得到年碳排放量:

年碳排放量 = 208.99 kWh × 0.28 kg/kWh = 58.52 kg

所以,该建筑物通过空调调节温度的年碳排放量为58.52千克。

第二问:

在居住建筑的整个生命周期 (建造、运行、拆除)中,影响碳排放的因素有很多,如建筑设计标准、气候、建材生产运输、地区差异、建造拆除能耗、装修风格、使用能耗、建筑类型等。请查找、分析资料,建立数学模型,找出与上述因素相关度大且易于量化的指标,基于这些指标对居住建筑整个生命周期的碳排放进行综合评价。

评价类问题,那肯定是先要找出指标,确定权重进行评价。

搜集资料之后,大家可以从以下几个指标出发。

建筑设计标准:评估建筑的热性能,如保温隔热性能、自然通风、日照等。可以采用建筑物的能耗系数(Energy Use Intensity, EUI)作为指标,单位为千瓦时/平方米·年(kWh/m²·a)。

气候:根据不同气候区域的温度、湿度和日照数据,计算建筑物在不同气候条件下的能耗需求。

建材生产运输:考虑建筑材料的生产过程中的碳排放,如水泥、钢筋、砖等。可以采用生命周期碳排放系数作为指标,单位为千克CO2e/平方米(kgCO2e/m²)。

建造拆除能耗:计算建筑物建造和拆除过程中的能耗和碳排放,包括施工设备、人工、运输等。可以采用建筑物生命周期能耗系数作为指标,单位为千瓦时/平方米·年(kWh/m²·a)。

装修风格:考虑装修过程中使用的材料和能耗,如涂料、木材、家具等。可以采用装修碳排放系数作为指标,单位为千克CO2e/平方米(kgCO2e/m²)。

使用能耗:计算建筑物运行过程中的能耗,如供暖、制冷、照明、电器等。可以采用建筑物运行能耗系数作为指标,单位为千瓦时/平方米·年(kWh/m²·a)。

建筑类型:根据建筑物的类型(如住宅、办公、商业等),采用不同的系数来调整碳排放。

甚至大家可以定义一个总排放的衡量公式(没错,这个公式就是自己定义,只要考虑周全指标即可),比如:

总碳排放 = 建筑设计标准系数 × EUI + 气候系数 × EUI + 建材生产运输系数 × 生命周期碳排放系数 + 建造拆除能耗系数 × 生命周期能耗系数 + 装修风格系数 × 装修碳排放系数 + 使用能耗系数 × 运行能耗系数 + 建筑类型系数 × EUI

这些权重系数怎么确定呢?你们可以找到一些文献,看看哪个的贡献最大,哪个其次,哪个更其次,甚至可以吹牛说专家打分,用层次分析法就可以了,AHP,这里要大家去找文献确定,确定的值没有准确的,只有一个范围,大家合适即可。

接着,如果有人说,哎,那我怎么知道我确定的系数合不合理呢?那就可以引入不确定性分析来弄。例如蒙特卡洛模拟等方法,以评估模型的敏感性和稳定性。

看到这你都不关注我gzh:数模孵化园      吗?(狗头)

我来介绍下,

首先确定输入参数的概率分布:针对每个输入参数(例如,权重系数、各指标取值等),确定其概率分布。这可以通过专家意见、历史数据或相关研究来实现。常见的概率分布包括正态分布、均匀分布、三角分布等。

随机抽样:对每个输入参数执行随机抽样,以生成一组模型输入。可以使用拉丁超立方抽样、盖斯特拉特抽样等高效抽样方法来提高模拟效率。

计算模型输出:使用抽样得到的输入参数运行模型,计算相应的碳排放输出。

重复随机抽样和计算过程:为了获得足够的模拟结果,需要多次重复步骤2和步骤3。通常情况下,需要至少几千次甚至几万次模拟,以获得稳定的结果。

分析模型输出:对模拟结果进行统计分析,例如计算均值、方差、置信区间等,以评估模型输出的不确定性。此外,可以通过散点图、相关系数等方法,评估不同输入参数对模型输出的敏感性。

识别关键参数:根据敏感性分析的结果,确定对模型输出影响最大的关键参数。这有助于优化模型,将关注点集中在最重要的参数上。

代码:

import numpy as np

import matplotlib.pyplot as plt



# 定义居住建筑碳排放模型

def building_carbon_emission_model(weight_coeff, index_values):

    return np.dot(weight_coeff, index_values)



# 设置模拟次数

n_simulations = 10000



# 设置权重系数概率分布范围(示例)

weight_coeff_dist = np.array([[0.2, 0.4],

                              [0.3, 0.5],

                              [0.1, 0.3],

                              [0.2, 0.4]])



# 设置指标取值概率分布范围(示例)

index_values_dist = np.array([[10, 50],

                              [20, 100],

                              [5, 25],

                              [10, 50]])



# 初始化存储模型输出的数组

model_outputs = np.zeros(n_simulations)



# 进行蒙特卡洛模拟

for i in range(n_simulations):

    # 对权重系数进行随机抽样

    weight_coeff_sample = np.random.uniform(weight_coeff_dist[:, 0], weight_coeff_dist[:, 1])



    # 对指标取值进行随机抽样

    index_values_sample = np.random.uniform(index_values_dist[:, 0], index_values_dist[:, 1])



    # 计算模型输出

    model_outputs[i] = building_carbon_emission_model(weight_coeff_sample, index_values_sample)



# 分析模型输出

mean_output = np.mean(model_outputs)

std_output = np.std(model_outputs)

confidence_interval = np.percentile(model_outputs, [2.5, 97.5])



print(f"Mean: {mean_output}")

print(f"Standard Deviation: {std_output}")

print(f"95% Confidence Interval: {confidence_interval}")



# 绘制模型输出的直方图

plt.hist(model_outputs, bins=50)

plt.xlabel("Carbon Emission")

plt.ylabel("Frequency")

plt.show()

通过蒙特卡洛模拟,我们可以更全面地评估居住建筑碳排放模型的敏感性和稳定性,从而提高模型的可靠性和实用性。这种方法还可以帮助我们发现模型中的不足和改进空间,为决策者提供更有针对性的建议。你看,这段话是不是可以写进模型的优缺点部分了。这样又水了100多字。

第三问:

在问题2的基础上,分别考虑建筑生命周期三个阶段的碳排放问题,查找相关资料,建立数学模型,对2021年江苏省13个地级市的居住建筑碳排放进行综合评价,并对所建评价模型的有效性进行验证。

步骤1:收集数据

收集与江苏省13个地级市居民建筑生命周期中的建造、运行和拆除阶段相关的数据。这包括建筑设计标准、气候条件、建筑材料、建筑类型等因素的数据。确保数据来源可靠,以便结果具有更高的可信度。

给大家一些找数据的思路:

官方统计数据:中国国家统计局、江苏省统计局以及各地级市的统计局都会发布与建筑行业相关的统计数据。

政府部门:环境保护部门、建设部门等政府机构可能会发布与建筑碳排放、建筑设计标准、建筑材料等相关的数据和政策文件。

学术研究:学术论文、研究报告以及与建筑碳排放相关的专业书籍都可能包含有关建筑生命周期各阶段的数据。可以查阅CNKI(中国知网)、万方数据等数据库,或者参阅国际学术期刊、会议论文等。

行业报告:一些专业机构和咨询公司会发布建筑行业的市场调查报告,其中可能包含与碳排放相关的数据。

企业数据:一些与建筑行业相关的企业(如建筑公司、能源公司等)可能会发布与建筑碳排放相关的数据。这些数据可能需要进一步处理和分析,以便用于评估模型。

步骤2:创建指标体系

针对生命周期的三个阶段,确定与碳排放相关的关键指标。这些指标应易于量化,与碳排放密切相关,并具有较强的代表性。

我们可以从以下三个方面出发:

建造阶段:建筑材料的碳排放系数、建筑面积、建筑类型等;

运行阶段:能耗、可再生能源利用率、气候条件等;

拆除阶段:拆除过程的能耗、废弃物处理方式、再利用和回收率等。

步骤3:确定权重系数

为每个指标分配一个权重系数,以表示其在总碳排放评估中的相对重要性。可以使用层次分析法(AHP)、熵权法等方法确定权重系数。

以下是使用AHP确定权重系数的过程:

将问题分解为目标、准则(指标)和方案层。在本例中,目标是评估碳排放,准则是确定的指标,方案是各地级市的居住建筑。使用1-9的尺度对各个指标进行两两比较。例如,如果指标A相对于指标B的重要性是3倍,那么在判断矩阵中A与B的相对位置为3,B与A的相对位置为1/3。

    接着是一致性检验,计算判断矩阵的一致性比例(CR)。如果CR小于0.1,则认为判断矩阵具有一致性,可以继续。如果CR大于0.1,需要重新调整判断矩阵。最后计算权重系数,求解判断矩阵的特征向量,归一化后得到权重系数。

步骤4:建立数学模型

我们可以使用加权求和法建立数学模型。给定权重系数和指标值,可以计算综合评价值:

综合评价值 = Σ(权重系数 × 指标值)

对于每个地级市,将权重系数与相应的指标值相乘,然后将它们相加以得到综合评价值。最后,对所有地级市的综合评价值进行排名以评估其碳排放性能。

步骤5:计算碳排放评价值

使用收集的数据和建立的数学模型,计算江苏省13个地级市的居住建筑碳排放评价值。

这个很简单了,一样自己定义一个函数,跟我第二问一样。

步骤6:模型验证

为了验证模型的有效性,可以将模型结果与其他相关研究或官方统计数据进行比较。此外,可以邀请专家对模型进行审查,以确保其合理性和准确性。

不知不觉到第四问了:

准确的碳排放预测能够为制定减排政策、优化低碳建筑设计提供重要的参考依据。建立碳排放预测模型,基于江苏省建筑全过程碳排放的历史数据,对2023年江苏省建筑全过程的碳排放量进行预测。

这里简单,预测模型。先来回顾一下预测模型有哪些,我在2023mathorcup本科组C题中已经写过了。每次看到问题,第一时间想起应对方法。我直接复制之前我公众号的,给大家再复习一遍:

1.线性回归模型:线性回归模型是一种基本的预测模型,用于建立自变量和因变量之间的线性关系。该模型的目标是最小化预测值与实际值之间的误差。

2.非线性回归模型:与线性回归模型不同,非线性回归模型可以建立非线性自变量和因变量之间的关系。这种模型通常用于描述数据中的复杂关系。

3.时间序列模型:时间序列模型是建立时间序列数据之间的关系的一种预测模型。该模型通常用于预测未来的趋势和季节性变化。

4.决策树模型:决策树模型是一种基于树形结构的预测模型,用于识别数据集中的模式和关系,并根据这些关系预测未来的结果。

5.神经网络模型:神经网络模型是一种模仿人脑神经元网络的预测模型,通过对大量数据进行训练来学习数据之间的复杂关系,并用于预测未来的结果。

显然,时间序列还是最好用的,最合适的,毕竟题目说预测2023一整年。

这里用自回归移动平均模型(ARIMA)。以下是使用ARIMA模型进行预测的步骤:

步骤1:收集数据

收集江苏省建筑全过程碳排放的历史数据。确保数据具有一定的时间跨度,以便模型能够捕捉到潜在的趋势和季节性。这里大家好好找找,我还没找。

步骤2:数据预处理

处理缺失值、异常值,并将数据转换为时间序列格式。如有必要,对数据进行平稳化处理,例如通过对数变换或差分。

代码:

import pandas as pd

import numpy as np

from statsmodels.tsa.stattools import adfuller

import matplotlib.pyplot as plt



# 假设已经收集了江苏省历史碳排放数据,这里将其表示为一个字典

carbon_emission_data = {

    'year': [2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021],

    'emission': [1000, 1100, 1200, 1300, 1350, 1400, 1420, 1440, 1450, 1460, 1470, 1480]

}



# 将数据转换为DataFrame格式

df = pd.DataFrame(carbon_emission_data)

df['year'] = pd.to_datetime(df['year'], format='%Y')

df.set_index('year', inplace=True)



# 平稳性检验(ADF检验)

result = adfuller(df['emission'])

print(f'ADF Statistic: {result[0]}')

print(f'p-value: {result[1]}')



# 对数变换

df['log_emission'] = np.log(df['emission'])



# 一阶差分

df['log_emission_diff'] = df['log_emission'].diff()

df.dropna(inplace=True)



# 重新进行ADF检验,检查差分后的数据是否平稳

result = adfuller(df['log_emission_diff'])

print(f'ADF Statistic after differencing: {result[0]}')

print(f'p-value after differencing: {result[1]}')



# 可视化原始数据和差分后的数据

plt.figure(figsize=(12, 6))

plt.subplot(211)

plt.plot(df['emission'])

plt.title('Original Emission Data')

plt.subplot(212)

plt.plot(df['log_emission_diff'])

plt.title('Differenced Log Emission Data')

plt.show()

步骤3:选择模型参数

确定ARIMA模型的参数(p,d,q),其中p表示自回归阶数,d表示差分阶数,q表示移动平均阶数。可以使用信息准则(如AIC或BIC)选择最佳参数组合。

from statsmodels.graphics.tsaplots import plot_acf, plot_pacf

from statsmodels.tsa.arima.model import ARIMA

from sklearn.metrics import mean_squared_error

import itertools



# ACF和PACF图

plot_acf(df['log_emission_diff'])

plt.title('ACF')

plot_pacf(df['log_emission_diff'])

plt.title('PACF')



# 确定参数范围

p_range = range(0, 3)

d_range = range(0, 2)

q_range = range(0, 3)



# 计算所有参数组合的AIC

best_aic = float('inf')

best_order = None

for p, d, q in itertools.product(p_range, d_range, q_range):

    if p == 0 and d == 0 and q == 0:

        continue

    try:

        model = ARIMA(df['log_emission'], order=(p, d, q))

        results = model.fit()

        if results.aic < best_aic:

            best_aic = results.aic

            best_order = (p, d, q)

    except:

        continue



print(f'Best ARIMA parameters: {best_order}, AIC: {best_aic}')

步骤4:模型拟合

使用选定的参数拟合ARIMA模型。在Python中,可以使用statsmodels库中的ARIMA类进行拟合。

# 使用最佳参数拟合ARIMA模型

model = ARIMA(df['log_emission'], order=best_order)

results = model.fit()



# 输出模型摘要信息

print(results.summary())

步骤5:模型评估

评估模型的性能,例如通过计算均方误差(MSE)或残差诊断。如有必要,根据评估结果调整模型参数。

# 计算预测残差

residuals = results.resid



# 绘制残差图

plt.figure(figsize=(12, 6))

plt.plot(residuals)

plt.title('Residuals')

plt.show()



# 计算均方误差

mse = mean_squared_error(df['log_emission_diff'][1:], residuals)

print(f'Mean Squared Error: {mse}')



# 残差正态性检验

from scipy.stats import normaltest

stat, p = normaltest(residuals)

print(f'Normality Test p-value: {p}')



# 如果需要调整模型参数,可以返回到步骤3,并尝试其他参数组合。

接着要通过正态性检验,可以进一步检查残差是否符合正态分布。如果 p 值大于 0.05,可以认为残差近似于正态分布。(想拿一等奖的可以做这个,其他的可以随便写写)

步骤6:进行预测

使用拟合好的模型对2023年江苏省建筑全过程的碳排放量进行预测。

# 预测2023年的碳排放量

forecast, stderr, conf_int = results.forecast(steps=1)



# 将预测结果转换回原始单位(反对数变换)

pred_emission = np.exp(forecast[0])

print(f'Predicted emission for 2023: {pred_emission}')



# 计算预测置信区间

conf_int_original = np.exp(conf_int)

print(f'95% confidence interval: {conf_int_original[0]}')

(这里的95%指的是代码将计算预测结果的 95% 置信区间)

问题五:请结合前面的讨论给出江苏省建筑碳减排的政策建议。

这个真没什么好说的,写1000字左右的报告就好,注意这里不要在查重上出现问题,千万要确保查重率。这里的1000字看起来水,但实际上不能粗心,查重过高很危险。

但我还是很贴心地给你们一些方向,你们自己切入,每个方面写一写就行,记得要跟你前面1-4问的结论符合,不要对不上。

提高建筑能效标准:对于新建建筑和改造项目,提高能效标准和绿色建筑设计要求。这将帮助降低建筑运行阶段的能源消耗和碳排放。此外,还可通过政策激励措施,如减税、补贴等,鼓励绿色建筑的发展。

推广低碳建筑材料:鼓励使用低碳建筑材料,例如生态混凝土、再生砖等,以降低建筑材料生产和运输阶段的碳排放。政府可以通过制定法规和标准,引导建筑材料市场向低碳、环保的方向发展。

提倡节能改造:对于既有建筑,进行节能改造,例如增加建筑物外墙和屋顶的保温层、更新节能窗户和门、优化供暖和空调系统等,以降低能源消耗和碳排放。

促进可再生能源利用:鼓励在建筑物上部署可再生能源系统,如太阳能光伏发电、太阳能热水器等,以减少对化石能源的依赖并降低碳排放。

智能建筑管理:利用现代信息技术,实现建筑能源的智能管理,提高能源利用效率。例如,通过智能家居系统,可以实现灯光、空调等设备的智能调节,减少能源浪费。

培训和宣传:加强低碳建筑的培训和宣传工作,提高公众对低碳建筑的认识和接受度,为低碳建筑市场的发展创造良好的社会氛围。

监测和评估:持续监测和评估建筑碳排放情况,调整相关政策和措施,以实现建筑行业碳排放的有效控制和减少。

A和B今晚更新全部。GZ号第一时间公布。作者是新加坡国立大学计算机专业在读生,联合了清华,上交,复旦等十名同学组建了此公众号,致力于数学建模交流和小白学习孵化,欢迎各位互相交流。

你可能感兴趣的:(数据结构,算法,python)