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

更新时间:2023-12-11 19:00:41 阅读: 评论:0

2023年12月11日发(作者:关爱作文)

-

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

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

关于这个模型的介绍不想多说了,只是一个娱乐而已。下面是所有的代码,直接粘到你的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);

el

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,用最简单的方法去实现。

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

了。 这次不开玩笑!

-

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

本文发布于:2023-12-11 19:00:41,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/zhishi/a/170229244140856.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:Matlab实现GM(1,1)模型(源代码).doc

本文 PDF 下载地址:Matlab实现GM(1,1)模型(源代码).pdf

标签:模型   实现   线性
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 实用文体写作网旗下知识大全大全栏目是一个全百科类宝库! 优秀范文|法律文书|专利查询|