亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? app_main.cpp

?? 基于云理論的RBF神經網絡
?? CPP
字號:

#include "rbf_cloud.h"

/***********生命函數****************/
void write_matrix(char* textname, double * matrix [],int i,int j);
void write_matrix(char* textname, int * matrix [],int i,int j);
void drop_Matrix_Space();


/************函數實現*********************/
void center(double * input){
	double t=100;
	for(int i=1;i<=7;i++){
		t=100;
		for(int j=1;j<=A_C[i-1];j++)
			if(fabs(Ex[i][j]-input[i])<t){
				c_p[i]=j;
				t=fabs(Ex[i][j]-input[i]);
			}
		}
}

// 寫到文件
void write_matrix(char* textname, double * matrix [],int i,int j){
	fp=fopen(textname,"w");
	if(fp==NULL){
		cout<<"cannot open file"<<endl;
		exit(0);
	}
	for(int ii=1;ii<=i;ii++)
	{
		for(int jj =1;jj<=j;jj++)
		{
			fprintf(fp,"%lf",matrix[ii][jj]);
			fputc(' ',fp);
		}
		fputc('\n',fp);
	}
	fclose(fp);

}
void write_matrix(char* textname, int * matrix [],int i,int j){
	fp=fopen(textname,"w");
	if(fp==NULL){
		cout<<"cannot open file"<<endl;
		exit(0);
	}
	for(int ii=1;ii<=i;ii++)
	{
		for(int jj =1;jj<=j;jj++)
		{
			fprintf(fp,"%d",matrix[ii][jj]);
			fputc(' ',fp);
		}
		fputc('\n',fp);
	}
	fclose(fp);

}
void write_matrix(char* textname, vector<double> matrix){
	fp=fopen(textname,"w");
	if(fp==NULL){
		cout<<"cannot open file"<<endl;
		exit(0);
	}

	for(int j =1;j<=matrix.size();j++)
	{
		fprintf(fp,"%lf",matrix[j]);
		fputc(' ',fp);
	}
	fputc('\n',fp);

	fclose(fp);

}

//將已經用matlab生成好的中心讀入 輸入為study.txt 中心輸出到c[][];
void make_center()
{
	int i =1,j=1;
	double data=0.0;
	// open the center.txt
	fp=fopen("center.txt","r");	
	if(fp==NULL){
		cout<<"cannot open file"<<endl;
		exit(0);
	}
	//initial center
	for(i;i<=7;i++){
		for(j=1;j<=A_C[i-1];j++){
			fscanf(fp,"%lf",&data);
			Ex[i][j]=data;
			fgetc(fp);
		}

		for(j=1;j<=A_C[i-1];j++){
			fscanf(fp,"%lf",&data);
			En[i][j]=data;
			fgetc(fp);
		}

		for(j=1;j<=A_C[i-1];j++){
			fscanf(fp,"%lf",&data);
			He[i][j]=data;
			fgetc(fp);
		}

		for(j=1;j<=A_C[i-1];j++){
			fscanf(fp,"%lf",&data);
			Peak[i][j]=data/10000;
			fgetc(fp);
		}
		
	}
	// 形成中心層
	i = 1;
	for(int i1=1; i1<=A_C[0]; i1++)
		for(int i2=1; i2<=A_C[1]; i2++)
			for(int i3=1; i3<=A_C[2]; i3++)
				for(int i4=1; i4<=A_C[3]; i4++)
					for(int i5=1; i5<=A_C[4]; i5++)
						for(int i6=1; i6<=A_C[5]; i6++)
							for(int i7=1; i7<=A_C[6]; i7++)
							{
								C[i][1]=i1;
								C[i][2]=i2;
								C[i][3]=i3;
								C[i][4]=i4;
								C[i][5]=i5;
								C[i][6]=i6;
								C[i][7]=i7;
								i++;
							}
		
	//	中心形成完畢
	fclose(fp);
}

//生成隨機數
double _random(void) 
{ 
	int a; 
	double r; 

	a=rand()%32767; 
	r=(a+0.00)/32767.00; 

	return r; 

} 
//生成正態隨機數
double _sta(double mu,double sigma) 
{ 
	double r1,r2,r; 
			r1=_random(); 
			r2=_random(); 
			r=sqrt(-2*log(r1))*cos(2*PI*r2)*sigma+mu;
	return r;
} 

// 計算樣本的輸出向量
void compute_2(){
	//模糊度k=5
	int k =5;
	double t=-100; int position =0;
	for(int i=1;i<C_BUF;i++){
		//為每一維生成五個正態隨機數,期望是En[],方差是He[]
		for(int j =1;j<=7; j++){
			for(int ii=1;ii<=5;ii++){
				Enk[j][ii]=_sta(En[j][C[i][j]],He[j][C[i][j]]);
			}
		}
		//計算在這個中心上的輸出值
		double sum = 0.0;
		u[s_input][i] = 0.0;
		for(k=1;k<=5;k++){
			sum = 0.0;
			for(j=1;j<=7; j++){
				sum+=Peak[j][C[i][j]]*((sample[j]-Ex[j][C[i][j]])*(sample[j]-Ex[j][C[i][j]])/(Enk[j][k])*(Enk[j][k]));
			}
			sum/=5;
			u[s_input][i]+=exp(-sum/2);
		}
//		u[s_input][i]/=5;
		if(u[s_input][i]>t){
			t=u[s_input][i];
			position = i;
		}
	}
	
	cout<<"最大輸出:"<<t<<endl;
	cout<<"最近中心 ";
	for(int j=1; j<=7;j++)
	{
		cout<<C[position][j]<<" ";
	}
	cout<<endl;
}

// 計算隱藏節點的輸出矩陣(在訓練時使用)
void compute_1(){
	//從訓練文件讀入一個樣本放入sample1[]中。
	fp=fopen("study.txt","r");
	if(fp==NULL){
		cout<<"cannot open file"<<endl;
		exit(0);
	}
	s_input = 1;
	double temp;
	while(!feof(fp)){
		for(int i=1; i<=7; i++){
			fscanf(fp,"%lf",&temp);
			sample[i]=temp;
			fgetc(fp);
		}
		center(sample);
		//計算此樣本的輸出向量
		compute_2();
		//讀取下一條樣本數據
		fscanf(fp,"%d",output1[s_input]+1);
		while(fgetc(fp)!='\n'&&!feof(fp));
		s_input ++;
	}
	s_input--;
	fclose(fp);

}


double randnumber()//-0.1~0.1的隨機函數 
{
	return (sin(rand())/10) ;
}

//用LMS法求權值
void compute_3(){

	
	//初始化
	double e = 0.0;
	for(int j=0; j<C_BUF; j++)
		w.push_back(randnumber());
	double temp = 0.0;
	//對每一個輸入向量的中心輸出進行權值逼近
	for(int i=1;i<=s_input;i++){
		temp = 0.0;
		for(int ii=1; ii<C_BUF; ii++){
			if(fabs(u[i][ii])<1e-6)
				;
			else temp+=w[ii]*u[i][ii];
		}
		e = output1[i][1]-temp;
		cout<<e<<endl;
		for(int j=1; j<C_BUF; j++){
			if(fabs(u[i][j])<1e-6)
				;
			else w[j] = w[j]+2*miu*e*u[i][j];
		}
	}
		write_matrix("quanzhi.txt",w);
	
}

//開辟矩陣空間
void creat_Matrix_Space(){

	Ex= new double*[N_BUF];
	for(int i=0;i<N_BUF;i++)
		Ex[i] = new double[5];
	En= new double*[N_BUF];
	for( i=0;i<N_BUF;i++)
		En[i] = new double[5];
	He= new double*[N_BUF];
	for( i=0;i<N_BUF;i++)
		He[i] = new double[5];
	Peak= new double*[N_BUF];
	for( i=0;i<N_BUF;i++)
		Peak[i] = new double[5];
	Enk = new double *[N_BUF];
	for( i=0;i<N_BUF;i++)
		Enk[i] = new double[6];
	C= new int*[C_BUF];
	for( i=0;i<C_BUF;i++)
		C[i]=new int[N_BUF];
	/*
	w= new double*[C_BUF];
	for(i=0;i<C_BUF;i++)
		w[i] = new double[O_BUF];
		*/

	sample = new double [8+1];

	output1= new int*[S_BUF];
	for(i=0;i<S_BUF;i++)
		output1[i]= new int[O_BUF];
	output2= new int*[S_BUF];
	for(i=0;i<S_BUF;i++)
		output2[i]= new int[O_BUF];
	u= new double*[max_node];
	for(i=0;i<max_node;i++)
		u[i]= new double[C_BUF];
}

