神经网络两个程序.

2007 年华南农业大学数学建模专题讲座 神经网络 Matlab 程序(电子电路故障诊断问题) close all % 关闭所有打开的图形窗口 clear % 清除内存中的变量和函数 echo on clc % 清空命令窗口 % +++++++++++++++ 用 BP 神经网络对电子电路进行故障诊断 ++++++++++ % NEWFF —— 生成一个新的前向神经网络 % TRAIN —— 对

BP 神经网络进行训练 % SIM —— 对 BP 神经网络进行仿真 pause

clc %+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

+++++++++%+++++++++++++++++++++++++ 定义训练样本

+++++++++++++++++++++++++++++++% P 为输入向量矩阵,其中的每一列表示

2 个传感器对电路中 3 个元器件所提取的 6 个故障特征 P=[9 0.51 10.4 6.65 7.4 7.41

5.05 5.45 5.44 8.5 9.55 9.56 7.7 8.65 8.7 5.32 6.3 6.324.01 6.5 3.99 2.05 3.25 2.06 3.45

4.4 3.55 3.65 5.2 3.65 2.45 4.07 2.6 1.45 2.35 1.67.81 6.35 4.32 7.52 6.72 4.03 2.75 1.9

1.8 8.5 7.4 5.5

9.05 7.75 6.54

6.91

6.52 5.2210.41 11.01 11.11 10.7

11.4 11.6 11.81 12.32

12.5

11.8

12.4

12.6 12.3 12.9

13 11.83 12.63 12.82 11.33 10.3 11.1

11.61 10.81 11.61

12.6

11.6

12.41 12.66 11.85 12.46

13.12

12.21 12.91 12.74 11.93 12.64 11.25 11.21

10.54

11.45 11.45 10.7 12.55

12.45 11.8

12.55 12.55 11.74 13.12 13.12 12.32 12.65

12.66

11.94]; % T 为目标向量矩阵 ,其中的每一列表示正确的故障诊断决策 T=[1 0 0

100100100100100010010010010010010001001001001001

0 0 1];pause

clc %+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

+++++++++%++++++++++++++++++++++++ 创建一个新的前向神经网络 +++++++++++++++++++++++net=newff(minmax(P,[4 3],... % [4 3] 表示 BP 网络的隐层有 4 个神经元,输出层有 3 个神经元; {'logsig','purelin'},'trainlm'; % 其中 minmax(P 为 P 中各行元素的取值范围 pause clc %++++++++++++训练 BP 网络 +++++++++++++++++++++++++++++++ % 设置训练参数 net.trainParam.show=50;

net.trainParam.lr=0.05; net.trainParam.mc=0.9; net.trainParam.epochs=5000; 1 2007年

华南农业大学数学建模专题讲座 net.trainParam.goal=1e-3; %调用 Trainlm 算法训练

BP 网络 [net,tr]=train(net,P,T; pause clc %++++++++++++++++++++ 对 BP 网络进行

仿真 +++++++++++++++++++++++++++++++++% 产生一个随机矩阵 R,作为故障

特征矩阵 P 的噪声 rand('state',2; R=rand(size(P-0.5; % PP为带有噪声的故障特征矩阵 PP=R+P; pause %利用 sim 函数,对带有噪声的故障特征矩阵进行故障诊断仿真 A=sim(net,PP echo off for i=1:3 for j=1:18 if A(i,j>0.70 % 如果可能性大

于 0.7,那么认为相应的电子元件出故障了 A(i,j=1; else A(i,j=0; end end end % 计

算故障诊断错误的个数 k=0; for m=1:18 if

(A(1,m==T(1,m&&(A(2,m==T(2,m&&(A(3,m==T(3,m; k=k+1; end end disp(' 故障诊断

仿真正确的个数为: '; k pause % 找出诊断错误的故障信息 p=zeros(1,18; for n=1:18

if (A(1,n~=T(1,n||(A(2,n~=T(2,n||(A(3,n~=T(3,n; p(:,n=n; end end p disp(' 故障诊断仿真

的正确率为 :'; k/18 2 2007 年华南农业大学数学建模专题讲座 神经网络 Matlab 程序

(土壤的分类问题) close all clear echo on clc %基于 SOM 网络的土壤分类 (Soil

classification based on SOM pause %建立输入矩阵 P=[0.27 0.142 6.46 5.5 35.8 21

1.03 0.171

0.115 3.46

6.3

33

60 0.78 0.114 0.101 2.43 6.4 26.5 25 1.13

0.173 0.123 3.3

5.8 28.9 65 1.09 0.145

0.131

3.28

6 28.5 25 1.03

0.173 0.14 3.45

5.8 33.4 60 0.98 0.25

0.177 5.51

7.2 42.5 45

0.93 0.237

0.189 5.37 6.1

32.9 27 1 0.319

0.227

7.04 5.8 35.9 24

1.03 0.163

0.124 3.73

6.2

30.6 61

1.28]'; pause clc %创建一个 SOM 网

net=newsom(minmax(P,[6 4]; pause clc %利用函数 train 和 sim 对网络进行训练并仿

真。

 % 由于训练步数的大小影响着网络的聚类性能。

% 这里设置训练步数为

10、

100 和 1000,分别观察其分类性能。

  pause echo off clc a=[10 100 1000];

yc=rands(1,10; % 初始化权值 for i=1:3 net.trainParam.epochs=a(i; net=train(net,P; y=sim(net,P; yc=vec2ind(y % 分类结果 end 3

推荐访问:两个维护 神经网络 两个 程序 神经网络两个程序