• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Matlab实现GM(1,1)模型(源代码)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

关于这个模型的介绍不想多说了,只是一个娱乐而已。下面是所有的代码,直接粘到你的M文件里面,然后跑就是了。 一分钱不收。

 

function [ simulation,params] = GM( org )
n=length(org);
%一次累加
for i=1:n
    acc(i)=sum(org(1:i));
end
%计算背景值
for i=1:(n-1)
    zk(i)=0.5*(acc(i)+acc(i+1));
end
%求解参数
 params=polyfit(zk,org(2:end),1); 
 %计算模拟值
 for i=1:n
     if i==1
     simulation(i)=org(1);
     else 
     simulation(i)=(org(1)+params(2)/params(1))*(1-exp(-params(1)))*exp(params(1)*(i-1));
     end
 end
 plot(1:n,org,'-o',1:n,simulation,'-*');
 legend('原始序列','拟合序列');

 

 

细心的朋友应该会注意到一件事情:灰色预测模型里面不是有那么多矩阵运算吗,在这里怎么没有? 如果你跑了程序又会发现,这个程序计算出来的结果,跟任何一本书上写的结果完全一样。这是为啥嘞?

 

如果再细心点,会看到我这里获取参数的代码 :  params=polyfit(zk,org(2:end),1);。  没错, 就是线性拟合。

任何一本讲灰色理论的书上都会告诉你,参数估计是由这个式子加上最小二乘法得到的。

 

这事情的确没有错,但如果你仔细点,把移到等式的右边去,你发现了什么。 没错,这TM不就是一个离散直线方程么。

 

那么这里只需要把看成是直线方程里的y,而把看成是x。 那这个参数估计,就只是个简单的线性回归而已。

 

这样一来,只要是能实现线性回归的函数,完全都可以实现它所谓的参数估计。它那些大片大片的矩阵计算,完全只是为了忽悠你们而已,呵呵呵呵呵呵呵呵。

 

我大概数了一下,去掉我那些注释和画图,写一个GM(1,1)模型只需要10几行代码。如果你想偷懒,让它更简省,其实还可以更少。 比如累加的时候直接就把背景值算了,少一次循环。当然这种事情其实也没必要做。

 

至于学术圈里,各种各样的改进模型,尤其背景值改进模型。 你只需要把这段代码里面的计算公式换成那些看起来很牛B的文献里的公式就可以了。 这是高中生都应该办得到的事情。

 

好了,这个文章好像也没有什么主题,其实就是想让大家了解一下,所谓的牛B的灰色理论到底是个什么玩意。  (一个直线拟合就拿来吹出那么多东西,也真心佩服!)

希望大家不要被学术圈的忽悠们给忽悠了,不要在没必要的地方浪费太多时间。   

 

 

番外篇:

 

有了上述的思路,相信你们应该能想得到其它的模型该如何实现了。  可以这样讲,在灰色理论中提到的最小二估计,实质上都只是将LS的线性回归中的功能用起来了,所以其它的各种各样的模型都可以用这段代码的思路来实现。 

 

我上面也说过了,只要是能实现线性拟合的工具,都可以实现它了吧。那么你还能想到什么嘞?

 

1、SPSS,当然这个多此一举了;

2、EXCEL, 对,就是微软的那个OFFICE里面的EXCEL。 你甚至都用不着去用它的数据分析工具,只需要用slope和intercept两个函数就够了。

3、各种版本的统计学工具,开源工具,这里就不一一列举了。你去GOOGLE上 搜一下  "statistical " +[任意一种程序语言],你会找到无数个这种东西。

 

那么综上所述,可以看出几件事:

1、这玩意没啥神秘的;

2、这玩意是骗人的;

3、如果你还在写矩阵,呵呵呵,你还是回北大青鸟吧。(哈哈,开个玩笑)

 

其实我真正想说的是,不管是做学术还是玩技术,最重要的不外乎两点:1.认识问题的实质;2.不要装B,用最简单的方法去实现。

 

如果做到了以上两点,那么无论是在哪都能混得走。  如果只是用这个语言写过点什么,那个语言写过点什么,那么,你真的该去北大青鸟了。 这次不开玩笑!


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphi中COM自动化对象中使用事件发布时间:2022-07-18
下一篇:
Delphi对Excel保护操作发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap