小波神经网络预测代码

 cengcifenxi.m

clc
clear 
A=[1 5 3 7;1/5 1 1/3 3;1/3 3 1 5;1/7 1/3 1/5 1];
[m,n]=size(A);
RI=[0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49 1.51];
R=rank(A);
[V,D]=eig(A);
tz=max(D);
B=max(tz);
[row,col]=find(D==B);
C=V(:,col);
CI=(B-n)/(n-1);
CR=CI/RI(1,n);
if CR<0.10
    disp('CI=');disp(CI);
    disp('CR=');disp(CR);
    disp('矩阵通过一致性检验,各向量权重向量Q为:');
    Q=zeros(n,1);
    for i=1:n
        Q(i,1)=C(i,1)/sum(C(:,1));
    end
    Q
else
    disp('矩阵没有通过一致性检验,请重新构造');
end

d_mymorlet.m

function y=d_mymorlet(t)

y = -1.75*sin(1.75*t).*exp(-(t.^2)/2)-t* cos(1.75*t).*exp(-(t.^2)/2) ;

 mymorlet.m

%这里面用到的两个子程序分别是:
function y=mymorlet(t)

y = exp(-(t.^2)/2) * cos(1.75*t);

 shenjingwangluo.m

clc
clear 
P=[-1 -1 2 2 4;0 5 0 5 7];
T=[-1 -1 1 1 -1];
P1=[3;4];
net=newff(minmax(P),[5,1],{'tansig','purelin'},'trainrp');
net.trainParam.epochs=500;
net.trainParam.goal=0.000001;
net.trainParam.lr=0.05;
net.trainParam.show=20;
[net,tr]=train(net,P,T);
sim(net,P1)

 traffic_flux.mat

 input

66646058
64605817
60581749
58174934
17493417
4934178
3417853
1785315
8531515
53151545
15154557
15455733
45573342
5733428
3342852
4285224
8522429
522429-13
2429-1337
29-133737
-1337374
3737432
3743238
4323868
32386877
38687795
687795119
7795119161
95119161184
119161184276
161184276247
184276247251
276247251193
247251193226
251193226213
193226213195
226213195182
213195182166
195182166188
182166188149
166188149132
188149132167
149132167181
132167181203
167181203219
181203219226
203219226216
219226216234
226216234197
216234197219
234197219230
197219230247
219230247238
230247238259
247238259270
238259270232
259270232202
270232202243
232202243223
202243223202
243223202235
223202235184
202235184215
235184215217
184215217209
215217209199
217209199197
209199197226
199197226217
197226217254
226217254243
217254243281
254243281285
243281285285
281285285251
285285251288
285251288236
251288236266
288236266214
236266214213
266214213186
214213186209
213186209176
186209176163
209176163199
176163199171
163199171170
199171170134
171170134128
17013412872
13412872113
1287211394
69415348
41534842
53484225
48422521
42252132
25213216
21321652
32165263
1652637
5263738
637389
738950
3895060
950603
5060351
60351-7
351-729
51-72932
-7293221
29322146
32214650
21465038
46503826
50382649
38264964
26496473
496473114
6473114182
73114182239
114182239242
182239242233
239242233255
242233255240
233255240211
255240211225
240211225207
211225207176
225207176190
207176190158
176190158153
190158153169
158153169152
153169152165
169152165197
152165197226
165197226236
197226236226
226236226221
236226221209
226221209175
221209175226
209175226255
175226255229
226255229279
255229279234
229279234259
279234259225
234259225215
259225215199
225215199188
215199188194
199188194214
188194214222
194214222222
214222222186
222222186241
222186241251
186241251247
241251247208
251247208233
247208233263
208233263274
233263274254
263274254267
274254267281
254267281259
267281259258
281259258225
259258225211
258225211240
225211240227
211240227227
240227227172
227227172171
227172171161
172171161180
171161180142
161180142164
18014216496
1421649673
164967391
96739192
31382844
38284465
28446546
44654613
65461328
4613286
1328633
2863330
6333065
33306554
30655433
65543356
5433569
3356922
5692251
9225147
22514731
51473122
4731229
3122949
229494
949444
4944457
4445785
44578577
578577115
8577115158
77115158165
115158165216
158165216279
165216279241
216279241215
279241215220
241215220192
215220192211
220192211185
192211185185
211185185192
185185192201
185192201155
192201155178
201155178165
155178165198
178165198162
165198162202
198162202240
162202240210
202240210199
240210199221
210199221208
199221208218
221208218235
208218235211
218235211241
235211241240
211241240220
241240220241
240220241242
220241242202
241242202224
242202224184
202224184221
224184221184
184221184216
221184216207
184216207239
216207239226
207239226230
239226230258
226230258232
230258232247
258232247288
232247288243
247288243309
288243309252
243309252271
309252271256
252271256251
271256251222
256251222228
251222228229
222228229172
228229172171
229172171219
172171219195
171219195164
219195164155
195164155118
164155118107
15511810786
1181078678
107867855

input_text

