灰色预测模型 GM(1,1)- 级比检测不通过 - 平移变换常数c的确定(内含代码)

灰色预测模型 GM(1,1) - 级比检测不通过 - 平移变换常数c的确定(内含代码)

谢谢!

(哇-------没注意就5600多访问量了,激动!!!!我的初衷只是想把blog作为我的学习笔记,回首往昔,也会发现值得让我引以为豪的事,风云变幻,初心不改!我会加油的

灰色预测概述

相信当我们在做数学建模的时候,一定会遇到数据不符合模型规则的情况,这时我们可能会面临两个选择
1.对数据进行修改,使其符合模型规则(大多数人的选择)
2.选择其他方法(慎用)

灰色预测的主要特点是模型使用的不是原始数据序列,而是生成的数据序列。其核心体系是灰色模型(Grey Model,简称GM),即对原始数据作累加生成(或其它方法生成)得到近似的指数规律再进行建模的方法。灰色预测模型对于不同问题采用不同模型,GM(1,1)模型主要解决生成序列是有指数变化规律,只能描述单调的变化过程。
优点是不需要很多的数据,一般只需要4个数据就够,能解决历史数据少、序列的完整性及可靠性低的问题;能利用微分方程来充分挖掘系统的本质,精度高;能将无规律的原始数据进行生成得到规律性较强的生成序列,运算简便,易于检验,具有不考虑分布规律,不考虑变化趋势。缺点是只适用于中短期的预测,只适合指数增长的预测。
灰色生成将原始数据列中的数据,按照某种要求作数据处理称为灰色生成。对原始数据的生成就是企图从杂乱无章的现象中去发现内在规律。常用的生成方式有累加生成,累减生成,均值生成,级比生成等。
灰色预测详细内容请转至下行链接BLOG,这里不做赘述
链接: link

级比分析

言归正传,我们此篇blog主要讨论的是如何计算级比检测不通过时,需要平移变换中的常数c,我也看了好多blog,并没有人分享具体的方法,可能是大家在建模比赛时只是在论文中提及一下级比检测,真正编程时便忽略了这个步骤,不过这势必会对模型最终的预测值产生较大影响,最终对成绩排名造成影响。
不才 也是根据我的c-py经验编写的matlab程序,用的是较为传统的编程思想,并没有立足于matlab编译程序,如有异议,请雅正。

级比分析何时使用

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

具体代码

c的确定方法:(代码)

if ( exp(-2 / (length_x0+1)) < min(Ratio) && max(Ratio) < exp(2 / (length_x0+1)) )
#%能够进入if循环说明符合级比检测,直接进行灰色预测就可。
else
    disp('数据不满足检验,将对数据进行处理')
    while(1)
        x0 = x0 + 1;
        Ratio = zeros(1 , length_x0 - 1);
        for i = 1:length_x0 - 1
            Ratio(i) = x0(i) / x0(i+1);
        end
        if( exp(-2 / (length_x0+1)) < min(Ratio) && max(Ratio) < exp(2 / (length_x0+1)) )
            break;
        end
    end
    c = x0(1,1) - b;
    fprintf( '数据进行处理完成,c的值为%d\n' , c ); 
    #c的值已经求出,下一步就是原始数组加上c再次进行if判断即可进入if函数中进行灰色预测

……太简单不要说我啊-啊哈哈……
快乐时光总是短暂的,那我们下次再见吧………………

人生风景在游走 每当孤独我回首
你的爱总在不远地方等着我
岁月如流在穿梭 喜怒哀乐我深锁
只因有你在天涯尽头等着我 
人生风景在游走 每当孤独我回首
你的爱总在不远地方等着我
岁月如流在穿梭 喜怒哀乐我深锁
只因有你在天涯尽头等着我

猜你喜欢

转载自blog.csdn.net/m0_46742690/article/details/107112396
今日推荐