lsy_iori 发表于 2006-5-16 15:33

[分享]神经网络程序

function y=bp_net(x)
%-----------------------------------------------
%经十路与山大路交叉口,星期一由东向西的车流量
P=[320 352 311 330 268 295 317 286 ;
   352 311 330 268 295 317 286 295 ;
   311 330 268 295 317 286 295 310 ;
   330 268 295 317 286 295 310 326 ;
   268 295 317 286 295 310 326 332 ;
   295 317 286 295 310 326 332 361 ;
   317 286 295 310 326 332 361 347 ;
   286 295 310 326 332 361 347 305 ;
   295 310 326 332 361 347 305 287 ;
   310 326 332 361 347 305 287 296 ;
   326 332 361 347 305 287 296 311 ;
   332 361 347 305 287 296 311 287 ;
   361 347 305 287 296 311 287 256 ;
   347 305 287 296 311 287 256 229 ;
   305 287 296 311 287 256 229 184 ;
   287 296 311 287 256 229 184 176 ;
   296 311 287 256 229 184 176 130 ;
   311 287 256 229 184 176 130 157 ;
   287 256 229 184 176 130 157 234 ;
   256 229 184 176 130 157 234 250 ;
   229 184 176 130 157 234 250 267 ;
   184 176 130 157 234 250 267 253 ;
   176 130 157 234 250 267 253 306 ;
   130 157 234 250 267 253 306 347 ;
   157 234 250 267 253 306 347 290 ;
   234 250 267 253 306 347 290 336 ;
   250 267 253 306 347 290 336 229 ;
   267 253 306 347 290 336 229 263 ;
   253 306 347 290 336 229 263 230 ;
   306 347 290 336 229 263 230 257 ;
   347 290 336 229 263 230 257 211 ;
   290 336 229 263 230 257 211 193 ;
   336 229 263 230 257 211 193 201 ;
   229 263 230 257 211 193 201 236 ;
   263 230 257 211 193 201 236 266 ;
   230 257 211 193 201 236 266 347 ;
   257 211 193 201 236 266 347 206 ;
   211 193 201 236 266 347 206 211 ;
   193 201 236 266 347 206 211 217 ;
   201 236 266 347 206 211 217 245 ;
   236 266 347 206 211 217 245 230 ;
   266 347 206 211 217 245 230 219 ;
   347 206 211 217 245 230 219 183 ;
   206 211 217 245 230 219 183 156 ;
   211 217 245 230 219 183 156 130 ;%Monday
   344 367 329 343 277 296 302 269 ;
   367 329 343 277 296 302 269 305 ;
   329 343 277 296 302 269 305 317 ;
   343 277 296 302 269 305 317 344 ;
   277 296 302 269 305 317 344 320 ;
   296 302 269 305 317 344 320 331 ;
   302 269 305 317 344 320 331 357 ;
   269 305 317 344 320 331 357 310 ;
   305 317 344 320 331 357 310 298 ;
   317 344 320 331 357 310 298 287 ;
   344 320 331 357 310 298 287 266 ;
   320 331 357 310 298 287 266 256 ;
   331 357 310 298 287 266 256 221 ;
   357 310 298 287 266 256 221 148 ;
   310 298 287 266 256 221 148 184 ;
   298 287 266 256 221 148 184 130 ;
   287 266 256 221 148 184 130 107 ;
   266 256 221 148 184 130 107 186 ;
   256 221 148 184 130 107 186 177 ;
   221 148 184 130 107 186 177 255 ;
   148 184 130 107 186 177 255 277 ;
   184 130 107 186 177 255 277 237 ;
   130 107 186 177 255 277 237 314 ;
   107 186 177 255 277 237 314 351 ;
   186 177 255 277 237 314 351 287 ;
   177 255 277 237 314 351 287 362 ;
   255 277 237 314 351 287 362 327 ;
   277 237 314 351 287 362 327 258 ;
   237 314 351 287 362 327 258 235 ;
   314 351 287 362 327 258 235 241 ;
   351 287 362 327 258 235 241 205 ;
   287 362 327 258 235 241 205 195 ;
   362 327 258 235 241 205 195 203 ;
   327 258 235 241 205 195 203 201 ;
   258 235 241 205 195 203 201 203 ;
   235 241 205 195 203 201 203 213 ;
   241 205 195 203 201 203 213 217 ;
   205 195 203 201 203 213 217 235 ;
   195 203 201 203 213 217 235 230 ;
   203 201 203 213 217 235 230 221 ;
   201 203 213 217 235 230 221 153 ;
   203 213 217 235 230 221 153 122 ;
   213 217 235 230 221 153 122 130 ;%Tuesday
   325 330 356 381 343 322 327 299 ;
   330 356 381 343 322 327 299 337 ;
   356 381 343 322 327 299 337 324 ;
   381 343 322 327 299 337 324 320 ;
   343 322 327 299 337 324 320 311 ;
   322 327 299 337 324 320 311 340 ;
   327 299 337 324 320 311 340 325 ;
   299 337 324 320 311 340 325 333 ;
   337 324 320 311 340 325 333 312 ;
   324 320 311 340 325 333 312 289 ;
   320 311 340 325 333 312 289 267 ;
   311 340 325 333 312 289 267 259 ;
   340 325 333 312 289 267 259 262 ;
   325 333 312 289 267 259 262 180 ;
   333 312 289 267 259 262 180 165 ;
   312 289 267 259 262 180 165 125 ;
   289 267 259 262 180 165 125 127 ;
   267 259 262 180 165 125 127 108 ;
   259 262 180 165 125 127 108 115 ;
   262 180 165 125 127 108 115 140 ;
   180 165 125 127 108 115 140 180 ;
   165 125 127 108 115 140 180 202 ;
   125 127 108 115 140 180 202 208 ;
   127 108 115 140 180 202 208 175 ;
   108 115 140 180 202 208 175 189 ;
   115 140 180 202 208 175 189 192 ;
   140 180 202 208 175 189 192 206 ;
   180 202 208 175 189 192 206 201 ;
   202 208 175 189 192 206 201 200 ;
   208 175 189 192 206 201 200 202 ;
   175 189 192 206 201 200 202 211 ;
   189 192 206 201 200 202 211 200 ;
   192 206 201 200 202 211 200 197 ;
   206 201 200 202 211 200 197 180 ;
   201 200 202 211 200 197 180 176 ;
   200 202 211 200 197 180 176 150 ;
   202 211 200 197 180 176 150 154 ;
   211 200 197 180 176 150 154 198 ;
   200 197 180 176 150 154 198 220 ;
   197 180 176 150 154 198 220 250 ;
   180 176 150 154 198 220 250 220 ;
   176 150 154 198 220 250 220 180 ;
   150 154 198 220 250 220 180 140 ;
   154 198 220 250 220 180 140 125 ;
   198 220 250 220 180 140 125 122];