28712169
71216934
21693411
69341127
34112749
11274950
27495036
49503645
50364558
3645589
4558922
589225
922512
2251242
5124238
12423844
42384423
384423-11
4423-1144
23-114441
-11444114
44411433
41143377
14337778
337778103
777810396
7810396136
10396136179
96136179199
136179199265
179199265238
199265238234
265238234201
238234201179
234201179194
201179194182
179194182203
194182203197
182203197183
203197183144
197183144129
183144129154
144129154159
129154159217
154159217239
159217239218
217239218241
239218241239
218241239214
241239214224
239214224240
214224240228
224240228252
240228252255
228252255215
252255215232
255215232237
215232237222
232237222208
237222208237
222208237225
208237225221
237225221198
225221198216
221198216238
198216238247
216238247236
238247236213
247236213245
236213245215
213245215245
245215245271
215245271297
245271297299
271297299270
297299270276
299270276246
270276246269
276246269260
246269260242
269260242204
260242204198
242204198180
204198180208
198180208208
180208208205
208208205164
208205164146
20516414699
16414699124
1469912485
991248558

 output

17
49
34
17
8
53
15
15
45
57
33
42
8
52
24
29
-13
37
37
4
32
38
68
77
95
119
161
184
276
247
251
193
226
213
195
182
166
188
149
132
167
181
203
219
226
216
234
197
219
230
247
238
259
270
232
202
243
223
202
235
184
215
217
209
199
197
226
217
254
243
281
285
285
251
288
236
266
214
213
186
209
176
163
199
171
170
134
128
72
113
94
78
42
25
21
32
16
52
63
7
38
9
50
60
3
51
-7
29
32
21
46
50
38
26
49
64
73
114
182
239
242
233
255
240
211
225
207
176
190
158
153
169
152
165
197
226
236
226
221
209
175
226
255
229
279
234
259
225
215
199
188
194
214
222
222
186
241
251
247
208
233
263
274
254
267
281
259
258
225
211
240
227
227
172
171
161
180
142
164
96
73
91
92
52
65
46
13
28
6
33
30
65
54
33
56
9
22
51
47
31
22
9
49
4
44
57
85
77
115
158
165
216
279
241
215
220
192
211
185
185
192
201
155
178
165
198
162
202
240
210
199
221
208
218
235
211
241
240
220
241
242
202
224
184
221
184
216
207
239
226
230
258
232
247
288
243
309
252
271
256
251
222
228
229
172
171
219
195
164
155
118
107
86
78
55
54

output_text 

34
11
27
49
50
36
45
58
9
22
5
12
42
38
44
23
-11
44
41
14
33
77
78
103
96
136
179
199
265
238
234
201
179
194
182
203
197
183
144
129
154
159
217
239
218
241
239
214
224
240
228
252
255
215
232
237
222
208
237
225
221
198
216
238
247
236
213
245
215
245
271
297
299
270
276
246
269
260
242
204
198
180
208
208
205
164
146
99
124
85
58
87

 wavenn.m

%% 该代码为基于小波神经网络的交通流预测代码
%
% <html>
% <table border="0" width="600px" id="table1">	<tr>		<td><b><font size="2">该案例作者申明:</font></b></td>	</tr>	<tr><td><span class="comment"><font size="2">1:本人长期驻扎在此<a target="_blank" href="http://www.ilovematlab.cn/forum-158-1.html"><font color="#0000FF">板块</font></a>里,对该案例提问,做到有问必答。本套书籍官方网站为:<a href="http://video.ourmatlab.com">video.ourmatlab.com</a></font></span></td></tr><tr>		<td><font size="2">2:点此<a href="http://union.dangdang.com/transfer/transfer.aspx?from=P-284318&backurl=http://www.dangdang.com/">从当当预定本书</a>:<a href="http://union.dangdang.com/transfer/transfer.aspx?from=P-284318&backurl=http://www.dangdang.com/">《Matlab神经网络30个案例分析》</a>。</td></tr><tr>	<td><p class="comment"></font><font size="2">3</font><font size="2">:此案例有配套的教学视频,视频下载方式<a href="http://video.ourmatlab.com/vbuy.html">video.ourmatlab.com/vbuy.html</a></font><font size="2">。 </font></p></td>	</tr>			<tr>		<td><span class="comment"><font size="2">		4:此案例为原创案例,转载请注明出处(《Matlab神经网络30个案例分析》)。</font></span></td>	</tr>		<tr>		<td><span class="comment"><font size="2">		5:若此案例碰巧与您的研究有关联,我们欢迎您提意见,要求等,我们考虑后可以加在案例里。</font></span></td>	</tr>		</table>
% </html>

%% 清空环境变量
clc
clear

%% 网络参数配置
load traffic_flux input output input_test output_test

M=size(input,2); %输入节点个数
N=size(output,2); %输出节点个数

n=6; %隐形节点个数
lr1=0.01; %学习概率
lr2=0.001; %学习概率
maxgen=100; %迭代次数

