用C 语言实现的程序如下:
# define m 11 / * 输入层节点数* /
# define p11 /* 隐含层节点数* /
# define q 18 / *输出层节点数* /
# define n1087 / * 训练对数* /
# defineε0. 001 / * 全局误差范围* /
float w[m] [p ] ; / * 输入层隐含层之间的权值矩阵* /
float v [p ] [ q ] ; / * 隐含层输出层之间的权值矩阵* /
float s[p ] ,b[p ] ; / * 隐含层的输入、输出值矩阵3 /
float l[q] , c[ q] , d[q] ; / * 输出层的输入、输出及校正误差值矩阵* /
float a[m] ; / * 输入层矩阵* /
int y[ q] ; / * 输出层的矩阵* /
typedef FIL E gh ; gh 3 g1 , 3 g2 ;
void aproce ( ) ; / * 读入火成岩的编号和相应11 种化学成分数据3 /
void sproce () ; / *计算隐含层的输入*/
void bproce () ; / * 计算隐含层的输出* /
void lproce ( ) ; / * 计算输出层的输入* /
void cproce () ; / * 计算输出层的输出* /
void main ()
{for (j = 0 ;j < p ;j + + ) / * 给连接权赋初值*/
for (t = 0 ;t < q ;t + + ) v[ j ] [ t ] = 1. 0 - 2. 0 *(rand () / (float32767) ;
for (i = 0 ;i < m ;i + + ) for (j = 0 ;j < p ;j + + ) w[ i ] [j ] = 1. 0 - 2. 0 3 (rand () / (float) 32767) ;
g2 = fopen (“aim. dat”, “wb”) ;
do
{ g1 = fopen (“source. dat”, “rb”) ;
for (k = 0 ;k < n ;k + + )
{ aproce ( ;for (t = 1 ; t < 19 ; t + + )
{if ( t ==a0 y[ t - 1 ] = 1 ; else y[ t - 1 ] = 0 ;}
sproce ( ) ;
bproce ( ) ;
lproce ( ) ;
cproce() ;
for (t = 0 ;t < q ;t + + )
f [ k ] = f [ k ] + (y[ t ] - c[ t ]3 ) (y[ t ] - c[ t ] ;
f [ k ]= f [ k ]/ 2. 0 ;
E = E + f [ k ] ;
if (f [ k ] < 0. 4) b1 = a1 = f [ k ] ;
else b1 = a1= 0. 35 ; / * 修正学习率* /
for (t = 0 ;t < q ;t + + ) d[ t ] = (y[ t ] - c[ t ]) 3c[ t ] 3 (1. 0 - c[ t ]) ;
for (j = 0 ;j < p ;j + + )
for ( t = 0 ; t < q ; t + + )
v[j ] [ t ] = v[ j ] [ t ] + a1 3 b[ j ] 3 d[ t ] ; / * 修正权值* /
for (j = 0 ;j < p ;j + + )
{ for (t = 0 ; t < q ; t + + ) d3 = d3 + d [ t ] 3 v[ j ][ t ] ;
e[j ] = d3 3 b[j ] 3 (1. 0 - b[j ]) ; } /* 修正误差* /
for (i = 0 ;i < m ;i + + )
for (j = 0 ;j < p ;j + + )
w[i ] [j ] = w[ i ] [ j ] + b1 3 a [ i ] 3 e [ j ] ;} / * 修正权值* /
E = E/ n ; / 3 修正全局误差3 / n1 + + ;}
while ( E >ε) ;
for (i = 0 ;i < m ;i + + ) / *输出权值w 到数据文件* /
{for (j = 0 ;j < p ;j + + ) fprintf (g2 ,”%f”,w[ i ][ j ]) ;
fprintf (g2 ,”\ n”) ;}
for (j = 0 ;j < p ;j + + ) / * 输出权值v 到数据文件* /
{for (t = 0 ;t < q ;t + + ) fprintf (g2 ,”%f”,v[ j ][ t ]) ;
fprintf (g2 ,”\ n”) ;}}
bp.rar_BP,BP__C,BP_c++,BP算法
版权申诉
7 浏览量
2022-07-13
17:35:59
上传
评论
收藏 1KB RAR 举报
小波思基
- 粉丝: 74
- 资源: 1万+
最新资源
- 基于Javascript和Python的微商城项目设计源码 - MicroMall
- 基于Java的网上订餐系统设计源码 - online ordering system
- 基于Javascript的超级美眉网络资源管理应用模块设计源码
- 基于Typescript和PHP的编程知识储备库设计源码 - study-php
- Screenshot_2024-05-28-11-40-58-177_com.tencent.mm.jpg
- 基于Dart的Flutter小提琴调音器APP设计源码 - violinhelper
- 基于JavaScript和CSS的随寻订购网页设计源码 - web-order
- 基于MATLAB的声纹识别系统设计源码 - VoiceprintRecognition
- 基于Java的微服务插件集合设计源码 - wsy-plugins
- 基于Vue和微信小程序的监理日志系统设计源码 - supervisionLog
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