//回收空間
void drop_Matrix_Space(){

	delete []Ex;
	delete []En;
	delete []Peak;
	delete []He;
	delete []C;
	delete []sample;
	delete []u;
	delete []output1;
}

// 調用MATLAB畫結果狀態圖

void plot(){
	//混合編程
	Engine *ep; //定義Matlab 引擎指針  
    if (!(ep=engOpen(NULL))) //測試是否啟動 Matlab 引擎成功。 
    {
		cout <<"Can't start Matlab engine!" <<endl;
		exit(1);
    }
	//定義實數數組。  
	mxArray *xx = mxCreateDoubleMatrix(1,T_BUF-1, mxREAL);  
	mxArray *tt = mxCreateDoubleMatrix(1,T_BUF-1, mxREAL); 
	mxArray *oo = mxCreateDoubleMatrix(1,T_BUF-1, mxREAL);

	double m_i[T_BUF-1], m_o[T_BUF-1], o[T_BUF-1];

	for(int i=0;i<T_BUF-1;i++){
		m_i[i]=matrix_in[i+1][1];
		m_o[i]=matrix_out[i+1][1];
		o[i]=output2[i+1][1];
	}

	memcpy(mxGetPr(xx), m_i, (T_BUF-1)*sizeof(double));// 將數組 x 復制到 mxarray 數組 xx 中。 
	memcpy(mxGetPr(tt), m_o, (T_BUF-1)*sizeof(double));// 將數組 y 復制到 mxarray 數組 yy 中。 
	memcpy(mxGetPr(oo), o, (T_BUF-1)*sizeof(double));// 將數組 z 復制到 mxarray 數組 zz 中。

	engPutVariable(ep, "xx",xx);// 將 mxArray 數組 xx 寫入到 Matlab 工作空間,命名為 xx 
	engPutVariable(ep, "oo",oo);// 將 mxArray 數組 yy 寫入到 Matlab 工作空間,命名為 yy
	engPutVariable(ep, "tt",tt);// 將 mxArray 數組 zz 寫入到 Matlab 工作空間,命名為 zz 

    // 向 Matlab 引擎發送畫圖命令。 plot 為 Matlab 的畫圖函數
	engEvalString(ep, "title('測試結果圖')");
	engEvalString(ep, "xlabel('X坐標'),ylabel('Y坐標');hold on");
	engEvalString(ep, "plot(xx, oo,'r',xx, tt,'d');");

	mxDestroyArray(xx); // 銷毀 mxArray 數組 xx 和 yy 。 
	mxDestroyArray(tt);
	mxDestroyArray(oo);

	cout<<"繪圖完畢,按任一鍵退出!" <<endl;
	cin.get();
	engClose(ep); // 關閉 Matlab 引擎。 
	return;
}

//測試

void rbf_test()
{
	FILE * fp_test=NULL;
	fp_test=fopen("test.txt","r");
	if(!fp_test)
	{
		cout<<"cannot open file"<<endl;
		exit(0);
	}

	int in=1;

	// 開辟輸入輸出空間
	matrix_in = new double *[T_BUF];
	for(int i =1; i<T_BUF; i++)
		matrix_in[i]=new double[N_BUF];
	matrix_out= new double *[T_BUF];
	for( i =1; i<T_BUF; i++)
		matrix_out[i]=new double[O_BUF];


	while (!feof(fp_test))
	{	// 讀入一個實驗數據
		for(int j=1; j<N_BUF; j++)
		{
			fscanf(fp_test,"%lf",input+j);
			matrix_in[in][j] = input[j];
		}

		for( j=1;j<O_BUF;j++){
			fscanf(fp_test,"%d",output2[in]+j);
		}
		while(fgetc(fp_test)!='\n'&&!feof(fp_test));

		// 計算隱層節點輸出

		for(int i=1;i<C_BUF;i++){
			//為每一維生成五個正態隨機數,期望是En[],方差是He[]
			
			for(int j =1;j<=7; j++){
				for(int ii=1;ii<=5;ii++){
					int c = C[i][j];
					Enk[j][ii]=_sta(En[j][c],He[j][c]);
				}
			}
			//計算在這個中心上的輸出值
			double sum = 0.0;
			u[in][i] = 0.0;
			for(int k=1;k<=5;k++){
				sum = 0.0;
				for(j=1;j<=7; j++){
					int c = C[i][j];
					sum+=Peak[j][c]*((matrix_in[in][j]-Ex[j][c])*(matrix_in[in][j]-Ex[j][c])/(Enk[j][k]*Enk[j][k]));
				}
				u[in][i]+=exp(-sum/2);
			}
			u[in][i]/=5;
		}
		//*****************************

		double e = 0.0;
		double result =0.0;
		
		for(int jj=1;jj<C_BUF;jj++)
			result+=w[jj]*u[in][jj];

		matrix_out[in][1] = result;
		
		in++;
	}
	// 畫圖
	plot();

	delete [] matrix_in;
	delete [] matrix_out;
	fclose(fp_test);
}