T=[295 310 326 332 361 347 305 287 296 311 287 256 229 184 176 130 157 234 ...
   250 267 253 306 347 290 336 229 263 230 257 211 193 201 236 266 347 206 211 217 245 230 219 183 156 130 129 ...
   305 317 344 320 331 357 310 298 287 362 327 258 235 241 205 195 203 362 266 256 221 148 184 130 107 186 177 ...
   255 277 237 314 351 287 362 327 258 235 241 205 195 203 201 213 217 235 230 221 153 122 130...
   337 324 320 311 340 325 333 312 289 267 259 262 180 165 125 127 108 115 ...
   140 180 202 208 175 189 192 206 201 200 202 211 200 197 180 176 150 154 198 220 250 220 180 140 125 122 121];
% 归一化以上两个矩阵,车辆范围150~400
t1=length(P)
t2=length(T)

min=100;max=370;
for i=1:t1
    for j=1:8
      P(i,j)=(P(i,j)-min)/(max-min);
    end
    T(i)=(T(i)-min)/(max-min);
end

S1=17;%13;%隐层节点个数
S2=2;
=initff(P',S1,'tansig',T,'purelin')%初始化网络,最多三层
%=initff(P,S1,'tansig',S2,'purelin');
% k=pickic;
% if k==2
% %         w1=;
% %         b1=[-0.3781;0.3062];
% %         w2=;
% %         b2=[-0.1772];
% %--------------------------------------------------------------------------
% %---------------------------------------------------100
% w1=[2.4063    2.7415    1.4561   -2.5735    4.0384    2.3961   -1.8559   0.4239;
%    -2.7761   -1.3457    0.9658    0.0149   -2.0444   -3.4898   -2.3073-2.7993;
%   3.2467    1.6495    4.6956    1.0841   -3.2989   -0.7979   -1.2666-0.9117;
%   1.3622    4.2306    0.9504   -3.0748   -2.9399   -1.7217    1.5410-1.2017;
%   0.0188   -1.9732    1.7077   -1.7858    1.6021   -3.9084   -3.3716-1.9279;
%    -1.2426   -3.4794    2.5151    3.7008    3.7426   -1.4297   -0.9531-1.2012;
%   0.0401    2.2170   -4.3445   -2.6141   -1.9640   -0.4439   -2.4358   3.4639;
%    -2.2584    3.1693   -3.9980   -2.6921   -2.6064    0.4021    0.9890-1.5112;
%    -3.0588    2.2151    0.1952   -2.4010   -2.5893    1.3482    1.5322-3.3741;
%    -2.6333   -2.3508    2.2585    1.3113   -2.7351   -1.5705    3.5988   1.7061;
%    -2.3524    3.1016    2.1774    1.1169   -3.2643    0.0554    1.9463-3.0639;
%    -1.2864    1.2364   -4.2832   -2.6603   -2.8947   -0.5233    2.6459   3.1057;
%   0.1316    1.8756    2.2655    4.9274    0.3631    0.3435    3.4166-2.8535;
%    -0.9200    1.9676    2.9861    3.0741   -2.7440    1.4456    4.4996   0.1083;
%   1.4444    0.1330   -1.6620   -5.7574    0.6894   -1.2357   -2.2234-3.6448;
%    -3.4055    1.9742    1.7287   -0.7171   -2.9113    2.4279   -0.3615   3.1177;
%   1.5182   -0.9803    0.9349   -0.9522    1.4335    5.3663    3.1944-0.4715];
%
% b1=[-5.5205;9.0924;-2.4769;0.6689;6.7549;-2.8945;3.7084;5.9825;4.0662;1.1158;0.4256;1.6425;-7.0904;-5.1974;6.3409;-1.5962;-6.4703];
% w2=;
% b2=-0.1783;
% %--------------------------------------------------------------------------
% end

% df=10;
% me=1000;%800;
% eg=0.0001;%0.00005
% lr=0.02;
% tp=;
% =trainlm(w1,b1,'tansig',w2,b2,'purelin',P',T,tp);
% =trainbp(w1,b1,'tansig',w2,b2,'tansig',w3,b3,'purelin',P,T,tp);
disp_fqre=10;max_epoch=100;err_goal=0.0005;spread=1.0;
TP=;
=solverb(P',T,TP);
w1;
b1;
w2;
b2;
nr
y=[w1(1,:) b1(1) w1(2,:) b1(2) w1(3,:) b1(3) w1(4,:) b1(4) w1(5,:) b1(5) w1(6,:) b1(6) w1(7,:) b1(7) w1(8,:) b1(8) ...
   w1(9,:) b1(9) w1(10,:) b1(10) w1(11,:) b1(11) w1(12,:) b1(12) w1(13,:) b1(13) w1(14,:) b1(14) w1(15,:) b1(15) w1(16,:) b1(16) w1(17,:) b1(17) w2 b2];
P=;%;
T=296;


    for j=1:8
      P(j)=(P(j)-min)/(max-min);
    end

a1=radbas(dist(w1,P),b1)

a2=purelin(w2*a1,b2)
%----------输出---------------------------
y=a2*(max-min)+min

function y=bp_net1(x)
p=-1:0.1:1;
t=[-0.96 -0.577 -0.0729 0.377 0.641 0.66 0.461 0.1336 -0.201 -0.434 -0.5 -0.393 -0.1647 0.0988 0.3072 0.396 0.3449 0.1816 -0.0312 -0.2183 -0.3201];
=size(p);
=size(t);
S1=5;
=rands(S1,R);
=rands(S2,S1);
A2=purelin(w2*tansig(w1*p,b1),b2)
disp_fqre=10;max_epoch=18000;err_goal=1.0;lr=0.5;
TP=;
=trainbp(w1,b1,'tansig',w2,b2,'purelin',p,t,TP)

[ 本帖最后由 风花雪月 于 2006-10-25 06:16 编辑 ]

lsy_iori 发表于 2006-5-17 10:58

function y=bp_net2(x)
clf reset
figure(gcf)
colordef(gcf,'white')
% setsize(500,200);
echo on
clc
pause
%-----------------------------------------------
%经十路与山大路交叉口,星期一由东向西的车流量
P=[320 352 311 330 268 295 317 286 ;
   352 311 330 268 295 317 286 295 ;
   311 330 268 295 317 286 295 310 ;
   330 268 295 317 286 295 310 326 ;
   268 295 317 286 295 310 326 332 ;
   295 317 286 295 310 326 332 361 ;
   317 286 295 310 326 332 361 347 ;
   286 295 310 326 332 361 347 305 ;
   295 310 326 332 361 347 305 287 ;
   310 326 332 361 347 305 287 296 ;
   326 332 361 347 305 287 296 311 ;
   332 361 347 305 287 296 311 287 ;
   361 347 305 287 296 311 287 256 ;
   347 305 287 296 311 287 256 229 ;
   305 287 296 311 287 256 229 184 ;
   287 296 311 287 256 229 184 176 ;
   296 311 287 256 229 184 176 130 ;
   311 287 256 229 184 176 130 157 ;
   287 256 229 184 176 130 157 234 ;
   256 229 184 176 130 157 234 250 ;
   229 184 176 130 157 234 250 267 ;
   184 176 130 157 234 250 267 253 ;
   176 130 157 234 250 267 253 306 ;
   130 157 234 250 267 253 306 347 ;
   157 234 250 267 253 306 347 290 ;
   234 250 267 253 306 347 290 336 ;
   250 267 253 306 347 290 336 229 ;
   267 253 306 347 290 336 229 263 ;
   253 306 347 290 336 229 263 230 ;
   306 347 290 336 229 263 230 257 ;
   347 290 336 229 263 230 257 211 ;
   290 336 229 263 230 257 211 193 ;
   336 229 263 230 257 211 193 201 ;
   229 263 230 257 211 193 201 236 ;
   263 230 257 211 193 201 236 266 ;
   230 257 211 193 201 236 266 347 ;
   257 211 193 201 236 266 347 206 ;
   211 193 201 236 266 347 206 211 ;
   193 201 236 266 347 206 211 217 ;
   201 236 266 347 206 211 217 245];
T=[295 310 326 332 361 347 305 287 296 311 287 256 229 184 176 130 157 234 ...
    250 267 253 306 347 290 336 229 263 230 257 211 193 201 236 266 347 206 211 217 245 230];
% 归一化以上两个矩阵,车辆范围150~400
t1=length(P);
t2=length(T);
% P=[320 352 311 330 268 295 317 286 ;
%    352 311 330 268 295 317 286 295 ;
%    311 330 268 295 317 286 295 310 ;
%    330 268 295 317 286 295 310 326 ;
%    268 295 317 286 295 310 326 332 ;
%    295 317 286 295 310 326 332 361 ;
%    317 286 295 310 326 332 361 347 ;
%    286 295 310 326 332 361 347 305 ];
% T=;
% 归一化以上两个矩阵,车辆范围150~400
min=100;max=370;
for i=1:t1
    for j=1:8
      P(i,j)=(P(i,j)-min)/(max-min);
    end
    T(i)=(T(i)-min)/(max-min);
end
%-----------------------------------------------------------
pause
% clc
% plot(P,T,'+')
% title('Training Vector');
% xlabel('Input Vector P');
% ylabel('Target Vector T');
% pause

%S1=5;
S1=17;%13;%隐层节点个数
S2=2;
=initff(P',S1,'logsig',T,'purelin')%初始化网络,最多三层
%=initff(P,S1,'tansig',S2,'purelin');
echo off
k=pickic;
if k==2
%         w1=;
%         b1=[-0.3781;0.3062];
%         w2=;
%         b2=[-0.1772];
%--------------------------------------------------------------------------

% w1 =[-2.9148   -2.4230    0.9980   -0.1043    4.0517   -1.1342   -2.0680-2.8672;
%    -2.1870    2.5929    2.2296    1.8029    1.8334    3.0653   -3.2251-0.5993;
%   0.1383   -1.1276    2.1163   -3.8757    0.1253   -0.7250   -3.2350-4.1476;
%   2.4476    1.6206   -3.8116    2.3761   -0.7474   -0.6544   -3.3655-2.4777;
%   1.3216   -1.8237    2.9427    4.6835    4.6103    0.3475   -0.1737   0.7022;
%    -1.1680    0.0724    4.2842   -1.8907    2.2630   -4.6367   -1.8433-0.0394;
%   2.6008   -0.5584    3.8152    2.7831    3.7048    0.0270    1.8372   2.8187;
%    -3.3917    0.5699   -0.8206   -0.1275    2.1155   -1.6533    4.2094-2.2037;
%   2.8642    1.8894    2.9636   -3.5422   -0.9770    0.2024   -0.8610-3.7176;
%   0.5528   -1.9429    0.8362    2.0439   -5.3711    1.7581    3.2693   0.9027;
%   2.0420    2.5877    3.0202   -0.0714    3.1975   -2.3333   -0.8931   2.6273;
%   0.6301    0.5639   -3.6863   -2.2509   -1.2566   -4.5306    0.6834   3.0461;
%    -2.0448    3.1168   -2.4001   -1.4638    4.3323    0.2555    0.6471   2.5109;
%    -3.0991    3.5891   -2.5356    1.1810   -1.9544   -1.7722    2.2398-0.4302;
%    -2.3152    2.3131   -0.5602   -0.2167    0.2638    2.2067    4.7229   1.7523;
%    -2.4264   -1.7909   -0.2938    3.6004   -3.4613    2.0680    3.3052   0.2642;
%    -3.1367    0.5526   -0.2915   -3.3255   -4.4388    0.3307    2.3124   1.9883];
% b1=[4.6558;-5.2883;7.2932;5.0376; -7.7717; 2.6141;-11.1633;1.3431;...
%    -0.2673;-1.4775;-6.9976;2.9303;-3.3965;1.3468;-5.5469;-0.7790;3.3559];
% w2 =[0.0848   -0.5788   -0.0357    0.4627    0.1203    0.2758   -0.1152...
%   -0.1683   -0.1377    0.0547    0.1463   -0.0387    0.0461   -0.0036...
%       0.1398    0.0039    0.1170];
% b2 =-0.3729;
%---------------------------------------------------100
w1=[2.4063    2.7415    1.4561   -2.5735    4.0384    2.3961   -1.8559   0.4239;
   -2.7761   -1.3457    0.9658    0.0149   -2.0444   -3.4898   -2.3073-2.7993;
    3.2467    1.6495    4.6956    1.0841   -3.2989   -0.7979   -1.2666-0.9117;
    1.3622    4.2306    0.9504   -3.0748   -2.9399   -1.7217    1.5410-1.2017;
    0.0188   -1.9732    1.7077   -1.7858    1.6021   -3.9084   -3.3716-1.9279;
   -1.2426   -3.4794    2.5151    3.7008    3.7426   -1.4297   -0.9531-1.2012;
    0.0401    2.2170   -4.3445   -2.6141   -1.9640   -0.4439   -2.4358   3.4639;
   -2.2584    3.1693   -3.9980   -2.6921   -2.6064    0.4021    0.9890-1.5112;
   -3.0588    2.2151    0.1952   -2.4010   -2.5893    1.3482    1.5322-3.3741;
   -2.6333   -2.3508    2.2585    1.3113   -2.7351   -1.5705    3.5988   1.7061;
   -2.3524    3.1016    2.1774    1.1169   -3.2643    0.0554    1.9463-3.0639;
   -1.2864    1.2364   -4.2832   -2.6603   -2.8947   -0.5233    2.6459   3.1057;
    0.1316    1.8756    2.2655    4.9274    0.3631    0.3435    3.4166-2.8535;
   -0.9200    1.9676    2.9861    3.0741   -2.7440    1.4456    4.4996   0.1083;
    1.4444    0.1330   -1.6620   -5.7574    0.6894   -1.2357   -2.2234-3.6448;
   -3.4055    1.9742    1.7287   -0.7171   -2.9113    2.4279   -0.3615   3.1177;
    1.5182   -0.9803    0.9349   -0.9522    1.4335    5.3663    3.1944-0.4715];

b1=[-5.5205;9.0924;-2.4769;0.6689;6.7549;-2.8945;3.7084;5.9825;4.0662;1.1158;0.4256;1.6425;-7.0904;-5.1974;6.3409;-1.5962;-6.4703];
w2=;
b2=-0.1783;
%--------------------------------------------------------------------------
end

echo on

df=10;
me=1000;%800;
eg=0.0001;%0.00005
lr=0.01;
tp=;
=trainlm(w1,b1,'logsig',w2,b2,'purelin',P',T,tp);
% =trainbp(w1,b1,'tansig',w2,b2,'tansig',w3,b3,'purelin',P,T,tp);
pause

plottr(tr,eg);
pause

p=2;
w1
b1
w2
b2
% w3
% b3
eg
%----------测试-----------------------
P=[286 295 310 326 332 361 347 305;
   295 310 326 332 361 347 305 287];
T=287;
for j=1:8
    P(j)=(P(j)-min)/(max-min);
end
p=P';
a=simuff(p,w1,b1,'logsig',w2,b2,'purelin')%对网络进行仿真,最多三层
%----------输出---------------------------
y=a*(max-min)+min
% a=sim(p,w1,b1,'tansig',w2,b2,'tansig',w3,b3,'purelin')

echo off
disp('End of DEMOBP6')

[ 本帖最后由 风花雪月 于 2006-10-25 06:17 编辑 ]

恩熙0326 发表于 2006-5-21 18:09

呵呵,是山东的同学吧?我也是阿,你的这论文题目是什么啊,我看到有汽车流量,这些流量你是自己测的吗?我也在做BP神经网络的题目,我想找一个BP神经网络辨识的例子,简单一些就行,可是一直没有找到,你能帮我找一下吗,谢谢了~<BR> 我的邮箱是<a href="mailtddlover520@sina.com" target="_blank" >ddlover520@sina.com</A>   qq 是21802992

恩熙0326 发表于 2006-5-21 18:14

还有啊,我运行你第一个程序的时候有错误啊,你调试了吗,这三个程序分别是干什么的啊,是放在一起运行吗,问题多了,不好意思阿~

zheng8408 发表于 2006-5-22 09:41

回复:(lsy_iori)[分享]神经网络程序

<P>怎么不是RBF网络的?<BR></P>

lsy_iori 发表于 2006-5-23 14:42

为三个单独程序,BP网络的

aha202 发表于 2006-6-1 21:19

非常感谢啊,请问有matlab实现的关于基于小波变换的边缘检测和求图像灰度共生矩阵的程序啊,我头都弄晕了还没搞出来,帮帮忙啊。若有能否发到我邮箱阿,<a href="mailtzcj202@sohu.com" target="_blank" >zcj202@sohu.com</A>, help me!thanks!<BR>

ysy1981 发表于 2006-6-5 12:21

虽说程序有点问题,还是先顶一个!

lax911 发表于 2006-6-9 16:31

有人用ART2网络吗?

有人用ART2网络吗?

lsy_iori 发表于 2006-6-18 08:45

神经网络辨识有人做,我可以找找

xuxiaoqian 发表于 2006-6-24 21:36

有谁需要RBF网络的,请把你要的具体题目写出来,我帮你写好再贴上去

<P>做好人就要做到底</P>

nicaili 发表于 2006-12-4 20:54

原帖由 xuxiaoqian 于 2006-6-24 21:36 发表
<P>做好人就要做到底</P>


我想做神经网络故障诊断,你能帮我写个程序学习吗?谢谢,一点基础没有,麻烦您了!:@)

guanly20 发表于 2006-12-5 21:08

进来学习的。楼主辛苦了

sjpet2004 发表于 2006-12-17 22:35

请问有直接把向量归一化的函数吗?

lsq001 发表于 2006-12-20 14:37

嗯,不错。好好看一看。
页: [1] 2
查看完整版本: [分享]神经网络程序