生活随笔
收集整理的這篇文章主要介紹了
菜鸟的数学建模之路(七):灰色预测方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
灰色預測的概念
灰色系統、白色系統和黑色系統
(1)白色系統是指一個系統的內部特征是完全已知的,既系統信息是完全充分的。
(2)黑色系統是一個系統的內部信息對外界來說是一無所知的,只能通過它與外界的聯系來加以觀測研究。
(3) 灰色系統介于白色和黑色之間,灰色系統內的一部分信息是已知的,另一部分信息是未知的,系統內各因素間有不確定的關系。
灰色預測法
(1) 灰色預測法是一種預測灰色系統的預測方法。
(2) 灰色預測通過鑒別系統因素之間發展趨勢的相異程度,即進行關聯分析,并對原始數據進行生成處理來尋找系統變動的規律,生成有較強規律性的數據序列,然后建立相應的微分方程模型,從而預測事物未來發展趨勢的狀況。
關聯分析
簡單分析
關聯分析實際上是動態過程發展態勢的量化比較分析。所謂發展態勢比較,也就是系統各時期有關統計數據的集合關系的比較。
??例如,某地區1977~1983年總收入與養豬、養兔收入資料見下表格。
關聯分析實際上是動態過程發展態勢的量化比較分析。所謂發展態勢比較,也就是系統各時期有關統計數據的集合關系的比較。
??例如,某地區1977~1983年總收入與養豬、養兔收入資料見下表格。
??
??根據該表格,做曲線圖:
??
??由上圖易看出,曲線 A(總收入)與曲線 B(養豬收入)發展趨勢比較接近,而與 曲線 C(養兔收入)相差較大,因此可以判斷,該地區對總收入影響較直接的是養豬業, 而不是養兔業。
??很顯然,幾何形狀越接近,關聯程度也就越大。當然,直觀分析對于稍微復雜些 的問題則顯得難于進行。因此,需要給出一種計算方法來衡量因素間關聯程度的大小。
matlab實現灰色預測
案例:長江水質的預測(”MATLAB數學建模方法與實踐(第3版)“第91頁)
長江的水質問題是一個復雜的非線性系統,由于樣本數據少,需要的預測時間長,應用神經網絡難以取得理想的效果。考慮到污水排放量的變化規律是一個不確定的系統,且要求作出十年的預測,因此采用灰色預測方法來預測未來的污水排放量。
解題步驟:
步驟1 對原始數據進行累加
步驟2 構造累加矩陣B與常數向量
步驟3 求解灰參數、
步驟4 將參數代入預測模型進行數據預測
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
% 這里的求解步驟:
% 步驟1 對原始數據進行累加
% 步驟2 構造累加矩陣B與常數向量
% 步驟3 求解灰參數、
% 步驟4 將參數代入預測模型進行數據預測
%
% 注意有時候要做“數據的檢驗與處理”,具體看"灰色預測.docx"
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %建立符號變量a(發展系數)和b(灰作用量)
syms a b;
c = [a b]';%原始數列 A
A = [174, 179, 183, 189, 207, 234, 220.5, 256, 270, 285];
n = length(A);%對原始數列 A 做累加得到數列 B
B = cumsum(A);%對數列 B 做緊鄰均值生成
for i = 2:nC(i) = (B(i) + B(i - 1))/2; %生成累加矩陣
end
C(1) = [];%構造數據矩陣
B = [-C;ones(1,n-1)];
Y = A; Y(1) = []; Y = Y';%使用最小二乘法計算參數 a(發展系數)和b(灰作用量)
c = inv(B*B')*B*Y;
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%對數列 F 累減還原,得到預測出的數據
G = []; G(1) = A(1);
% 預測往后10年內數據,所以n+10
for i = 2:(n+10)G(i) = F(i) - F(i-1); %得到預測出來的數據
enddisp('預測數據為:');
G%模型檢驗H = G(1:10);
%計算殘差序列
epsilon = A - H;% 檢驗結果對照“灰色預測.docx”
%法一:相對殘差Q檢驗
%計算相對誤差序列
delta = abs(epsilon./A);
%計算相對誤差Q
disp('相對殘差Q檢驗:')
Q = mean(delta)%法二:方差比C檢驗
disp('方差比C檢驗:')
C = std(epsilon, 1)/std(A, 1)%法三:小誤差概率P檢驗
S1 = std(A, 1);
tmp = find(abs(epsilon - mean(epsilon))< 0.6745 * S1);
disp('小誤差概率P檢驗:')
P = length(tmp)/n%繪制曲線圖
t1 = 1995:2004;
t2 = 1995:2014;plot(t1, A,'ro'); hold on;
plot(t2, G, 'g-');
xlabel('年份'); ylabel('污水量/億噸');
legend('實際污水排放量','預測污水排放量');
title('長江污水排放量增長曲線');
grid on;
運行結果:
檢驗預測值分析:
還有一種檢驗方法:
以上就是全部內容,如有錯誤的地方望指出。
總結
以上是生活随笔為你收集整理的菜鸟的数学建模之路(七):灰色预测方法的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。