⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bpnet.cpp

📁 本算法采用最基本的遗传算法编写
💻 CPP
字号:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "UTLab.h"

//BP神经网络
#define n1 7   //输入节点数
#define n2 11  //中间层节点个数
#define n3 5   //输出节点数
#define m 400  //学习次数
void initialization(){
	
}

float bpnet(float tension, float inthick,float outthick, float meng, float tan,float ping,float tu)
{
	float in1[n1];
	float out1[n2];
	float out2[n3];
	float w1[n2][n1];
	float w2[n3][n2];
	float a1[n2];
	float a2[n3];
	float t[n3];
	float df1[n2];
	float df2[n3];
	float s2[n3];
	float s1[n2];
	float w[n2][n3];
	float z[n2][n3];
	float a=0.5;
	int i=0;
	int j=0;
	int k=0;
	int n=0;
	in1[1]=tension;
	in1[2]=inthick;
	in1[3]=outthick;
	in1[4]=meng;
	in1[5]=tan;
	in1[6]=ping;
	in1[7]=tu;
	initialization();
	for(n=1;n<=m;k++){
		for(i=1;i<=n2;i++){
			for(j=1;j<=n1;j++){
				a1[j]=a1[j]+w1[i][j]*in1[j];
				out1[j]=sigmoid(a1[j]);
			}
		}
		for(i=1;i<=n3;i++){
			for(j=1;j<=n2;j++){
				a2[j]=a2[j]+w2[i][j]*in1[j];
				out2[j]=a2[j];
			}
		}
		
		for(i=1;i<=n3;i++){          //计算敏感度,更新权值
			df2[i]=1;
			s2[i]=-2*(t[i]-out2[i]);
			for(j=1;j<=n2;j++){
			w2[i][j]=w2[i][j]+a*out1[j];
			}
		}
	
		for(i=1;i<=n3;i++){
			for(j=1;j<=n2;j++){
			w[j][i]=w2[i][j];
			}
		}
		for(j=1;j<=n2;j++){
			df1[j]=(1-out1[j])*out1[j];
			s1[j]=0;
			for(i=1;i<=n3;i++){
				z[j][i]=df1[j]*w[j][i];
				s1[j]=s1[j]+z[j][i]*s2[i];
			}
		}	
		for(j=1;j<=n2;j++){
			for(k=1;k<=n1;k++){
				w1[j][k]=w1[j][k]+a*s1[j]*in1[k];
			}
		}
	}
	return out2[n3];

}
void main()
{

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -