久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

灰色預(yù)測GM(1,,1)模型MATLAB程序

 絕地戰(zhàn)士 2011-01-26

MATLAB的灰色預(yù)測GM11)模型

程序如下

%程序中的變量定義,;alpha是包含 值的矩陣,;ago是預(yù)測后累加值矩陣,;var是預(yù)測值矩陣;error是殘差矩陣,;c是后驗(yàn)差比值

function gm1(x);  %定義函數(shù)gm1(x)

clc             %清屏,,以使結(jié)果獨(dú)立顯示

format long;     %設(shè)置計(jì)算精度

if length(x(:,1))==1    %對輸入矩陣進(jìn)行判斷,如不是一維列矩陣,,進(jìn)行轉(zhuǎn)置變換

    x=x';

end

n=length(x);      %取輸入數(shù)據(jù)的樣本量

z=0;

for i=1:n         %計(jì)算累加值,,并將值賦予矩陣be

    z=z+x(i,:);

    be(i,:)=z;

end

for i=2:n         %對原始數(shù)列平行移位

    y(i-1,:)=x(i,:);

end

for i=1:n-1       %計(jì)算數(shù)據(jù)矩陣B的第一列數(shù)據(jù)

    c(i,:)=-0.5*(be(i,:)+be(i+1,:));

end

for j=1:n-1       %計(jì)算數(shù)據(jù)矩陣B的第二列數(shù)據(jù)

    e(j,:)=1;

end

for i=1:n-1       %構(gòu)造數(shù)據(jù)矩陣B

    B(i,1)=c(i,:);  

    B(i,2)=e(i,:);  

end

alpha=inv(B'*B)*B'*y;   %計(jì)算參數(shù) 矩陣

for i=1:n+1          %計(jì)算數(shù)據(jù)估計(jì)值的累加數(shù)列,如改為n+1n+m可預(yù)測后m-1個值

   ago(i,:)=(x(1,:)-alpha(2,:)/alpha(1,:))*exp(-alpha(1,:)*(i-1))+alpha(2,:)/alpha(1,:);

end

var(1,:)=ago(1,:)

for i=1:n            %如改nn+m-1,,可預(yù)測后m-1個值

    var(i+1,:)=ago(i+1,:)-ago(i,:);   %估計(jì)值的累加數(shù)列的還原,,并計(jì)算出下一預(yù)測值

end

for i=1:n

    error(i,:)=var(i,:)-x(i,:);        %計(jì)算殘差

end

c=std(error)/std(x);               %調(diào)用統(tǒng)計(jì)工具箱的標(biāo)準(zhǔn)差函數(shù)計(jì)算后驗(yàn)差的比值c

ago                            %顯示輸出預(yù)測值的累加數(shù)列

alpha                          %顯示輸出參數(shù) 數(shù)列

var                            %顯示輸出預(yù)測值

error                           %顯示輸出誤差

c                              %顯示后驗(yàn)差的比值c

這代碼怎么用?好像有點(diǎn)錯 

提問者: 莫寒0312 - 見習(xí)魔法師 二級 

最佳答案

樓主,,我試了下,,沒錯啊,這段代碼你不能全部復(fù)制到matlab的命令窗口中去

首先,,你得把矩陣X賦值,,X不是你要處理的數(shù)據(jù)么?沒有X程序運(yùn)行不下去,,

然后,,將矩陣X賦值后你只需要復(fù)制下面這段代碼就OK

clc %清屏,以使結(jié)果獨(dú)立顯示 

format long; %設(shè)置計(jì)算精度 

if length(x(:,1))==1 %對輸入矩陣進(jìn)行判斷,,如不是一維列矩陣,,進(jìn)行轉(zhuǎn)置變換 

x=x'; 

end 

n=length(x); %取輸入數(shù)據(jù)的樣本量 

z=0; 

for i=1:n %計(jì)算累加值,并將值賦予矩陣be 

z=z+x(i,:); 

be(i,:)=z; 

end 

for i=2:n %對原始數(shù)列平行移位 

y(i-1,:)=x(i,:); 

end 

for i=1:n-1 %計(jì)算數(shù)據(jù)矩陣B的第一列數(shù)據(jù) 

c(i,:)=-0.5*(be(i,:)+be(i+1,:)); 

end 

for j=1:n-1 %計(jì)算數(shù)據(jù)矩陣B的第二列數(shù)據(jù) 

e(j,:)=1; 

end 

for i=1:n-1 %構(gòu)造數(shù)據(jù)矩陣

B(i,1)=c(i,:); 

B(i,2)=e(i,:); 

end 

alpha=inv(B'*B)*B'*y; %計(jì)算參數(shù) 矩陣 

for i=1:n+1 %計(jì)算數(shù)據(jù)估計(jì)值的累加數(shù)列,,如改為n+1n+m可預(yù)測后m-1個值 

ago(i,:)=(x(1,:)-alpha(2,:)/alpha(1,:))*exp(-alpha(1,:)*(i-1))+alpha(2,:)/alpha(1,:); 

end 

var(1,:)=ago(1,:) 

for i=1:n %如改nn+m-1,,可預(yù)測后m-1個值 

var(i+1,:)=ago(i+1,:)-ago(i,:); %估計(jì)值的累加數(shù)列的還原,,并計(jì)算出下一預(yù)測值 

end 

for i=1:n 

error(i,:)=var(i,:)-x(i,:); %計(jì)算殘差 

end 

c=std(error)/std(x) %調(diào)用統(tǒng)計(jì)工具箱的標(biāo)準(zhǔn)差函數(shù)計(jì)算后驗(yàn)差的比值

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多