✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。​

⛄ 内容介绍

混沌时间序列的频谱状态丰富,能在不同状态下反映信号的激励特性,所以常用作预测建模的测量序列.传统的混沌时间序列的结构选择往往依赖于经验,无法充分反映混沌系统的特性,容易导致模型的推广范围较窄.针对以上问题,提出了一种基于RBF网络的Mackey-Glass与Lorenz混沌时间序列预测模型,利用模型结构选择方法来充分反映混沌系统的时序特性,并通过模型优化等策略提高模型的泛化能力.结果表明,模型结构选择方法能有效提高混沌时间序列的预测精度,具有良好的应用前景.

⛄ 部分代码

clc

clear all

close all


ST_RBF = load('ST_RBF.mat');

RBF = load('RBF.mat');


%%  Results

% Input and output signals (training phase)

figure

plot(ST_RBF.indt,ST_RBF.f_train,'k','linewidth',ST_RBF.lw);

hold on;

% plot(RBF.indt,RBF.f_train,'r','linewidth',RBF.lw);

plot(RBF.indt,RBF.y_train,'.:b','linewidth',RBF.lw);

plot(ST_RBF.indt,ST_RBF.y_train,'--r','linewidth',ST_RBF.lw);

xlim([ST_RBF.start_of_series_tr+ST_RBF.time_steps ST_RBF.end_of_series_tr]);

h=legend('Actual Value (Training)','RBF Predicted (Training)','ST-RBF Predicted (Training)','Location','Best');

grid minor

xlabel('Sample #','FontSize',ST_RBF.fsize);

ylabel('Magnitude','FontSize',ST_RBF.fsize);

set(h,'FontSize',12)

set(gca,'FontSize',13)

saveas(gcf,strcat('Time_SeriesTraining.png'),'png')


% Input and output signals (test phase)

figure

plot(ST_RBF.indts,ST_RBF.f_test,'k','linewidth',ST_RBF.lw);

hold on;

plot(RBF.indts,RBF.y_test,'.:b','linewidth',RBF.lw);

plot(ST_RBF.indts,ST_RBF.y_test,'--r','linewidth',ST_RBF.lw);

xlim([ST_RBF.start_of_series_ts+ST_RBF.time_steps ST_RBF.end_of_series_ts]);

h=legend('Actual Value (Testing)','RBF Predicted (Testing)','ST-RBF Predicted (Testing)','Location','Best');

grid minor

xlabel('Sample #','FontSize',ST_RBF.fsize);

ylabel('Magnitude','FontSize',ST_RBF.fsize);

set(h,'FontSize',12)

set(gca,'FontSize',13)

saveas(gcf,strcat('Time_SeriesTesting.png'),'png')


% Objective function (MSE) (training phase)

figure

plot(RBF.start_of_series_tr:RBF.end_of_series_tr-1,10*log10(RBF.I(1:RBF.end_of_series_tr-RBF.start_of_series_tr)),'+-b','linewidth',RBF.lw)

hold on

plot(ST_RBF.start_of_series_tr:ST_RBF.end_of_series_tr-1,10*log10(ST_RBF.I(1:ST_RBF.end_of_series_tr-ST_RBF.start_of_series_tr)),'+-r','linewidth',ST_RBF.lw)

h=legend('RBF (Training)','ST-RBF (Training)','Location','North');

grid minor

xlabel('Sample #','FontSize',ST_RBF.fsize);

ylabel('MSE (dB)','FontSize',ST_RBF.fsize);

set(h,'FontSize',12)

set(gca,'FontSize',13)

saveas(gcf,strcat('Time_SeriesTrainingMSE.png'),'png')


% Objective function (MSE) (test phase)

figure

plot(RBF.start_of_series_ts+RBF.time_steps:RBF.end_of_series_ts,10*log10(RBF.I(RBF.end_of_series_tr-RBF.start_of_series_tr+1:end)),'.:b','linewidth',RBF.lw+1)

hold on

plot(ST_RBF.start_of_series_ts+ST_RBF.time_steps:ST_RBF.end_of_series_ts,10*log10(ST_RBF.I(ST_RBF.end_of_series_tr-ST_RBF.start_of_series_tr+1:end)),'.:r','linewidth',ST_RBF.lw+1)

h=legend('RBF (Testing)','ST-RBF (Testing)','Location','South');

grid minor

xlabel('Sample #','FontSize',ST_RBF.fsize);

ylabel('MSE (dB)','FontSize',ST_RBF.fsize);

set(h,'FontSize',12)

set(gca,'FontSize',13)

saveas(gcf,strcat('Time_SeriesTestingMSE.png'),'png')



% Mean square error

[[10*log10(((RBF.f_train'-RBF.y_train)*(RBF.f_train'-RBF.y_train)')/length(RBF.y_train)) ...

10*log10(((RBF.f_test'-RBF.y_test)*(RBF.f_test'-RBF.y_test)')/length(RBF.y_test))];

[10*log10(((ST_RBF.f_train'-ST_RBF.y_train)*(ST_RBF.f_train'-ST_RBF.y_train)')/length(ST_RBF.y_train)) ...

10*log10(((ST_RBF.f_test'-ST_RBF.y_test)*(ST_RBF.f_test'-ST_RBF.y_test)')/length(ST_RBF.y_test))]]

⛄ 运行结果

【RBF预测】基于时空 RBF-NN 实现混沌时间序列预测附matlab代码_时间序列

【RBF预测】基于时空 RBF-NN 实现混沌时间序列预测附matlab代码_时间序列_02

【RBF预测】基于时空 RBF-NN 实现混沌时间序列预测附matlab代码_个人主页_03

【RBF预测】基于时空 RBF-NN 实现混沌时间序列预测附matlab代码_神经网络_04

⛄ 参考文献

[1]杨杰, 卢凌. 基于RBF径向神经网络的混沌时间序列预测[J]. 交通信息与安全, 1999, 017(001):37-39.

[2]陈伟, 冯斌, 孙俊. 基于QPSO-RBF NN的混沌时间序列预测[J]. 计算机应用研究, 2007.

❤️ 关注我领取海量matlab电子书和数学建模资料
❤️部分理论引用网络文献,若有侵权联系博主删除