www.gusucode.com > nnet 案例源码 matlab代码程序 > nnet/applin1.m

    %% Linear Prediction Design
% This example illustrates how to design a linear neuron to predict
% the next value in a time series given the last five values.

% Copyright 1992-2012 The MathWorks, Inc.

%% Defining a Wave Form
% Here time is defined from 0 to 5 seconds in steps of 1/40 of
% a second.

time = 0:0.025:5;

%%
% We can define a signal with respect to time.

signal = sin(time*4*pi);
plot(time,signal)
xlabel('Time');
ylabel('Signal');
title('Signal to be Predicted');

%% Setting up the Problem for a Neural Network
% The signal convert is then converted to a cell array.  Neural Networks
% represent timesteps as columns of a cell array, do distinguish them from
% different samples at a given time, which are represented with columns
% of matrices.

signal = con2seq(signal);

%%
% To set up the problem we will use the first four values of the
% signal as initial input delay states, and the rest except for the
% last step as inputs.

Xi = signal(1:4);
X = signal(5:(end-1));
timex = time(5:(end-1));

%%
% The targets are now defined to match the inputs, but shifted earlier
% by one timestep.

T = signal(6:end);

%% Designing the Linear Layer
% The function *newlind* will now design a linear layer with a single
% neuron which predicts the next timestep of the signal given the current
% and four past values.

net = newlind(X,T,Xi);
view(net)

%% Testing the Linear Layer
% The network can now be called like a function on the inputs and delayed
% states to get its time response.

Y = net(X,Xi);

%%
% The output signal is plotted with the targets.

figure
plot(timex,cell2mat(Y),timex,cell2mat(T),'+')
xlabel('Time');
ylabel('Output -  Target +');
title('Output and Target Signals');

%%
% The error can also be plotted.

figure
E = cell2mat(T)-cell2mat(Y);
plot(timex,E,'r')
hold off
xlabel('Time');
ylabel('Error');
title('Error Signal');

%%
% Notice how small the error is!
%
% This example illustrated how to design a dynamic linear network which
% can predict a signal's next value from current and past values.