2023五一数学建模C题思路及代码

(一)问题重述

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

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

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

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

第二问思路:这问我们就要建立综合评价模型,对于这个问题可以使用模糊综合评价法,也可以使用其它评价模型。

模糊综合评价法基本思想:是以模糊数学为基础,应用模糊关系合成的原理,将一些边界不清、不易定量的因素定量化,从多个因素对被评价事物隶属等级(或称为评语集)状况进行综合性评价的一种方法。综合评判对评判对象的全体,根据所给的条件,给每个对象赋予一个非负实数评判指标,再据此排序择优。

基本步骤:确定因素集、评语集;构造模糊关系矩阵;确定指标权重;进行模糊合成和做出评价

数学建模中的其它评估模型有:

1、层次分析法,构造两两比较判断矩阵,单一准则下元素相对权重计算及一致性检验,一致性检验,计算各层元素对目标层的总排序权重;

2、灰色关联分析体系;

3、dea评价体系,比率模式,超级效率模式,线性规划模式,超级效率之多阶排序模型;

4、模糊数学评价模型。

第四问思路及代码

预测模型有:

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

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

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

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

这里我们用时间序列模型:灰色时间序列预测

clc;clear;
%建立符号变量a(发展系数)和b(灰作用量)
syms a b;
c = [a b]';
%原始数列(这里我们输入历史碳排放数据)
A = [174, 179, 183, 189, 207, 234, 220.5, 256, 270, 285];
%级比检验
n = length(A);
min=exp(-2/(n+1));
max=exp(2/(n+1));
for i=2:n
    ans(i)=A(i-1)/A(i);
end
ans(1)=[];
for i=1:(n-1)
    if ans(i)min
    else
        fprintf('第%d个级比不在标准区间内',i)
        disp(' ');
    end
end
%对原始数列 A 做累加得到数列 B
B = cumsum(A);
%对数列 B 做紧邻均值生成
for i = 2:n
    C(i) = (B(i) + B(i - 1))/2;  
end
C(1) = [];
%构造数据矩阵 
B = [-C;ones(1,n-1)];
Y = A; Y(1) = []; Y = Y';
%使用最小二乘法计算参数 a(发展系数)和b(灰作用量)
c = inv(B*B')*B*Y;
c = c';
a = c(1);
b = c(2);
%预测后续数据
F = []; F(1) = A(1);
for i = 2:(n+10)
    F(i) = (A(1)-b/a)/exp(a*(i-1))+ b/a;
end
%对数列 F 累减还原,得到预测出的数据
G = []; G(1) = A(1);
for i = 2:(n+10)
    G(i) = F(i) - F(i-1); %得到预测出来的数据
end
disp('预测数据为:');
G
%模型检验
H = G(1:n);
%计算残差序列
epsilon = A - H;
%法一:相对残差Q检验
%计算相对误差序列
delta = abs(epsilon./A);
%计算相对误差平均值Q
disp('相对残差Q检验:')
Q = mean(delta)
%法二:方差比C检验
disp('方差比C检验:')
C = std(epsilon, 1)/std(A, 1)
%法三:小误差概率P检验
S1 = std(A, 1);
tmp = find(abs(epsilon - mean(epsilon))< 0.6745 * S1);
disp('小误差概率P检验:')
P = length(tmp)/n
%绘制曲线图
t1 = 1995:2004;
t2 = 1995:2014;
plot(t1, A,'ro'); hold on;
plot(t2, G, 'g-');
xlabel('年份'); ylabel('碳排放量/万吨');
legend('实际碳排放量','预测碳排放量');
title('建筑碳排放量增长曲线');
grid on;



 

你可能感兴趣的:(数学建模,c语言,机器学习,回归)