国产aaaa级全身裸体精油片_337p人体粉嫩久久久红粉影视_一区中文字幕在线观看_国产亚洲精品一区二区_欧美裸体男粗大1609_午夜亚洲激情电影av_黄色小说入口_日本精品久久久久中文字幕_少妇思春三a级_亚洲视频自拍偷拍

首頁 > 化工知識 > 【預(yù)測模型-ELAMN預(yù)測】基于哈里斯鷹算法優(yōu)化ELMAN神經(jīng)網(wǎng)絡(luò)實現(xiàn)數(shù)據(jù)回歸預(yù)測matlab代碼

【預(yù)測模型-ELAMN預(yù)測】基于哈里斯鷹算法優(yōu)化ELMAN神經(jīng)網(wǎng)絡(luò)實現(xiàn)數(shù)據(jù)回歸預(yù)測matlab代碼

時間:2021-12-11 來源: 瀏覽:

【預(yù)測模型-ELAMN預(yù)測】基于哈里斯鷹算法優(yōu)化ELMAN神經(jīng)網(wǎng)絡(luò)實現(xiàn)數(shù)據(jù)回歸預(yù)測matlab代碼

原創(chuàng) 天天Matlab 天天Matlab
天天Matlab

TT_Matlab

每天分享一點Matlab資料,一起成長進步。需要定制程序添加qq1575304183

收錄于話題 #神經(jīng)網(wǎng)絡(luò)預(yù)測matlab源碼 97個 內(nèi)容

1 簡介

風(fēng)能,作為一種重要,有潛力,無污染,可再生、可持續(xù)的能源,已經(jīng)成為全球發(fā)電最為迅速的能源之一,越來越受到世界各國的青睞。近年來,為緩解能源短缺問題,改善環(huán)境,實現(xiàn)經(jīng)濟乃至人類的可持續(xù)發(fā)展,世界各國紛紛大力發(fā)展風(fēng)能資源。然而,在實際操作中,風(fēng)能固有的波動性和間歇性通常會增加風(fēng)能入網(wǎng)的難度,致使風(fēng)電場輸出功率不穩(wěn)定,嚴重影響輸出的電能質(zhì)量,大大增加了電網(wǎng)安全性和穩(wěn)定性運行風(fēng)險,因此,風(fēng)速預(yù)測在風(fēng)電相關(guān)工作中至關(guān)重要,準確、可靠的預(yù)測結(jié)果不僅有利于調(diào)度人員事先掌握風(fēng)電場的功率變化情況,及時制定調(diào)度運行計劃,提高能量轉(zhuǎn)換效率、降低風(fēng)險,增加發(fā)電量等,同時也有利于風(fēng)電并網(wǎng)穩(wěn)定運行和有效消納,對可能存在影響電網(wǎng)安全穩(wěn)定運行的風(fēng)險及時預(yù)警,從而避免風(fēng)電功率隨機波動造成電能損耗甚至電網(wǎng)崩潰。近年來,國內(nèi)外學(xué)者進行了大量風(fēng)速預(yù)測相關(guān)研究,風(fēng)速預(yù)測水平得到一定程度的提升。單一預(yù)測模型雖簡單容易實施,但其預(yù)測精度往往較低,難以滿足風(fēng)電場發(fā)電的需求。相比之下,基于優(yōu)化算法和數(shù)據(jù)分解法的混合預(yù)測模型對風(fēng)速預(yù)測性能有很大的提升。因此,這些模型往往會降低預(yù)測結(jié)果的穩(wěn)定性,對風(fēng)電場發(fā)電以及風(fēng)電并網(wǎng)的安全性和穩(wěn)定性帶來巨大的挑戰(zhàn)。針對如上問題,本文構(gòu)建出一個基于哈里斯鷹算法和Elman神經(jīng)網(wǎng)絡(luò)的混合預(yù)測模型,本文所提出的混合預(yù)測模型不僅可以降低預(yù)測誤差,提高風(fēng)速預(yù)測精度,增強預(yù)測結(jié)果的穩(wěn)定性,同時對風(fēng)電場發(fā)電的完善,發(fā)展以及風(fēng)電并網(wǎng)安全管理也大有裨益。

