1. 程式人生 > >數學建模筆記1——灰色預測matlab例子

數學建模筆記1——灰色預測matlab例子

                        案列一    長江水質的預測


     matlab程式碼:

    clc,clear;
    syms a b;
    c=[a b]';
    A=[174 179 183 189 207 234 220.5 256 270 285];
    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+10)
        F(i)=(A(1)-b/a)/exp(a*(i-1))+b/a ;
    end
    G=[];G(1)=A(1);
    for i=2:(n+10)
        G(i)=F(i)-F(i-1); %得到預測出來的資料
    end 
    t1=1995:2004;

    t2=1995:2014;

    G,a,b % 輸出預測值,發展係數和灰色作用量

    plot(t1,A,'o',t2,G)  %原始資料與預測資料的比較

    xlabel('年份')

    ylabel('排水量')

  執行結果:

 G =


  Columns 1 through 6


  174.0000  172.8090  183.9355  195.7785  208.3839  221.8010


  Columns 7 through 12


  236.0820  251.2825  267.4616  284.6825  303.0122  322.5221


  Columns 13 through 18


  343.2881  365.3912  388.9175  413.9585  440.6118  468.9812


  Columns 19 through 20


  499.1772  531.3174




a =


   -0.0624




b =


  156.6162


   這個程式碼是個模板 可以套用 只需改下其中的資料即可

   以上內容來自MATLAB在數學建模中的應用_卓金武(上)