资源简介
设计本系统主要是为了研究可应用于生产实践的果品智能分类系统,希望能通过现阶段我们所学习掌握的一些相关知识来实现一个简单的水果智能分类系统,为设计制作真正的果品智能分类系统做好前期的研究准备工作。利用MATLAB 语言,进行编写
代码片段和文件信息
#include“bp_rbf.h“
double randnumber()//-0.1~0.1的随机函数
{
return (sin(rand())/10) ;
}
//求某个节点的输出值
double f(int nodeint layer){
double sum=0;
for (int node2=0;node2yer-1];node2++)
{
sum=sum+w[layer][node][node2]*u[layer-1][node2];
}
sum=1.0/(1+exp(0-sum));
return sum;
}
//求误差函数对u的导数
double gf(int layerint node){
double sum=0;
for (int m=0;myer+1];m++)
sum=sum+e[layer+1][m]*u[layer+1][m]*(1-u[layer+1][m])*w[layer+1][m][node];
return sum;
}
//求前馈
void feed_forward()//前馈输出值
{
for (int layer=1;layer<=2;layer++)
for(int node=0;nodeyer];node++)
u[layer][node]=f(nodelayer);
}
//求梯度
void compute_gradient()
{
for (int layer=2;layer>0;layer--)
{
for(int node=0;nodeyer];node++)
{
if (layer==2) e[2][node]=u[2][node]-output[node];
else e[layer][node]=gf(layernode);
}
for (int j=0;jyer];j++)
for(int i=0;iyer-1];i++)
{
g[layer][j][i]=e[layer][j]*u[layer][j]*(1.0-u[layer][j])*u[layer-1][i];
}
}
}
//修改权值
void update_weights()
{
for (int layer=1;layer<=2;layer++)
for (int j=0;jyer];j++)
for(int i=0;iyer-1];i++)
{
temp_w_1[layer][j][i]=w[layer][j][i];
w[layer][j][i]=w[layer][j][i]-STUDY_SPEED*g[layer][j][i]+ALPHA*delta_w[layer][j][i];
temp_w_2[layer][j][i]=w[layer][j][i];
delta_w[layer][j][i]=temp_w_2[layer][j][i]-temp_w_1[layer][j][i];
}
}
double erro()//误差
{
double sum=0;
sum=pow(fabs(u[2][0]-output[0])2)+pow(fabs(u[2][1]-output[1])2)+pow(fabs(u[2][2]-output[2])2);
return sum;
}
//////////初始化,装载样例
void initial(FILE *fp)
{
if(feof(fp))
{
rewind(fp);
k_k=(++k_k)%7;
if(!k_k) fprintf(fpwucha“\n“);
fprintf(fpwucha“%16f“wucha);
wucha=0;
}
input[0]=1.0;
for(int i=1;i fscanf(fp“%f“input+i);
for(i=0;i fscanf(fp“%d“output+i);
// cout< //////////////////////至此读出一个样本的数据(inputoutput);
for (int m=0;m u[0][m]=input[m];
}
void test()
{
FILE *fpt=NULL;
fpt=fopen(“test.txt““r“);
for (int i=0;i<=7;i++)
{
initial(fpt);
feed_forward();
u[2][0]=floor(u[2][0]+0.5);
u[2][1]=floor(u[2][1]+0.5);
u[2][2]=floor(u[2][2]+0.5);
cout< if(!((output[0]==u[2][0])&&(output[1]==u[2][1])&&(output[2]==u[2][2])));
else
{
count++;
// cout< }
}
fclose(fpt);
}
//////////////RBF的东东///////////////////////////////////////////////////////////////////////
/////////////////////文件定位////////////////////////////////
void fseeking(FILE* fpint row_no)
{
rewind(fp);
if (!row_no) return;
l:while((!feof(fp))&&(fgetc(fp)!=‘\n‘))
{
file_time++;
};
//if(feof(fp)) return;
row_no--;
if (row_no) goto l;
else return;
}
////径向距离/////
void min_juli(int *set_number)//*j返回输入向量所在的聚类
{
// size_t size
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4383 2007-12-28 20:51 水果智能识别系统\bisheji.dsp
文件 537 2005-05-17 08:52 水果智能识别系统\bisheji.dsw
文件 66560 2008-01-15 09:53 水果智能识别系统\bisheji.ncb
文件 53760 2008-01-15 09:53 水果智能识别系统\bisheji.opt
文件 248 2008-01-14 16:23 水果智能识别系统\bisheji.plg
文件 1367 2008-01-14 16:10 水果智能识别系统\bp_rbf.h
文件 20758 2008-01-14 16:20 水果智能识别系统\bp结果\权值.txt
文件 734 2008-01-14 16:20 水果智能识别系统\bp结果\误差变化序列.txt
文件 278604 2008-01-14 16:10 水果智能识别系统\Debug\bisheji.exe
文件 623616 2008-01-14 16:10 水果智能识别系统\Debug\bisheji.pdb
文件 48618 2008-01-14 16:10 水果智能识别系统\Debug\mainApp.obj
文件 0 2008-01-14 16:10 水果智能识别系统\Debug\mainApp.sbr
文件 4927 2007-12-28 12:57 水果智能识别系统\Debug\rbf.obj
文件 110592 2008-01-14 16:10 水果智能识别系统\Debug\vc60.pdb
文件 13200 2007-12-28 20:54 水果智能识别系统\mainApp.cpp
文件 3559 2005-05-18 09:14 水果智能识别系统\matrix_op.h
文件 78 2005-05-23 09:40 水果智能识别系统\rbf.cpp
文件 20319 2008-01-14 16:21 水果智能识别系统\rbf结果\权值.txt
文件 306074 2008-01-14 16:21 水果智能识别系统\rbf结果\误差.txt
文件 21550 2008-01-14 16:09 水果智能识别系统\study.txt
文件 7182 2008-01-14 16:10 水果智能识别系统\test.txt
目录 0 2009-02-16 22:57 水果智能识别系统\bp结果
目录 0 2009-02-16 22:57 水果智能识别系统\Debug
目录 0 2009-02-16 22:57 水果智能识别系统\rbf结果
目录 0 2009-02-16 22:57 水果智能识别系统
----------- --------- ---------- ----- ----
1586666 25
- 上一篇:radon变换检测图像中的直线
- 下一篇:matlab读取tdms文件
相关资源
- matlab读取tdms文件
- 合成记录Matlab代码
- CEC中28个测试函数的matlab代码
- 基于Matlab的PI/4 DQPSK的调制解调源代吗
- 常模类盲均衡算法研究的matlab程序
- matlab 遗传算法组合优化
- Eigenface用MATLAB实现
- 手指静脉识别matlab
- 快速傅里叶的matlab代码
- matlab元胞自动机模拟交通路况
- OTSU二值化算法matlab
- 协作通信三种协作方式AF+DF+CC的matla
- 最小二乘法matlab代码205964
- MPPT仿真matla实现
- haar特征提取 matlab
- 形态金字塔图像融合matlab
- 蚁群算法 matlab仿真程序,详细注释
- FLICM聚类算法matlab代码与C代码
- 基于MATLAB编写的前推回代法求解放射
- 示波器wfm读取
- Matlab2010免安装版百度网盘地址
- LQR系统最优控制器设计的MATLAB实现及
- CW脉冲和LFM信号Matlab仿真
- MATLAB程序计算两个日期之间的总天数
- 元胞自动机的单双道交通建模Matlab仿
- matlab轴心轨迹算例
- Matlab求解直流潮流程序
- 采用混沌和小波相结合的方式实现的
- matlab基于分水岭算法处理图像分割的
- MATLAB的地震正演程序
评论
共有 条评论