Elman 神經(jīng)網(wǎng)絡(luò)是一種局部反饋遞歸神經(jīng)網(wǎng)絡(luò),包括輸入層、隱藏層、承接層和輸出層,由于其良好的動態(tài)記憶和時變能力,自1990年Elman首次提出以來,Elman神經(jīng)網(wǎng)絡(luò)在時間序列預(yù)測中得到了廣泛的應(yīng)用,但由于隨機選擇初始值和閾值,且采用梯度下降法尋優(yōu),其網(wǎng)絡(luò)學(xué)習(xí)速度較慢且預(yù)測的精度比較低。本文利用 HHO優(yōu)化 Elman神經(jīng)網(wǎng)絡(luò)的初始權(quán)值及閾值,提高了 Elman 神經(jīng)網(wǎng)絡(luò)的預(yù)測精度。

第一步 初始化 Elman 網(wǎng)絡(luò)所需參數(shù),并新建 Elman 網(wǎng) 絡(luò),net=newelm(minmax(input),[11,1],{’tansig’,’purelin’},’traingdx’),其中 input 是訓(xùn)練集數(shù)據(jù),tansig 是隱藏層的激活函數(shù),purelin是輸出層激活函數(shù),traingdx是梯度下降函數(shù);

第二步 初始化HHO各參數(shù),包括鷹的數(shù)量m 、最大迭代次數(shù)Maxiter,參數(shù)的上界ub及下界lb;

第三步 不斷迭代哈里斯鷹位置優(yōu)化網(wǎng)絡(luò),直到迭代結(jié)束形成最優(yōu)個體,其中最優(yōu)個體包括權(quán)值w1、w2及w3,閾值b1和b2;

第四步 Elman 神經(jīng)網(wǎng)絡(luò)解析最優(yōu)個體,利用解析后的權(quán)值及閾值訓(xùn)練Elman神經(jīng)網(wǎng)絡(luò)并預(yù)測風(fēng)速數(shù)據(jù)。

2 部分代碼

function [sFeat,Sf,Nf,curve] = jBHHO(feat,label,N,max_Iter,HO)

beta = 1.5;

ub   = 1; 

lb   = 0;

fun = @jFitnessFunction; 

dim = size(feat,2);

X   = zeros(N,dim); 

for i = 1:N

  for d = 1:dim

    if rand() > 0.5

      X(i,d) = 1;

    end

  end

end

fitR = inf; 

fit  = zeros(1,N); 

Y    = zeros(1,dim); 

Z    = zeros(1,dim);

curve = inf;  

t = 1; 

%---Iteration start-------------------------------------------------

while t <= max_Iter

  for i = 1:N

    fit(i) = fun(feat,label,X(i,:),HO);

    if fit(i) < fitR

      fitR = fit(i);

      Xrb  = X(i,:);

    end

  end

  X_mu = mean(X,1);

  for i = 1:N

    E0 = -1 + 2 * rand();

    E  = 2 * E0 * (1 - (t / max_Iter)); 

    if abs(E) >= 1

      q = rand(); 

      if q >= 0.5

        k  = randi([1,N]);

        r1 = rand();

        r2 = rand();

        for d = 1:dim

          Xn = X(k,d) - r1 * abs(X(k,d) - 2 * r2 * X(i,d));

          S  = 1 / (1 + exp(-Xn));

          if rand() < S

            X(i,d)= 1;

          else 

            X(i,d) = 0;

          end

        end

      elseif q < 0.5

        r3 = rand();

        r4 = rand();

        for d = 1:dim

          Xn = (Xrb(d) - X_mu(d)) - r3 * (lb + r4 * (ub - lb));

          S  = 1 / (1 + exp(-Xn));

          if rand() < S

            X(i,d) = 1;

          else

            X(i,d) = 0;

          end

        end

      end

    elseif abs(E) < 1

      J = 2 * (1 - rand());

      r = rand();

      if r >= 0.5  &&  abs(E) >= 0.5

        for d = 1:dim

          DX = Xrb(d) - X(i,d);

          Xn = DX - E * abs(J * Xrb(d) - X(i,d));

          S  = 1 / (1 + exp(-Xn));

          if rand() < S

            X(i,d) = 1;

          else

            X(i,d) = 0;

          end

        end

      elseif r >= 0.5  &&  abs(E) < 0.5

        for d = 1:dim

          DX = Xrb(d) - X(i,d);

          Xn = Xrb(d) - E * abs(DX);

          S  = 1 / (1 + exp(-Xn));

          if rand() < S

            X(i,d) = 1;

          else

            X(i,d) = 0;

          end

        end

      elseif r < 0.5  &&  abs(E) >= 0.5

        LF = jLevyDistribution(beta,dim); 

        for d = 1:dim

          Yn = Xrb(d) - E * abs(J * Xrb(d) - X(i,d));

          S  = 1 / (1 + exp(-Yn));

          if rand() < S

            Y(d) = 1;

          else

            Y(d) = 0;

          end

          Zn = Y(d) + rand() * LF(d);

          S  = 1 / (1 + exp(-Zn));

          if rand() < S

            Z(d) = 1;

          else

            Z(d) = 0;

          end

        end

        fitY = fun(feat,label,Y,HO);

        fitZ = fun(feat,label,Z,HO);

        if fitY <= fit(i)

          fit(i) = fitY; 

          X(i,:) = Y;

        end

        if fitZ <= fit(i)

          fit(i) = fitZ;

          X(i,:) = Z;

        end

      elseif r < 0.5  &&  abs(E) < 0.5

        LF = jLevyDistribution(beta,dim); 

        for d = 1:dim

          Yn = Xrb(d) - E * abs(J * Xrb(d) - X_mu(d));

          S  = 1 / (1 + exp(-Yn));

          if rand() < S

            Y(d) = 1;

          else

            Y(d) = 0;

          end

          Zn = Y(d) + rand() * LF(d);

          S  = 1 / (1 + exp(-Zn));

          if rand() < S

            Z(d) = 1;

          else

            Z(d) = 0;

          end

        end

        fitY = fun(feat,label,Y,HO); 

        fitZ = fun(feat,label,Z,HO);

        if fitY <= fit(i)

          fit(i) = fitY; 

          X(i,:) = Y;

        end

        if fitZ <= fit(i)

          fit(i) = fitZ; 

          X(i,:) = Z;

        end        

      end

    end

  end

  curve(t) = fitR; 

  fprintf(’ Iteration %d Best (BHHO)= %f’,t,curve(t))

  t = t + 1;

end

Pos   = 1:dim;

Sf    = Pos(Xrb == 1);

Nf    = length(Sf);

sFeat = feat(:,Sf); 

end

function LF = jLevyDistribution(beta,dim)

nume  = gamma(1 + beta) * sin(pi * beta / 2);

deno  = gamma((1 + beta) / 2) * beta * 2 ^ ((beta - 1) / 2);

sigma = (nume / deno) ^ (1 / beta); 

u     = randn(1,dim) * sigma; 

v     = randn(1,dim);

step  = u ./ abs(v) .^ (1 / beta); 

LF    = 0.01 * step;

end

3 仿真結(jié)果

4 參考文獻

[1]朱昶勝, 康亮河, and 馮文芳. "基于自適應(yīng)鯨魚優(yōu)化算法結(jié)合Elman神經(jīng)網(wǎng)絡(luò)的股市收盤價預(yù)測算法." 計算機應(yīng)用 40.5(2020):9.

[2]郭劍鷹, 夏李瑋, and 劉華軍. "基于Elman神經(jīng)網(wǎng)絡(luò)預(yù)測的機動目標跟蹤濾波算法." 航天電子對抗 34.3(2018):6.

[3]郭雨鑫, 劉升, 高文欣, & 張磊. (2021). 多策略改進哈里斯鷹優(yōu)化算法. 微電子學(xué)與計算機, 38(7), 7.

天天Matlab

贊賞二維碼 微信掃一掃贊賞作者 贊賞

已喜歡, 對作者說句悄悄話
最多40字,當前共

  人贊賞

1 / 3

長按二維碼向我轉(zhuǎn)賬

贊賞二維碼

受蘋果公司新規(guī)定影響,微信 iOS 版的贊賞功能被關(guān)閉,可通過二維碼轉(zhuǎn)賬支持公眾號。

版權(quán):如無特殊注明,文章轉(zhuǎn)載自網(wǎng)絡(luò),侵權(quán)請聯(lián)系cnmhg168#163.com刪除!文件均為網(wǎng)友上傳,僅供研究和學(xué)習(xí)使用,務(wù)必24小時內(nèi)刪除。
相關(guān)推薦