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
66 | 64 | 60 | 58 |
64 | 60 | 58 | 17 |
60 | 58 | 17 | 49 |
58 | 17 | 49 | 34 |
17 | 49 | 34 | 17 |
49 | 34 | 17 | 8 |
34 | 17 | 8 | 53 |
17 | 8 | 53 | 15 |
8 | 53 | 15 | 15 |
53 | 15 | 15 | 45 |
15 | 15 | 45 | 57 |
15 | 45 | 57 | 33 |
45 | 57 | 33 | 42 |
57 | 33 | 42 | 8 |
33 | 42 | 8 | 52 |
42 | 8 | 52 | 24 |
8 | 52 | 24 | 29 |
52 | 24 | 29 | -13 |
24 | 29 | -13 | 37 |
29 | -13 | 37 | 37 |
-13 | 37 | 37 | 4 |
37 | 37 | 4 | 32 |
37 | 4 | 32 | 38 |
4 | 32 | 38 | 68 |
32 | 38 | 68 | 77 |
38 | 68 | 77 | 95 |
68 | 77 | 95 | 119 |
77 | 95 | 119 | 161 |
95 | 119 | 161 | 184 |
119 | 161 | 184 | 276 |
161 | 184 | 276 | 247 |
184 | 276 | 247 | 251 |
276 | 247 | 251 | 193 |
247 | 251 | 193 | 226 |
251 | 193 | 226 | 213 |
193 | 226 | 213 | 195 |
226 | 213 | 195 | 182 |
213 | 195 | 182 | 166 |
195 | 182 | 166 | 188 |
182 | 166 | 188 | 149 |
166 | 188 | 149 | 132 |
188 | 149 | 132 | 167 |
149 | 132 | 167 | 181 |
132 | 167 | 181 | 203 |
167 | 181 | 203 | 219 |
181 | 203 | 219 | 226 |
203 | 219 | 226 | 216 |
219 | 226 | 216 | 234 |
226 | 216 | 234 | 197 |
216 | 234 | 197 | 219 |
234 | 197 | 219 | 230 |
197 | 219 | 230 | 247 |
219 | 230 | 247 | 238 |
230 | 247 | 238 | 259 |
247 | 238 | 259 | 270 |
238 | 259 | 270 | 232 |
259 | 270 | 232 | 202 |
270 | 232 | 202 | 243 |
232 | 202 | 243 | 223 |
202 | 243 | 223 | 202 |
243 | 223 | 202 | 235 |
223 | 202 | 235 | 184 |
202 | 235 | 184 | 215 |
235 | 184 | 215 | 217 |
184 | 215 | 217 | 209 |
215 | 217 | 209 | 199 |
217 | 209 | 199 | 197 |
209 | 199 | 197 | 226 |
199 | 197 | 226 | 217 |
197 | 226 | 217 | 254 |
226 | 217 | 254 | 243 |
217 | 254 | 243 | 281 |
254 | 243 | 281 | 285 |
243 | 281 | 285 | 285 |
281 | 285 | 285 | 251 |
285 | 285 | 251 | 288 |
285 | 251 | 288 | 236 |
251 | 288 | 236 | 266 |
288 | 236 | 266 | 214 |
236 | 266 | 214 | 213 |
266 | 214 | 213 | 186 |
214 | 213 | 186 | 209 |
213 | 186 | 209 | 176 |
186 | 209 | 176 | 163 |
209 | 176 | 163 | 199 |
176 | 163 | 199 | 171 |
163 | 199 | 171 | 170 |
199 | 171 | 170 | 134 |
171 | 170 | 134 | 128 |
170 | 134 | 128 | 72 |
134 | 128 | 72 | 113 |
128 | 72 | 113 | 94 |
69 | 41 | 53 | 48 |
41 | 53 | 48 | 42 |
53 | 48 | 42 | 25 |
48 | 42 | 25 | 21 |
42 | 25 | 21 | 32 |
25 | 21 | 32 | 16 |
21 | 32 | 16 | 52 |
32 | 16 | 52 | 63 |
16 | 52 | 63 | 7 |
52 | 63 | 7 | 38 |
63 | 7 | 38 | 9 |
7 | 38 | 9 | 50 |
38 | 9 | 50 | 60 |
9 | 50 | 60 | 3 |
50 | 60 | 3 | 51 |
60 | 3 | 51 | -7 |
3 | 51 | -7 | 29 |
51 | -7 | 29 | 32 |
-7 | 29 | 32 | 21 |
29 | 32 | 21 | 46 |
32 | 21 | 46 | 50 |
21 | 46 | 50 | 38 |
46 | 50 | 38 | 26 |
50 | 38 | 26 | 49 |
38 | 26 | 49 | 64 |
26 | 49 | 64 | 73 |
49 | 64 | 73 | 114 |
64 | 73 | 114 | 182 |
73 | 114 | 182 | 239 |
114 | 182 | 239 | 242 |
182 | 239 | 242 | 233 |
239 | 242 | 233 | 255 |
242 | 233 | 255 | 240 |
233 | 255 | 240 | 211 |
255 | 240 | 211 | 225 |
240 | 211 | 225 | 207 |
211 | 225 | 207 | 176 |
225 | 207 | 176 | 190 |
207 | 176 | 190 | 158 |
176 | 190 | 158 | 153 |
190 | 158 | 153 | 169 |
158 | 153 | 169 | 152 |
153 | 169 | 152 | 165 |
169 | 152 | 165 | 197 |
152 | 165 | 197 | 226 |
165 | 197 | 226 | 236 |
197 | 226 | 236 | 226 |
226 | 236 | 226 | 221 |
236 | 226 | 221 | 209 |
226 | 221 | 209 | 175 |
221 | 209 | 175 | 226 |
209 | 175 | 226 | 255 |
175 | 226 | 255 | 229 |
226 | 255 | 229 | 279 |
255 | 229 | 279 | 234 |
229 | 279 | 234 | 259 |
279 | 234 | 259 | 225 |
234 | 259 | 225 | 215 |
259 | 225 | 215 | 199 |
225 | 215 | 199 | 188 |
215 | 199 | 188 | 194 |
199 | 188 | 194 | 214 |
188 | 194 | 214 | 222 |
194 | 214 | 222 | 222 |
214 | 222 | 222 | 186 |
222 | 222 | 186 | 241 |
222 | 186 | 241 | 251 |
186 | 241 | 251 | 247 |
241 | 251 | 247 | 208 |
251 | 247 | 208 | 233 |
247 | 208 | 233 | 263 |
208 | 233 | 263 | 274 |
233 | 263 | 274 | 254 |
263 | 274 | 254 | 267 |
274 | 254 | 267 | 281 |
254 | 267 | 281 | 259 |
267 | 281 | 259 | 258 |
281 | 259 | 258 | 225 |
259 | 258 | 225 | 211 |
258 | 225 | 211 | 240 |
225 | 211 | 240 | 227 |
211 | 240 | 227 | 227 |
240 | 227 | 227 | 172 |
227 | 227 | 172 | 171 |
227 | 172 | 171 | 161 |
172 | 171 | 161 | 180 |
171 | 161 | 180 | 142 |
161 | 180 | 142 | 164 |
180 | 142 | 164 | 96 |
142 | 164 | 96 | 73 |
164 | 96 | 73 | 91 |
96 | 73 | 91 | 92 |
31 | 38 | 28 | 44 |
38 | 28 | 44 | 65 |
28 | 44 | 65 | 46 |
44 | 65 | 46 | 13 |
65 | 46 | 13 | 28 |
46 | 13 | 28 | 6 |
13 | 28 | 6 | 33 |
28 | 6 | 33 | 30 |
6 | 33 | 30 | 65 |
33 | 30 | 65 | 54 |
30 | 65 | 54 | 33 |
65 | 54 | 33 | 56 |
54 | 33 | 56 | 9 |
33 | 56 | 9 | 22 |
56 | 9 | 22 | 51 |
9 | 22 | 51 | 47 |
22 | 51 | 47 | 31 |
51 | 47 | 31 | 22 |
47 | 31 | 22 | 9 |
31 | 22 | 9 | 49 |
22 | 9 | 49 | 4 |
9 | 49 | 4 | 44 |
49 | 4 | 44 | 57 |
4 | 44 | 57 | 85 |
44 | 57 | 85 | 77 |
57 | 85 | 77 | 115 |
85 | 77 | 115 | 158 |
77 | 115 | 158 | 165 |
115 | 158 | 165 | 216 |
158 | 165 | 216 | 279 |
165 | 216 | 279 | 241 |
216 | 279 | 241 | 215 |
279 | 241 | 215 | 220 |
241 | 215 | 220 | 192 |
215 | 220 | 192 | 211 |
220 | 192 | 211 | 185 |
192 | 211 | 185 | 185 |
211 | 185 | 185 | 192 |
185 | 185 | 192 | 201 |
185 | 192 | 201 | 155 |
192 | 201 | 155 | 178 |
201 | 155 | 178 | 165 |
155 | 178 | 165 | 198 |
178 | 165 | 198 | 162 |
165 | 198 | 162 | 202 |
198 | 162 | 202 | 240 |
162 | 202 | 240 | 210 |
202 | 240 | 210 | 199 |
240 | 210 | 199 | 221 |
210 | 199 | 221 | 208 |
199 | 221 | 208 | 218 |
221 | 208 | 218 | 235 |
208 | 218 | 235 | 211 |
218 | 235 | 211 | 241 |
235 | 211 | 241 | 240 |
211 | 241 | 240 | 220 |
241 | 240 | 220 | 241 |
240 | 220 | 241 | 242 |
220 | 241 | 242 | 202 |
241 | 242 | 202 | 224 |
242 | 202 | 224 | 184 |
202 | 224 | 184 | 221 |
224 | 184 | 221 | 184 |
184 | 221 | 184 | 216 |
221 | 184 | 216 | 207 |
184 | 216 | 207 | 239 |
216 | 207 | 239 | 226 |
207 | 239 | 226 | 230 |
239 | 226 | 230 | 258 |
226 | 230 | 258 | 232 |
230 | 258 | 232 | 247 |
258 | 232 | 247 | 288 |
232 | 247 | 288 | 243 |
247 | 288 | 243 | 309 |
288 | 243 | 309 | 252 |
243 | 309 | 252 | 271 |
309 | 252 | 271 | 256 |
252 | 271 | 256 | 251 |
271 | 256 | 251 | 222 |
256 | 251 | 222 | 228 |
251 | 222 | 228 | 229 |
222 | 228 | 229 | 172 |
228 | 229 | 172 | 171 |
229 | 172 | 171 | 219 |
172 | 171 | 219 | 195 |
171 | 219 | 195 | 164 |
219 | 195 | 164 | 155 |
195 | 164 | 155 | 118 |
164 | 155 | 118 | 107 |
155 | 118 | 107 | 86 |
118 | 107 | 86 | 78 |
107 | 86 | 78 | 55 |
input_text
28 | 71 | 21 | 69 |
71 | 21 | 69 | 34 |
21 | 69 | 34 | 11 |
69 | 34 | 11 | 27 |
34 | 11 | 27 | 49 |
11 | 27 | 49 | 50 |
27 | 49 | 50 | 36 |
49 | 50 | 36 | 45 |
50 | 36 | 45 | 58 |
36 | 45 | 58 | 9 |
45 | 58 | 9 | 22 |
58 | 9 | 22 | 5 |
9 | 22 | 5 | 12 |
22 | 5 | 12 | 42 |
5 | 12 | 42 | 38 |
12 | 42 | 38 | 44 |
42 | 38 | 44 | 23 |
38 | 44 | 23 | -11 |
44 | 23 | -11 | 44 |
23 | -11 | 44 | 41 |
-11 | 44 | 41 | 14 |
44 | 41 | 14 | 33 |
41 | 14 | 33 | 77 |
14 | 33 | 77 | 78 |
33 | 77 | 78 | 103 |
77 | 78 | 103 | 96 |
78 | 103 | 96 | 136 |
103 | 96 | 136 | 179 |
96 | 136 | 179 | 199 |
136 | 179 | 199 | 265 |
179 | 199 | 265 | 238 |
199 | 265 | 238 | 234 |
265 | 238 | 234 | 201 |
238 | 234 | 201 | 179 |
234 | 201 | 179 | 194 |
201 | 179 | 194 | 182 |
179 | 194 | 182 | 203 |
194 | 182 | 203 | 197 |
182 | 203 | 197 | 183 |
203 | 197 | 183 | 144 |
197 | 183 | 144 | 129 |
183 | 144 | 129 | 154 |
144 | 129 | 154 | 159 |
129 | 154 | 159 | 217 |
154 | 159 | 217 | 239 |
159 | 217 | 239 | 218 |
217 | 239 | 218 | 241 |
239 | 218 | 241 | 239 |
218 | 241 | 239 | 214 |
241 | 239 | 214 | 224 |
239 | 214 | 224 | 240 |
214 | 224 | 240 | 228 |
224 | 240 | 228 | 252 |
240 | 228 | 252 | 255 |
228 | 252 | 255 | 215 |
252 | 255 | 215 | 232 |
255 | 215 | 232 | 237 |
215 | 232 | 237 | 222 |
232 | 237 | 222 | 208 |
237 | 222 | 208 | 237 |
222 | 208 | 237 | 225 |
208 | 237 | 225 | 221 |
237 | 225 | 221 | 198 |
225 | 221 | 198 | 216 |
221 | 198 | 216 | 238 |
198 | 216 | 238 | 247 |
216 | 238 | 247 | 236 |
238 | 247 | 236 | 213 |
247 | 236 | 213 | 245 |
236 | 213 | 245 | 215 |
213 | 245 | 215 | 245 |
245 | 215 | 245 | 271 |
215 | 245 | 271 | 297 |
245 | 271 | 297 | 299 |
271 | 297 | 299 | 270 |
297 | 299 | 270 | 276 |
299 | 270 | 276 | 246 |
270 | 276 | 246 | 269 |
276 | 246 | 269 | 260 |
246 | 269 | 260 | 242 |
269 | 260 | 242 | 204 |
260 | 242 | 204 | 198 |
242 | 204 | 198 | 180 |
204 | 198 | 180 | 208 |
198 | 180 | 208 | 208 |
180 | 208 | 208 | 205 |
208 | 208 | 205 | 164 |
208 | 205 | 164 | 146 |
205 | 164 | 146 | 99 |
164 | 146 | 99 | 124 |
146 | 99 | 124 | 85 |
99 | 124 | 85 | 58 |
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
%% 该代码为基于小波神经网络的交通流预测代码
%
%
% 该案例作者申明: 1:本人长期驻扎在此板块里,对该案例提问,做到有问必答。本套书籍官方网站为:video.ourmatlab.com 2:点此从当当预定本书:《Matlab神经网络30个案例分析》。 3:此案例有配套的教学视频,视频下载方式video.ourmatlab.com/vbuy.html。
4:此案例为原创案例,转载请注明出处(《Matlab神经网络30个案例分析》)。 5:若此案例碰巧与您的研究有关联,我们欢迎您提意见,要求等,我们考虑后可以加在案例里。
%
%% 清空环境变量
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
%%
%
% 相关论坛:
《Matlab神经网络30个案例分析》官方网站:video.ourmatlab.com
Matlab技术论坛:www.matlabsky.com
Matlab函数百科:www.mfun.la
Matlab中文论坛:www.ilovematlab.com
%