⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 volterra_main_luzhenbo.m

📁 Volterra自适应预测的 matlab 程序,用于自适应预测测试和混沌序列的相空间重构(转)
💻 M
字号:
% 混沌时间序列的 Volterra 自适应预测(一步预测) -- 主函数% 参考文献:朱昀.水声信号非线性分析方法研究.西北工业大学博士学位论文.2002.06% P28-38clcclearclose all% dx/dt = sigma*(y(t)-x(t))% dy/dt = r*x(t) - y(t) - x(t)*z(t)% dz/dt = -b*z(t) + x(t)*y(t)% y = [-1;0;1];                   % 起始点 (3x1 的列向量)% h = 0.01;                       % 积分时间步长% 积分方程用四阶 Runge-Kutta 法积分方程组得数值解% 数据除去前面 8000 个点,用后面 5000 个点load('LorenzData.mat')            % 加数 Lorenz 离散数据 x,y,z,共 5000 个点x = x(1:500);X = [x-mean(x)]/[max(x)-min(x)];  % 归一化到均值为 0,振幅为 1Times = 5e+3       % 最小二乘迭代次数tau = 10           % 重构时延m = 3              % 重构维数p = 3              % Volterra 级数阶数%--------------------------------------------------% 混沌序列的相空间重构 (phase space reconstruction)[xn,dn] = PhaSpaRecon(X,tau,m);% 输入参数:    s          混沌序列%               tau        重构时延%               m          重构维数% 输出参数:    xn         相空间中的点序列(每一列为相空间中一个点)%               dn         一步预测的目标%------------------------------------------------------interval = 4;[xn_train,dn_train,xn_test,dn_test] = TrainTestSample(interval,xn,dn);% 相空间中点的轨迹分解成:训练样本与测试样本% 在所有样本中,每隔 interval 个样本为训练样本,其余为测试样本%--------------------------------------------------% 训练与测试[Hn,len_Hn] = Volterra_train(xn_train,dn_train,p,Times);% 输入参数:    xn_train   训练样本(每一列为一个样本)%               dn_train   训练目标%               p          Volterra 级数阶数%               Times      最小二乘估计迭代次数% 输出参数:    Hn         最小二乘估计滤波器权矢量 Hn%          len_Hn   权矢量长度dn_pred = Volterra_test(xn_test,p,Hn);% 输入参数:    xn_test    测试样本%               p          Volterra 级数阶数%               Hn         最小二乘估计滤波器权矢量 Hn% 输出参数:    dn_pred  一步预测值err = dn_test - dn_pred;err_mse = sum(err.^2)/length(err)          % 预测的均方误差n = 1:length(dn_test);plot(n,dn_test,'r+:',n,dn_pred,'bo:')title('+为真值,o为预测值')

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -