资源简介
利用BP神经网络实现f(x)=sin(x)+cos(x)的拟合逼近
代码片段和文件信息
#include“BP.h“
//
BP::BP()
{
srand(time(NULL));
//BP网络结构
input_points=1;
output_points=1;
middle_points=yince;
//输入
for(int i=0;i {
W_ik[i]=rand()%((unsigned int)(1/calulate_error))*calulate_error-0.5;
B_ik[i]=rand()%((unsigned int)(1/calulate_error))*calulate_error-0.5;
}
//输出
for(int i=0;i {
W_kj[i]=rand()%((unsigned int)(1/calulate_error))*calulate_error-0.5;
}
B_kj=rand()%((unsigned int)(1/calulate_error))*calulate_error-0.5;
//学习步长
StudyStep_j=0.4;
StudyStep_k=0.4;
//
isfound=false;
//
get_jilei_E.open(“./matlab/jilei.txt“);
}
//
void BP::process(int counter)
{
double jilei_E=0;
for(int i=0;i {
//随机选取样本并赋值
int index=rand()%total_sample;
double source_X=-pi+2*(i+1)*pi/total_sample;
double source_goal=sin(source_X)+cos(source_X);
//归一化处理
X=(pi+source_X)/(2*pi);
double goal=(sqrt(2)+source_goal)/(2*sqrt(2));
//隐层计算
for(int j=0;j {
V_ik[j]=W_ik[j]*X-B_ik[j];//隐层第j个节点的输入
F_ik[j]=1/(1+exp(-V_ik[j]));//隐层第j个节点的输出
}
//输出层计算 就一个输出节点
V_kj=-B_kj;
for(int j=0;j {
V_kj+=W_kj[j]*F_ik[j];//输出层节点的输入
}
F_kj=1/(1+exp(-V_kj));//输出层节点的输出
//////////////////////////误差计算
jilei_E+=0.5*pow(goal-F_kj2);
//输出层校正误差
D_kj=(goal-F_kj)*F_kj*(1-F_kj);//输出神经元的校正误差
//隐层校正误差
for(int j=0;j {
D_ik[j]=D_kj*W_kj[j]*F_ik[j]*(1-F_ik[j]);
}
//对应权值阈值的修改
for(int j=0;j {
//输出层
W_kj[j]=W_kj[j]+StudyStep_j*D_kj*F_ik[j];//权值
//隐层
W_ik[j]=W_ik[j]+StudyStep_k*D_ik[j]*X;//权值
B_ik[j]=B_ik[j]-StudyStep_k*D_ik[j];//阈值
}
B_kj=B_kj-StudyStep_j*D_kj;//输出层阈值
}
jilei_E=jilei_E/total_sample;
get_jilei_E< if(sqrt(jilei_E) {
isfound=true;
}
}
//
void BP::validation()
{
//检验样本
for(int i=0;i {
valid[i]=-3*pi/2+2*i*pi/(2*total_sample);
goalout[i]=sin(valid[i])+cos(valid[i]);
}
//带入验证
ofstream nihe;
nihe.open(“nihe.txt“);
for(int i=0;i {
//样本赋值
//X=valid[i];
double source_X;//目标输入
double source_goal;//目标输出结果
double source_output;//最终输出结果
source_X=-pi+2*pi*(i+1)/(total_sample);
source_goal=cos(source_X)+sin(source_X);
//归一化处理
X=(source_X+pi)/(2*pi);
//隐层计算
for(int j=0;j {
V_ik[j]=W_ik[j]*X-B_ik[j];
F_ik[j]=1/(1+exp(-V_ik[j]));
}
//输出层计算
V_kj=-B_kj;
for(int j=0;j {
V_kj+=W_kj[j]*F_ik[j];
}
F_kj=1/(1+exp(-V_kj));
source_output=2*sqrt(2)*F_kj-sqrt(2);
cout< cout< cout< nihe< nihe< }
nihe.close();
}
//
void BP::get_param()
{
//
cout<<“隐层节点数:“< for(int i=0;i {
cout<<“从输入节点到“<<“第“< cout< cout<<“
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2014-01-13 21:01 FunctionApproximation\
目录 0 2014-01-10 09:31 FunctionApproximation\Debug\
文件 102912 2014-01-13 20:52 FunctionApproximation\Debug\FunctionApproximation.exe
文件 1146732 2014-01-13 20:52 FunctionApproximation\Debug\FunctionApproximation.ilk
文件 1035264 2014-01-13 20:52 FunctionApproximation\Debug\FunctionApproximation.pdb
目录 0 2014-01-09 20:54 FunctionApproximation\FunctionApproximation\
文件 4435 2014-01-10 10:19 FunctionApproximation\FunctionApproximation\BP.cpp
文件 1320 2014-01-13 20:52 FunctionApproximation\FunctionApproximation\BP.h
目录 0 2014-01-13 20:52 FunctionApproximation\FunctionApproximation\Debug\
文件 266506 2014-01-13 20:52 FunctionApproximation\FunctionApproximation\Debug\BP.obj
文件 2794 2014-01-13 20:52 FunctionApproximation\FunctionApproximation\Debug\cl.command.1.tlog
文件 13628 2014-01-13 20:52 FunctionApproximation\FunctionApproximation\Debug\CL.read.1.tlog
文件 1606 2014-01-13 20:52 FunctionApproximation\FunctionApproximation\Debug\CL.write.1.tlog
文件 86 2014-01-13 20:52 FunctionApproximation\FunctionApproximation\Debug\FunctionApproximation.lastbuildstate
文件 1865 2014-01-13 20:52 FunctionApproximation\FunctionApproximation\Debug\FunctionApproximation.log
文件 2 2014-01-13 20:52 FunctionApproximation\FunctionApproximation\Debug\li
文件 2 2014-01-13 20:52 FunctionApproximation\FunctionApproximation\Debug\li
文件 2 2014-01-13 20:52 FunctionApproximation\FunctionApproximation\Debug\li
文件 2 2014-01-13 20:52 FunctionApproximation\FunctionApproximation\Debug\li
文件 2 2014-01-13 20:52 FunctionApproximation\FunctionApproximation\Debug\li
文件 2 2014-01-13 20:52 FunctionApproximation\FunctionApproximation\Debug\li
文件 2 2014-01-13 20:52 FunctionApproximation\FunctionApproximation\Debug\li
文件 2 2014-01-13 20:52 FunctionApproximation\FunctionApproximation\Debug\li
文件 2 2014-01-13 20:52 FunctionApproximation\FunctionApproximation\Debug\li
文件 2 2014-01-13 20:52 FunctionApproximation\FunctionApproximation\Debug\li
文件 2 2014-01-13 20:52 FunctionApproximation\FunctionApproximation\Debug\li
文件 2 2014-01-13 20:52 FunctionApproximation\FunctionApproximation\Debug\li
文件 2 2014-01-13 20:52 FunctionApproximation\FunctionApproximation\Debug\li
文件 2 2014-01-13 20:52 FunctionApproximation\FunctionApproximation\Debug\li
文件 2 2014-01-13 20:52 FunctionApproximation\FunctionApproximation\Debug\li
文件 2 2014-01-13 20:52 FunctionApproximation\FunctionApproximation\Debug\li
............此处省略75个文件信息
- 上一篇:zint 加vc的二维码生成器
- 下一篇:excel汇总专家
相关资源
- VC可视化科学计算器
- QT学生选课与成绩管理系统,含有学生
- des加密算法.zip
- 电子科技大学计算机操作系统实验代
- 使用outlook接口自动发邮件
- LR1语法分析器
- BP预测温度模型_2019.10.14.rar
- 基于PCA和BP神经网络的人脸识别
- 采用时间片轮转算法的进程调度程序
- RTKLIB在vsvc中的调试,包括了需要的额
- 数独游戏源代码
- 生命游戏源代码
- 深入浅出设计模式中文版高清 pdf
- winsocket 通讯程序
- lua编辑器自定义关键字可带注释
- excel版BP神经网络,公式运算
- 词法语法语义分析器
- 基于Qt5的俄罗斯方块游戏
- Effective_STL中文版.pdf
- BP神经网络的算法改进及应用
- 屏幕保护程序含文档
- 3个完全不同的书店管理系统以及参考
- vc实现向指定ip端口发送数据或文件,
- SkinSharp 完整破解版 带51款皮肤
- DOOM启示录David Kushner 著.pdf
- LR1分析器代码实现
- 运用定时器函数制作计时器
- 基于QtcpServer的网络库
- hdf5 Linux下的安装包 以及make文件
- windows程序设计(第五版).pdf
评论
共有 条评论