亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Matlab怎么實現灰色預測

發布時間:2022-05-18 08:45:32 來源:億速云 閱讀:373 作者:iii 欄目:開發技術

這篇文章主要介紹“Matlab怎么實現灰色預測”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Matlab怎么實現灰色預測”文章能幫助大家解決問題。

模型介紹

略微帶過一下原理:

灰色預測對于趨勢不強的數據,將其原始數據進行累加后得到具有明顯趨勢的新數據進行擬合,假設原數據為: 

Matlab怎么實現灰色預測

則新數據集X(1)中數據為:

Matlab怎么實現灰色預測

通常認為累加數據服從指數分布,欸那我們直接假設:

Matlab怎么實現灰色預測

直接進行一個非線性擬合不就完事了,但是,從小學二年級開始,老師就教導我們,像這用指數函數擬合啊,各個參數的變化對于整體曲線的影響效果差別很大啊,直接擬合誤差會很大啊,怎么能給他整成一個線性擬合啊?(直接擬合我有試過,能夠大體描述趨勢并做出預測,但是誤差會比灰色預測大一點)。

指數函數一般符合一個微分方程: 

Matlab怎么實現灰色預測

解常微分方程易得: 

Matlab怎么實現灰色預測

這樣我們只需要將a,u這倆常數求出來就能得到x(1)(t) ,就能得到X(1)序列然后逐項做差就能得到X(0)序列。

當k≤t≤k+1時,有:

Matlab怎么實現灰色預測

帶入回之前的微分方程就有: 

Matlab怎么實現灰色預測

實際上直接進行線性擬合就好了,當然我們也可以拿最小二乘法裝模作樣的分析一下,令: 

Matlab怎么實現灰色預測

基礎代碼

核心代碼非常短,只有六行,代碼中給出了詳細的注釋,基礎繪圖還是MATLAB風比較簡陋,后面會給出圖像修飾代碼。

X0=[15 16.1 17.3 18.4 18.7 19.1 19.9 21.3 22.5];
t=1:9;    % 原始數據自變量范圍
pt=10:12; % 預測數據自變量范圍

X1=cumsum(X0);                    % 累加生成趨勢明顯新序列
Z=X1(1:end-1)+diff(X1)./2;        % 均值,即(X1(1:end-1)+X1(2:end))./2
a_u=polyfit(-Z,X0(2:end),1);      % a_u=(B'*B)\B'*Y,B=[-Z,ones]
a=a_u(1);u=a_u(2);
P=(X1(1)-u/a)./exp(a.*([t,pt]-1))+u/a; % 求X1擬合值
P=[P(1),diff(P)];                      % X1逐項做差求預測值

% 繪圖
plot([t,pt],P,'*-');
hold on
plot(t,X0,'s-')  
legend('預測值','真實值');

Matlab怎么實現灰色預測

基礎代碼+修飾

X0=[15 16.1 17.3 18.4 18.7 19.1 19.9 21.3 22.5];
t=1:9;    % 原始數據自變量范圍
pt=10:12; % 預測數據自變量范圍

X1=cumsum(X0);                    % 累加生成趨勢明顯新序列
Z=X1(1:end-1)+diff(X1)./2;        % 均值,即(X1(1:end-1)+X1(2:end))./2
a_u=polyfit(-Z,X0(2:end),1);      % a_u=(B'*B)\B'*Y,B=[-Z,ones]
a=a_u(1);u=a_u(2);
P=(X1(1)-u/a)./exp(a.*([t,pt]-1))+u/a; % 求X1擬合值
P=[P(1),diff(P)];                      % X1逐項做差求預測值

% 繪圖
plot([t,pt],P,'s-','Color',[82,124,179]./255,'MarkerFaceColor',[82,124,179]./255,...
    'MarkerEdgeColor',[1,1,1],'LineWidth',2,'MarkerSize',16)  
hold on
plot(t,X0,'d-.','Color',[169,64,71]./255,'MarkerFaceColor',[169,64,71]./255,...
    'MarkerEdgeColor',[1,1,1],'LineWidth',2,'MarkerSize',16)  

% 增添圖例
lgd=legend('fitting result','original data');
lgd.Location='best';
lgd.FontSize=16;

% 坐標區域修飾
ax=gca;grid on;box off
ax.LineWidth=2;
ax.Color=[249,250,245]./255;
ax.XMinorTick='on';
ax.YMinorTick='on';
ax.GridLineStyle='-.';
ax.XColor=[1,1,1].*.2;
ax.YColor=[1,1,1].*.2;
ax.FontName='Cambria';
ax.FontSize=14;

Matlab怎么實現灰色預測

關于“Matlab怎么實現灰色預測”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

丰城市| 子洲县| 信阳市| 尼勒克县| 苏尼特左旗| 西华县| 开封市| 三门峡市| 濉溪县| 通州区| 晴隆县| 彭泽县| 阿坝| 石城县| 镇原县| 安溪县| 攀枝花市| 靖安县| 深圳市| 澜沧| 固安县| 海宁市| 叙永县| 双柏县| 庄浪县| 静宁县| 容城县| 台湾省| 乌鲁木齐市| 大理市| 晋江市| 衡阳市| 肥西县| 大城县| 乌鲁木齐县| 博白县| 高青县| 娱乐| 田东县| 河津市| 乐山市|