zoukankan      html  css  js  c++  java
  • MATLAB解灰色模型

    目前,灰色模型已经成为社会、经济、科教、技术等很多领域进行预测、决策、评估、规划、控制、系统分析和建模的重要方法之一。特别是它对时间序列短、统计数据少、信息不完全系统的建模与分析,具有独特的功效。

    其实灰色模型很简单,具体的步骤我就不再一一赘述,我就灰色模型用MATLAB的解法与大家分享一下。我以一组简单的数据为例,如下:

    例:

    近几年,某种商品的价格如下表:

    年份

    2006

    2007

    2008

    2009

    2010

    2011

    2012

    价格

    71.1

    72.4

    72.4

    72.1

    71.4

    72.0

    71.6

    请预测接下来几年价格情况?

    下面我用MATLAB求出灰色模型的方程,然后检验:

    format long

    x=[71.1 72.4 72.4 72.1 71.4 72.0 71.6];

    for k=2:7

        q=x(k-1)/x(k)

    end

    q1=(2.718281828459)^(-2/8)

    q2=(2.718281828459)^(2/8)             %进行检验是否能用灰色模型%

    for i=1:7

    if q1<q(i)<q2

        disp('keyijianmo');                  %可以应用模型%

        x12=sum(x(1,1:2))

        x13=sum(x(1,1:3))

        x14=sum(x(1,1:4))

        x15=sum(x(1,1:5))

        x16=sum(x(1,1:6))

        x17=sum(x(1,1:7))

        z12=0.5*(x(1)+x12)

        z13=0.5*(x12+x13)

        z14=0.5*(x13+x14)

        z15=0.5*(x14+x15)

        z16=0.5*(x15+x16)

        z17=0.5*(x16+x17)

        y=[x(2) x(3) x(4) x(5) x(6) x(7)]';

        b=[-z12 1;-z13 1;-z14 1;-z15 1;-z16 1;-z17 1];

        p=inv(b'*b)*b'*y;

        a=p(1)

        b=p(2)

        c=b/a

        d=x(1)-c

    end

    end

    运行后结果如下:

    Keyijianmo

    a =  0.00234378647852

    b =  72.65726960367881

    c =    3.099995254237023e+004

    d =   -3.092885254237023e+004

    建立灰色模型函数:

    function f=huise(x)

    f=-30928.85254237023*(2.718281828459)^(-0.00234378647852*x)+30999.95254237023;

    建立该函数放在huise.m文件中,将工作区间指向该文件,然后输入如下程序:

    format long

    x=[71.1 72.4 72.4 72.1 71.4 72.0 71.6];

    x1=x(1)

    x2=huise(1)-x1

    x3=huise(2)-huise(1)

    x4=huise(3)-huise(2)

    x5=huise(4)-huise(3)

    x6=huise(5)-huise(4)

    x7=huise(6)-huise(5)

    xx=[x1 x2 x3 x4 x5 x6 x7]

    s=(x-xx)./x

    o=abs(s)

    p=sum(o(1,:))

    q=1-p

    运行结果如下:

    x1 =  71.09999999999999

    x2 =  72.40574144031999

    x3 =  72.23623656178097

    x4 =  72.06712850127951

    x5 =  71.89841632983371

    x6 =  71.73009912066482

    x7 =  71.56217594914415

    xx =

      Columns 1 through 5

      71.09999999999999  72.40574144031999  72.23623656178097  72.06712850127951  71.89841632983371

      Columns 6 through 7

      71.73009912066482  71.56217594914415

    s = 

    Columns 1 through 5

      0  -0.00007930166188   0.00226192594225   0.00045591537754  -0.00698062086602

      Columns 6 through 7

       0.00374862332410   0.00052826886670

    o =

      Columns 1 through 5

    0   0.00007930166188   0.00226192594225   0.00045591537754   0.00698062086602

      Columns 6 through 7

       0.00374862332410   0.00052826886670

    p =   0.01405465603849

    q =   0.98594534396151

    挑选你想要的数据即可。

  • 相关阅读:
    Jmeter后置处理器之Json提取器
    Jmeter体系结构-事务控制器
    一款免费的自动化测试工具:AirtestProject
    jsonpath-rw处理json对象
    MySQL常用SQL
    Git使用
    charles的mock功能
    Django项目之blog表设计(二)
    Django小项目之blog(一)
    selenium无界面浏览器,访问百度搜索为例
  • 原文地址:https://www.cnblogs.com/loving-wenqure/p/3863837.html
Copyright © 2011-2022 走看看