void init(){
	w.clear();
	w.push_back(0);
	//讀入權值
	fp=fopen("quanzhi.txt","r");
	if(!fp)
	{
		cout<<"cannot open file"<<endl;
		exit(0);
	}
	int i =1;
	double temp;
	while(!feof(fp)){
		fscanf(fp,"%lf",&temp);
		w.push_back(temp);
		fgetc(fp);

		i++;
	}

}

void main(){
	
	creat_Matrix_Space();
	
	//用聚集法形成中心
	make_center();
	compute_1();
	compute_3();

	//訓練結束
	

	//開始試驗
	//先建立中心
	//make_center();
	init();
	rbf_test();
	//測試結束
	drop_Matrix_Space();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产午夜亚洲精品午夜鲁丝片| 亚洲成人一区二区| 亚洲小少妇裸体bbw| 经典三级一区二区| 欧美三级日韩三级| 综合久久综合久久| 日韩精品一区第一页| 波多野结衣中文字幕一区| 欧美美女一区二区| 樱花草国产18久久久久| 国产一区二区视频在线| 777色狠狠一区二区三区| 1000部国产精品成人观看| 久久激情综合网| 777奇米四色成人影色区| 国产精品久久久爽爽爽麻豆色哟哟| 蜜臀av性久久久久蜜臀av麻豆| 在线视频一区二区免费| 国产精品久久夜| 国产91精品入口| 精品国产一区二区三区久久影院 | 99久久精品免费观看| 欧美va亚洲va香蕉在线| 午夜精品福利一区二区三区蜜桃| 成人av动漫在线| 国产欧美一区二区精品久导航| 蜜臀av性久久久久av蜜臀妖精| 欧美日韩免费电影| 亚洲一区二区三区中文字幕在线| 91啪亚洲精品| 亚洲精品午夜久久久| 99久久99久久精品国产片果冻| 精品国内片67194| 韩国女主播成人在线| 日韩欧美黄色影院| 韩国毛片一区二区三区| 久久婷婷色综合| 国产激情91久久精品导航| 久久这里都是精品| 粉嫩久久99精品久久久久久夜| 国产午夜一区二区三区| 国产99久久久国产精品免费看| 国产日韩欧美制服另类| 成人综合婷婷国产精品久久蜜臀| 久久精品无码一区二区三区| 国产成人免费视频网站| 最新国产精品久久精品| 99精品视频一区| 亚洲第一综合色| 日韩一级片网站| 国产精品一区二区91| 中文字幕va一区二区三区| 91丨porny丨首页| 亚洲高清一区二区三区| 欧美一区二区三区免费观看视频| 美国十次综合导航| 国产亚洲婷婷免费| 色婷婷精品久久二区二区蜜臂av | 91亚洲精品一区二区乱码| 一区二区三区中文字幕精品精品| 91精品福利在线| 美女高潮久久久| 国产精品久久久久久久午夜片| 91啪亚洲精品| 久久97超碰色| 亚洲综合在线电影| 精品美女在线播放| 色综合网色综合| 久久成人免费网| 亚洲乱码中文字幕| 精品国产凹凸成av人导航| 99视频在线精品| 日韩av在线播放中文字幕| 久久久久久97三级| 欧美日本视频在线| 成人黄色在线视频| 男女男精品视频网| 一区二区三区日韩精品视频| 久久伊99综合婷婷久久伊| 欧美中文字幕久久| 国产·精品毛片| 日韩国产精品久久| 伊人婷婷欧美激情| 久久久99精品久久| 欧美一级久久久| 欧洲精品视频在线观看| 成人丝袜18视频在线观看| 午夜激情一区二区| 伊人夜夜躁av伊人久久| 国产欧美一区二区在线观看| 欧美日韩黄色一区二区| 91香蕉视频污| 成人综合婷婷国产精品久久免费| 蜜臀av一区二区| 日韩精品一级二级| 一区二区高清在线| 最新热久久免费视频| 国产亚洲精品aa| 日韩欧美国产一区二区在线播放 | 99久精品国产| 国产v综合v亚洲欧| 国产乱码精品一区二区三区忘忧草 | 99久久综合色| 国产精品中文字幕欧美| 另类小说欧美激情| 免播放器亚洲一区| 日韩精品色哟哟| 视频一区中文字幕国产| 亚洲国产精品嫩草影院| 一区二区三区精品在线| 亚洲日本一区二区| 一区视频在线播放| 亚洲欧美在线另类| 亚洲伦在线观看| 亚洲私人影院在线观看| 国产精品久久午夜| 中文字幕在线观看不卡视频| 中文字幕高清不卡| 最新欧美精品一区二区三区| 国产精品白丝在线| 一区二区三区四区在线免费观看 | 国产乱码字幕精品高清av | 久久99深爱久久99精品| 免费在线观看成人| 国产一区在线观看视频| 国产乱人伦偷精品视频不卡| 欧美亚洲日本一区| 国产丶欧美丶日本不卡视频| 欧美一区二区三区免费视频| 国产一区久久久| 亚洲五月六月丁香激情| 久久综合九色综合97_久久久| 国产成人精品三级| 欧美国产日韩在线观看| 久久99精品久久久久久久久久久久| 日本韩国欧美在线| 婷婷丁香久久五月婷婷| 欧美高清性hdvideosex| 黑人精品欧美一区二区蜜桃| 中文字幕一区av| 91高清视频在线| 欧美aaaaaa午夜精品| 中文在线免费一区三区高中清不卡| 成人网在线免费视频| 亚洲成人一区二区| 中文字幕一区二| 欧美在线观看一二区| 久久久亚洲精品石原莉奈| 日韩精品三区四区| 国产91综合一区在线观看| 91久久精品一区二区三| 日韩一区二区在线观看视频| 七七婷婷婷婷精品国产| 日韩一区二区三| 91九色最新地址| 日韩精品免费视频人成| 婷婷国产在线综合| 99re66热这里只有精品3直播| 日韩你懂的在线观看| 婷婷久久综合九色综合伊人色| www.久久精品| 国产精品萝li| 欧美性猛交xxxx乱大交退制版 | 在线视频观看一区| 国产精品羞羞答答xxdd| 国产精品66部| 不卡一区二区在线| 成人av资源下载| 不卡视频一二三四| 成人99免费视频| 国产激情视频一区二区在线观看 | 精品久久久久久无| 欧美三级电影一区| 国产婷婷一区二区| 爽爽淫人综合网网站 | 蜜桃av噜噜一区| 91久久免费观看| 欧美激情资源网| 国产在线视频一区二区三区| 在线观看av不卡| 日韩理论片中文av| 国产高清久久久| 精品粉嫩aⅴ一区二区三区四区| 一区二区三区在线视频观看| 国产91精品久久久久久久网曝门| 91精品国产一区二区三区| 一区二区三区四区亚洲| 成人动漫一区二区| 国产精品视频一二| 国产高清亚洲一区| 久久精品一区二区三区四区| 久久国产日韩欧美精品| 制服丝袜亚洲网站| 亚洲成a人v欧美综合天堂 | 高清在线观看日韩| 久久久久久久久久久黄色| 麻豆精品久久精品色综合| 3d成人动漫网站| 免费观看在线综合色| 91精品国产综合久久久久久久|