📄 liner_net.m
字号:
%线性网络预测,可以解决简单的非线性问题给定线性网络信息越多就越逼近非线性问题得到的误差就越小
%定义一个信号T采样率每秒40次,持续5秒钟的正弦信号
%***************************************
Time=0:0.025:5;
T=sin(Time*4*pi);
Q=length(T);
%在任意时刻给网络输入最近T的五个值,希望网络能据这五个值输出下一个值
%将T延迟1-5个时间步长就可得到网络的输入P
%***************************************
P=zeros(5,Q);
P(1,2:Q)=T(1,1:(Q-1));
P(2,3:Q)=T(1,1:(Q-2));
P(3,4:Q)=T(1,1:(Q-3));
P(4,5:Q)=T(1,1:(Q-4));
P(5,6:Q)=T(1,1:(Q-5));
plot(Time,T);
title('信号T');
xlabel('时间');
ylabel('目标信号');
%据要求就要设计一个具有五个输入的单神经元和一个输出神经元的网络分类器
%****************************************
net=newlind(P,T); %设计网络分类器
%****************************************
%将上面五个信号作为输入的测试信号利用仿真函数sim得到网络分类器运算的结果a
a=sim(net,P);
%****************************************
%给出网络预测输出
figure;
plot(Time,a);
title('预测结果');
xlabel('时间');
ylabel('预测值');
%****************************************
%求出预测误差e=T-a并给出曲线
e=T-a;
figure;
plot(Time,e);
title('误差');
xlabel('时间');
ylabel('误差值');
%发现刚开始一段时间里网络误差较大但很段时间后趋于0是因为开始的几个时间步长里网络输入信号不完整所造成.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -