数学建模各类常用的算法(二)

本文介绍了灰色综合评价法,特别是灰色关联分析在灰箱模型中的应用,阐述了其步骤、优点(如处理大量未知信息、定性和定量结合等)、缺点(样本要求和相对评价局限)以及改进方法。提供了一个MATLAB代码示例,展示了如何用灰色系统预测时间序列数据的趋势。
摘要由CSDN通过智能技术生成

灰色综合评价法(灰色关联分析)

属于灰箱模型
基本思想

       灰色关联分析的实质就是,可利用各 方案 与 最优方案 之间关联度大小对评价象进行比较、排序。关联度越大,说明 比较序列与参考序列变化的态势越一致,反之,变化态势则相悖。由此可得出评价结果。
基本步骤
        建立原始指标矩阵;确定最优指标序列;进行指标标准化或无量纲化处理;求差序列、最大差和最小差;计算关联系数;计算关联度。
优点
        是一种评价具有大量未知信息的系统的有效模型,是定性分析和定量分析相结合的综合评价模型,该模型可以较好地解决评价指标难以准确量化和统计的问题,可以排除人为因素带来的影响,使评价结果更加客观准确。整个计算 过程简单,通俗易懂,易于为人们所掌握;数据不必进行归一化处理,可用原始数据进行直接计算,可靠性强;评价指标体系可以根据具体情况增减;无需大量样本,只要有代表性的少量样本即可。
缺点
        要求样本数据且具有 时间序列特性 ;只是对评判对象的优劣做出鉴别,并 不反映绝对水平 ,故基 于灰色关联分析综合评价具有“ 相对评价 ”的全部缺点。
适用范围
        对样本量没有严格要求, 不要求服从任何分布 ,适合 只有少量观测数据的问题 ;应用该种方法进 行评价时, 指标体系及权重分配是一个关键的题 ,选择的恰当与否直接影响最终评价结果。
改进方法
(1)采用组合赋权法:根据客观赋权法和主观赋权法综合而得权系数。
(2)结合TOPSIS法:不仅关注序列与正理想序列的关联度,而且关注序列与负理想序列的关联度,
依据公式计算最后的关联度。

参考案例

%% 灰色系统
clear
syms a b;
c=[a b]';
A=[130, 135, 150, 160, 171, 183, 195, 205, 216, 228];
B=cumsum(A);
n=length(A);
for i=1:(n-1)
    C(i)=(B(i)+B(i+1))/2;
end
d=A;
d(1)=[];
d=d';
E=[-C;ones(1,n-1)];
c=inv(E*E')*E*d;
c=c';
a=c(1);
b=c(2);
f=[];
f(1)=A(1);
for i=2:(n+20)
    f(i)=(A(1)-b/a)/exp(a*(i-1))+b/a;
end
g=[];
g(1)=A(1);
for i=2:(n+20)
    g(i)=f(i)-f(i-1);
end
t1=2008:2017;
t2=2008:2037;
g;
plot(t1,A,'o',t2,g)

代码解读

这段代码是使用MATLAB语言编写的,它主要实现了一个灰色预测模型(Grey prediction model),这是一种基于灰色系统理论的方法,用于预测时间序列数据的未来趋势。

下面是这段代码各部分的解读:

  1. clear:清除所有变量。
  2. syms a b;:定义符号变量a和b。
  3. c=[a b]';:初始化变量c,这个变量在后面的计算中用于存储参数。
  4. A=[130, 135, 150, 160, 171, 183, 195, 205, 216, 228];:这是一个数据序列,用于后面的预测模型。
  5. B=cumsum(A);:计算A的累计和。
  6. n=length(A);:获取数据序列A的长度。
  7. for循环for i=1:(n-1)C(i)=(B(i)+B(i+1))/2;:计算每个数据点的平均值,这是灰色预测模型的一部分。
  8. d=A; d(1)=[]; d=d';:对数据序列A做些处理,移除第一个元素,并转置。
  9. E=[-C;ones(1,n-1)];:构建一个矩阵E,其行数为数据点数减一,列数为2。
  10. 通过矩阵求逆和矩阵乘法运算,得到c,这是灰色预测模型的参数。
  11. 使用参数a和b来创建预测序列f。
  12. 使用f和f(1)来创建增量序列g。
  13. t1=2008:2017; t2=2008:2037;:定义两个时间范围。
  14. g;:显示增量序列g。
  15. plot(t1,A,'o',t2,g):绘制原始数据A和预测的增量序列g的图形。'o'代表在图上标出原始数据点。

此代码段是灰色预测模型的基本实现,它适用于时间序列数据的预测,特别适合于那些数据量小,且具有不完整信息或不确定性的情况。 

运行结果

案例说明 

矩阵A的值根据自己的测试数据进行输入,本程序只是一个参考案例。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值