bp网络算法对y=0.4sin(2*PI*x)+0.5的拟合
来源:互联网 发布:数据统计分析平台 编辑:程序博客网 时间:2024/06/04 20:05
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
B-P算法对函数y=0.4sin(2*PI*x)+0.5的拟合#include#include#include#define M 8 //隐节点个数#define N 20 //学习样本个数#define PI 3.14159//////////////////////////////////////////////////////////static float x[N]; //x输入static float y[N]; //y输出static float t[N]; //t教师static float h[M][N]; // 记录隐单元的输出static float b[N]; //输出误差static float b1[M][N]; //记录隐单元误差float w1[M]={0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8}; //输入与第一隐层的权float w2[M]={0.8,0.7,0.6,0.5,0.4,0.3,0.2,0.1}; //第一隐层与输出层的权float q[M]={0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8}; //第一隐层的阈值float p=0.3; //输出层的阈值float r=0.2; //步长int n=0; //记录训练次数//////////////////////////////////////////////////////////////////////////float f(float u){return 1/(1+exp(-u));}/////////////////////////////////////////////////////////////////////////////赋值函数void fuzhi(void){int k;for(k=0;k x[k]=(float)k/20; // 输入值for(k=0;k {t[k]=0.4*sin(2*PI*x[k])+0.5; //计算教师的值cout<<"x["< }}//////////////////////////////////////////////////////////////计算隐单元输出,输出单元void jisuan(void){int i,j;static float a[N]; //存放中间结果for( i=0;i for( j=0;j h[i][j]=f(w1[i]*x[j]-q[i]); //计算隐单元输出for(j=0;j {a[j]=0; //注意初值for(i=0;i a[j]+=w2[i]*h[i][j];y[j]=f(a[j]-p);}/////////////////////////////////////////////////////////////计算误差void wucha(void){int i,j;for( j=0;j b[j]=y[j]*(1-y[j])*(t[j]-y[j]); //输出for( i=0;i for(j=0;j b1[i][j]=b[j]*w2[i]*h[i][j]*(1-h[i][j]);//隐单元}////////////////////////////////////////////////////////////////权的修改void xiugai(void){float c,d; //临时变量int i,j;for( i=0;i {c=0;for( j=0;j c+=b[j]*h[i][j];w2[i]+=r*c;}c=0;for(j=0;j c+=b[j]*(-1);p+=c*r;for(i=0;i {c=0;d=0;for(j=0;j {c+=b1[i][j]*x[j];d+=b1[i][j]*(-1);}w1[i]+=r*c;q[i]+=r*d;}}//////////////////////////////////////////////////////////////计算输出的总误差float shuchu(void){float E=0;for(int j=0;j E+=(t[j]-y[j])*(t[j]-y[j]);return E;}/////////////////////////////////////////////////////////////主函数void main(){char s;float Ez;fuzhi();do{ ++n;jisuan();wucha();xiugai();Ez=shuchu();cout< } while(Ez/2>0.01);// for(int j=0;j // cout<<"y["< cin>>s;}//////////////////////////////////////////////////////////<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
- bp网络算法对y=0.4sin(2*PI*x)+0.5的拟合
- bp网络算法对y=0.4sin(2*PI*x)+0.5的拟合
- R-求y=sin(X) 0-PI 面积代码
- BP神经网络拟合sin()
- 绘制y=sin(x)/x的图形
- C++实现最小二乘法对y=exp(x)的二次拟合
- 利用MATLAB绘制隐函数f(x,y)=x^2 * sin(x+y^2)+y^2 * exp(x+y)+5 * cos(x^2+y)=0的曲线
- 绘制出y = sin x 和 y = cos x 同时显现的图像
- y=b1*x + b2*x^2拟合
- 匿名函数 方法2: 方法 fun=@(x)sin(x.^2) quadl(fun,0,pi)
- 【狂人C】学习笔记之求封闭曲线y=sin(x)的面积
- sin(pi)
- BP网络的学习算法
- 对(x&y)+((x^y)>>1)的理解
- 【学习笔记】对 (x&y) + ( (x^y)>>1 ) 的理解
- 2.编程实现基本遗传算法:对二元函数 f(x,y)=21.5+xsin(4πx)+ysin(20πy)
- 为什么x==y而cos(x) != cos(y)(或者sin,tan,log等其他浮点运算)?
- 算法:计算Y = X
- 实用命令:利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密
- 数据访问接口体系及数据对象模型探讨--[2]
- 「新闻」微软所面对的软件战争
- 游戏开发基础(8)
- 3-TIER开发工具---VisualDBTOOLS3.0
- bp网络算法对y=0.4sin(2*PI*x)+0.5的拟合
- ceshi
- 的syslanguage表应用一例
- 用数组模拟堆栈
- 结合ADO、ADOX和MFC的文档/视图/框架架构创建和打开Ac
- java.exe出错错误分析
- 通过写入注册表添加ODBC数据源
- 定制数据层
- 正则表达式--备忘