%权值初始化
Wjk=randn(n,M);Wjk_1=Wjk;Wjk_2=Wjk_1;
Wij=randn(N,n);Wij_1=Wij;Wij_2=Wij_1;
a=randn(1,n);a_1=a;a_2=a_1;
b=randn(1,n);b_1=b;b_2=b_1;

%节点初始化
y=zeros(1,N);
net=zeros(1,n);
net_ab=zeros(1,n);

%权值学习增量初始化
d_Wjk=zeros(n,M);
d_Wij=zeros(N,n);
d_a=zeros(1,n);
d_b=zeros(1,n);

%% 输入输出数据归一化
[inputn,inputps]=mapminmax(input');
[outputn,outputps]=mapminmax(output'); 
inputn=inputn';
outputn=outputn';

error=zeros(1,maxgen);
%% 网络训练
for i=1:maxgen
    
    %误差累计
    error(i)=0;
    
    % 循环训练
    for kk=1:size(input,1)
        x=inputn(kk,:);
        yqw=outputn(kk,:);
   
        for j=1:n
            for k=1:M
                net(j)=net(j)+Wjk(j,k)*x(k);
                net_ab(j)=(net(j)-b(j))/a(j);
            end
            temp=mymorlet(net_ab(j));
            for k=1:N
                y=y+Wij(k,j)*temp;   %小波函数
            end
        end
        
        %计算误差和
        error(i)=error(i)+sum(abs(yqw-y));
        
        %权值调整
        for j=1:n
            %计算d_Wij
            temp=mymorlet(net_ab(j));
            for k=1:N
                d_Wij(k,j)=d_Wij(k,j)-(yqw(k)-y(k))*temp;
            end
            %计算d_Wjk
            temp=d_mymorlet(net_ab(j));
            for k=1:M
                for l=1:N
                    d_Wjk(j,k)=d_Wjk(j,k)+(yqw(l)-y(l))*Wij(l,j) ;
                end
                d_Wjk(j,k)=-d_Wjk(j,k)*temp*x(k)/a(j);
            end
            %计算d_b
            for k=1:N
                d_b(j)=d_b(j)+(yqw(k)-y(k))*Wij(k,j);
            end
            d_b(j)=d_b(j)*temp/a(j);
            %计算d_a
            for k=1:N
                d_a(j)=d_a(j)+(yqw(k)-y(k))*Wij(k,j);
            end
            d_a(j)=d_a(j)*temp*((net(j)-b(j))/b(j))/a(j);
        end
        
        %权值参数更新      
        Wij=Wij-lr1*d_Wij;
        Wjk=Wjk-lr1*d_Wjk;
        b=b-lr2*d_b;
        a=a-lr2*d_a;
    
        d_Wjk=zeros(n,M);
        d_Wij=zeros(N,n);
        d_a=zeros(1,n);
        d_b=zeros(1,n);

        y=zeros(1,N);
        net=zeros(1,n);
        net_ab=zeros(1,n);
        
        Wjk_1=Wjk;Wjk_2=Wjk_1;
        Wij_1=Wij;Wij_2=Wij_1;
        a_1=a;a_2=a_1;
        b_1=b;b_2=b_1;
    end
end

%% 网络预测
%预测输入归一化
x=mapminmax('apply',input_test',inputps);
x=x';
yuce=zeros(92,1);
%网络预测
for i=1:92
    x_test=x(i,:);

    for j=1:1:n
        for k=1:1:M
            net(j)=net(j)+Wjk(j,k)*x_test(k);
            net_ab(j)=(net(j)-b(j))/a(j);
        end
        temp=mymorlet(net_ab(j));
        for k=1:N
            y(k)=y(k)+Wij(k,j)*temp ; 
        end
    end

    yuce(i)=y(k);
    y=zeros(1,N);
    net=zeros(1,n);
    net_ab=zeros(1,n);
end
%预测输出反归一化
ynn=mapminmax('reverse',yuce,outputps);

%% 结果分析
figure(1)
plot(ynn,'r*:')
hold on
plot(output_test,'bo--')
title('预测交通流量','fontsize',12)
legend('预测交通流量','实际交通流量','fontsize',12)
xlabel('时间点')
ylabel('交通流量')

web browser www.matlabsky.com
%%
% <html>
% <table width="656" align="left" >	<tr><td align="center"><p><font size="2"><a href="http://video.ourmatlab.com/">Matlab神经网络30个案例分析</a></font></p><p align="left"><font size="2">相关论坛:</font></p><p align="left"><font size="2">《Matlab神经网络30个案例分析》官方网站:<a href="http://video.ourmatlab.com">video.ourmatlab.com</a></font></p><p align="left"><font size="2">Matlab技术论坛:<a href="http://www.matlabsky.com">www.matlabsky.com</a></font></p><p align="left"><font size="2">M</font><font size="2">atlab函数百科:<a href="http://www.mfun.la">www.mfun.la</a></font></p><p align="left"><font size="2">Matlab中文论坛:<a href="http://www.ilovematlab.com">www.ilovematlab.com</a></font></p></td>	</tr></table>
% </html>

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值