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

📄 bp_c.txt

📁 BP神经网络的编程,C语言编写 要看要几层的网络
💻 TXT
字号:
BP神经网络的编程,C语言编写
要看你要几层的网络,输入和输出是多少个?要几层隐层,多少个神经元,还有你要选什么传输函数。这些确定了,才能建立和训练网络。

#include<stdio.h> 
#include<conio.h> 
#define RUN 1 
/////////////////////////////////
void swap(int *a, int *b) 
{ 
int temp; 
temp = *a; 
*a = *b; 
*b = temp; 
} 
/////////////////////////////////
void change(int *p) 
{ 
int i; 
int j; 
int *pmax = p, *pmin = p; 
for (i = 0 ; i < 5 ; i++) 
{ 
for (j = 0 ; j < 5 ; j++) 
{ 
if (*pmax < *(p + 5*i + j)) 
{ 
pmax = (p + 5*i + j); 
} 
if (*pmin > *(p + 5*i + j)) 
{ 
pmin = (p + 5*i + j); 
} 
} 
} 
swap(pmin, p); 
swap(pmax, (p + 12)); 
#if RUN 
printf("%d %d\n", *p, *(p + 12)); 
#endif 
pmin = (p + 1); 
for (i = 0 ; i < 5 ; i++) 
{ 
for (j = 0 ; j < 5 ; j++) 
{ 
if (*pmin > *(p + 5*i + j) && (i != 0 || j != 0)) 
{ 
pmin = (p + 5*i + j); 
} 
} 
} 
swap(pmin, (p + 4)); 
#if RUN 
printf("%d\n", *(p + 4)); 
#endif 
pmin = (p + 1); 
for (i = 0 ; i < 5 ; i++) 
{ 
for (j = 0 ; j < 5 ; j++) 
{ 
if (*pmin > *(p + 5*i + j) && (i != 0 || j != 0) && (i != 0 || j != 4)) 
{ 
pmin = (p + 5*i +j); 
} 
} 
} 
swap(pmin, (p + 5*4)); 
#if RUN 
printf("%d\n", *(p + 20)); 
#endif 
pmin = (p + 1); 
for (i = 0 ; i < 5 ; i++) 
{ 
for (j = 0 ; j < 5 ; j++) 
{ 
if (*pmin > *(p + 5*i + j) && (i != 0 || j != 0) && (i != 4 || j != 0) && (i != 0 || j != 4)) 
{ 
pmin = (p + 5*i + j); 
} 
} 
} 
swap(pmin, (p + 4*5 + 4)); 
#if RUN 
printf("%d\n", *(p + 24)); 
#endif 
} 
/////////////////////////////////
main() 
{ 
int a[5][5]; 
int *p1 = &a[0][0]; 
int i, j; 
printf("input the numbers:\n"); 
for (i = 0 ; i < 5 ; i++) 
{ 
for (j = 0 ; j < 5 ; j++) 
{ 
scanf("%d", &a[i][j]); 
} 
} 
change(p1); 
printf("the new is:\n"); 
for (i = 0 ; i < 5 ; i++) 
{ 
for (j = 0 ; j < 5 ; j++) 
{ 
printf("%d ", *(p1 + 5*i + j)); 
} 
printf("\n"); 
} 
getch(); 
}
/////////////////////////////////
#include <stdio.h> 
#include <string.h> 
int ac(int ab[],int k,int len); 
/////////////////////////////////
main() 
{ 
int a[6]={2,52,12,21,52,65}; 
int len,k=2,i; 
len=strlen(a); 
ac(a[],k,len); 
for(i=0;i<len;i++) 
printf("%d\t",a[i]); 
} 
int ac(int a[],int k,int len) 
{ int i,j,t,temp,count; 
count=0; 
k=k%len; 
if(k) 
{ 
i=0; 
while(count<len){ 
j=i;t=i; 
temp=a[i]; 
while((j=(j-k+len)%len)!=i) 
{ a[t]=a[j]; 
t=j; 
count++; 
} 
a[t]=temp; count++; 
i++; 
} 

} 
}
p=[0.4 0.4 0.45 0.45 0.5 0.5 0.55 0.55 0.6 0.6 0.65 0.65; 
0.45 0.40 0.40 0.35 0.35 0.325 0.325 0.3 0.3 0.275 0.275 0.25; 
0.068 0.076 0.105 0.119 0.151 0.162 0.196 0.212 0.249 0.321 0.311 0.34; 
0.096 0.108 0.148 0.168 0.213 0.229 0.277 0.299 0.352 0.383 0.349 0.481; 
0.118 0.132 0.181 0.206 0.261 0.28 0.34 0.367 0.431 0.468 0.538 0.589; 
0.135 0.153 0.209 0.237 0.302 0.324 0.392 0.423 0.498 0.541 0.621 0.68; 
0.153 0.171 0.234 0.266 0.337 0.362 0.439 0.474 0.557 0.605 0.695 0.761; 
0.167 0.196 0.256 0.291 0.369 0.396 0.481 0.518 0.609 0.612 0.761 0.833]; 
p0=[0.4 0.4 0.45 0.45 0.5 0.5 0.55 0.55 0.6 0.6; 
0.45 0.40 0.40 0.35 0.35 0.325 0.325 0.3 0.3 0.275; 
0.068 0.076 0.105 0.119 0.151 0.162 0.196 0.212 0.249 0.321; 
0.096 0.108 0.148 0.168 0.213 0.229 0.277 0.299 0.352 0.383; 
0.118 0.132 0.181 0.206 0.261 0.28 0.34 0.367 0.431 0.468; 
0.135 0.153 0.209 0.237 0.302 0.324 0.392 0.423 0.498 0.541; 
0.153 0.171 0.234 0.266 0.337 0.362 0.439 0.474 0.557 0.605; 
0.167 0.196 0.256 0.291 0.369 0.396 0.481 0.518 0.609 0.612]; 
net=newff(minmax(p0),[4 1],{'tansig' 'purelin'},'trainlm'); 
net.trainParam.show=1; 
net.trainParam.epochs=30; 
net.trainParam.goal=1e-5; 
net.trainParam.max_fail=5; 
net=init(net); 
tic 
[net,tr]=train(net,p0,t0); 
time=toc 
a=sim(net,p0) 
p1=[0.28 0.40]; 
a1=sim(net,p1) 
figure(1) 
plot(p,t,'-g',p0,a,'r*',p1,a1,'b.') 
title('神经网络逼近结果') 
xlabel('输入矢量') 
ylabel('目标矢量') 
h=legend('目标矢量','学习结果','预测结果',3); 

⌨️ 快捷键说明

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