資源簡介
使用神經網絡的MG時間序列預測,matlab代碼
代碼片段和文件信息
function?Mackey_Glass0
%基本MLP算法
%?麥克-格拉斯(Mackey-Glass)混沌延遲微分方程
%?Example:
%????Mackey_Glass;
N=60000;
t=zeros(N1);
x=zeros(N1);
a=0.2;b=0.1;
x(1)=1.2;
t(1)=0;
h=0.5;
tau=17;
for?k=1:N-1;
???t(k+1)=t(k)+h;
???if?t(k) ???????k1=-b*x(k);
???????k2=-b*(x(k)+h*k1/2);
???????k3=-b*(x(k)+k2*h/2);
???????k4=-b*(x(k)+k3*h);
???????x(k+1)=x(k)+(k1+2*k2+2*k3+k4)*h/6;
???else
???????n=floor((t(k)-tau-t(1))/h+1);
???????k1=Df(x(n))-b*x(k);
???????k2=Df(x(n))-b*(x(k)+h*k1/2);
???????k3=Df(x(n))-b*(x(k)+k2*h/2);
???????k4=Df(x(n))-b*(x(k)+k3*h);
???????x(k+1)=x(k)+(k1+2*k2+2*k3+k4)*h/6;
???end
end
SamNum=3000;?%訓練樣本數
TestSamNum=500;%測試樣本數
HiddenUnitNum=30;%隱節點數
InDim=4;%樣本輸入維數
OutDim=1;%樣本輸出維數
h=0.5;
%根據目標函數獲得樣本輸入輸出
rand(‘state‘sum(3000*clock));
NoiseVar=0.1;
Noise=NoiseVar*rand(1SamNum);
SamIn=rand(InDimSamNum);
SamOutNoNoise=rand(OutDimSamNum);
TestSamIn=rand(InDimTestSamNum);
TestSamOut=rand(OutDimTestSamNum);
for?k=201:3200
????SamIn(1k-200)=x((k-18)/h+1);
????SamIn(2k-200)=x((k-12)/h+1);
????SamIn(3k-200)=x((k-6)/h+1);
????SamIn(4k-200)=x((k)/h+1);
????SamOutNoNoise(k-200)=x((k+85)/h+1);
end
SamOut=SamOutNoNoise+Noise;
for?l=5001:5500
????TestSamIn(1l-5000)=x((l-18)/h+1);
????TestSamIn(2l-5000)=x((l-12)/h+1);
????TestSamIn(3l-5000)=x((l-6)/h+1);
????TestSamIn(4l-5000)=x((l)/h+1);
????TestSamOut(l-5000)=x((l+85)/h+1);
end
figure
hold?on
grid
mm=201:1:3200;
plot(mmSamOut‘k-‘)
ll=5001:5500;
plot(llTestSamOut‘k--‘)
MaxEpochs=3000;%最大訓練次
評論
共有 條評論