Ejemplo Anfis

You might also like

You are on page 1of 2

Ejemplo Adaptive Neuro_Fuzzy Inference System

>> %Number of total data pairs


>> numPts=51;
>> x=linspace(-1,1,numPts)';
>> y=0.6*sin(pi*x)+0.3*sin(3*pi*x)+0.1*sin(5*pi*x); %Esta es la seal objetivo. El
sistema difuso se ajustar para seguir esta seal.
>> data=[x y]; %total data set
>> trnData=data(1:2:numPts,:); %training data set
>> chkData=data(2:2:numPts,:); %checking data set
>> plot(trnData(:,1),trnData(:,2),'o',...
chkData(:,1),chkData(:,2),'x')
Aqu se crea un sistena difuso
>> numMFs=5; %number of MFs
>> mfType='gbellmf'; %MF type is generalized bell
>> fismat=genfis1(trnData,numMFs,mfType); %creates a FIS matrix
>> [x, mf]=plotmf(fismat,'input',1);
>> plot(x,mf)
>> title('Initial Membership Functions')
>> plot(x,mf)
>> hold on
>> title('Initial Membership Functions')
>>hold off
Comienza el ajuste de l sistema difuso
>> numEpochs=40;
>> [fismat1,trnErr,ss,fismat2,chkErr]=...
anfis(trnData,fismat,numEpochs,NaN,chkData);
ANFIS info:
Number of nodes: 24
Number of linear parameters: 10
Number of nonlinear parameters: 15
Total number of parameters: 25
Number of training data pairs: 26
Number of checking data pairs: 25
Number of fuzzy rules: 5
Start training ANFIS ...
1
0.0601596
0.058193
2
0.0571745
0.0553133
3
0.0541812
0.0524169
4
0.0511445
0.0494663
5
0.0480347
0.0464298
Step size increases to 0.011000 after epoch 5.
6
0.0448293
0.0432847
7
0.0411744
0.0396855
8
0.0373731
0.0359407
9
0.0334245
0.0320729
Step size increases to 0.012100 after epoch 9.
10
0.0293435
0.0281343
11
0.0247583
0.023834
12
0.0202327
0.0197763
13
0.0161718
0.0163196
Step size increases to 0.013310 after epoch 13.

14
15
16
17
Step
18
19
20
21
22
Step
23
24
25
26
27
Step
28
29
30
31
Step
32
33
34
35
Step
36
37
38
39
Step
40

0.0134263
0.0125737
0.012536
0.0121838
size increases
0.0122131
0.0121333
0.011986
0.0119031
0.0117952
size increases
0.0117111
0.0119034
0.0115596
0.0117572
0.0114314
size decreases
0.0116339
0.0110481
0.0115121
0.0109605
size decreases
0.0114101
0.010686
0.0113023
0.0106231
size decreases
0.0112135
0.0104273
0.0111122
0.01038
size decreases
0.0110313

to

to

to

to

to

to

0.0140181
0.0132477
0.0132533
0.0130225
0.014641 after
0.012973
0.0129426
0.012762
0.0127117
0.0125807
0.016105 after
0.0125069
0.0126245
0.0123351
0.012487
0.0121863
0.014495 after
0.0123697
0.0118699
0.0122558
0.0117614
0.013045 after
0.0121587
0.0115333
0.0120576
0.0114493
0.011741 after
0.0119723
0.0112846
0.0118765
0.0112159
0.010567 after
0.0117976

epoch 17.

epoch 22.

epoch 27.

epoch 31.

epoch 35.

epoch 39.

Designated epoch number reached --> ANFIS training completed at epoch 40.
>>
>>
>>
>>
>>

trnOut=evalfis(trnData(:,1),fismat1);
trnRMSE=norm(trnOut - trnData(:,2))/sqrt(length(trnOut));
epoch=1:numEpochs;
plot(epoch,trnErr,'o',epoch,chkErr,'x')
hold on; plot(epoch,[trnErr,chkErr]); hold off

You might also like