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

📄 util_xxz.java

📁 绝对自己写的JAVA程序
💻 JAVA
字号:
/*
 * 创建日期 2008-11-16
 *
 * TODO 要更改此生成的文件的模板,请转至
 * 窗口 - 首选项 - Java - 代码样式 - 代码模板
 */

/**
 * @author xxzxxz
 *
 * TODO 要更改此生成的类型注释的模板,请转至
 * 窗口 - 首选项 - Java - 代码样式 - 代码模板
 */
public class Util_xxz {
	public static int I=2,M=4,L=1;
	public static double land=0.1,thi=0.6;
	public static double wji[][]=new double[M][];
	public static double wji_b[][]=new double[M][];
	public static double wkj[][]=new double[L][];
	public static double wkj_b[][]=new double[L][];
	public  static double xigk[]=new double[L];
	public  static double aj[]=new double[M];
	public  static double ak[]=new double[L];
	public static void init()
	{
		
			wkj[0]=new double[]{4,0.3,1,5};
			
		
		for(int i=0;i<L;i++)
		{
			wkj_b[i]=new double[]{4,0.3,1,5};
		}
		/*for(int i=0;i<M;i++)
		{
			wji[i]=new double[]{1,1};
		}*/
		
		wji[0]=new double[]{1,0.1};
		wji[1]=new double[]{1,0.3};
		wji[2]=new double[]{6.5,0.3};
		wji[3]=new double[]{1.5,4.3};
		wji_b[0]=new double[]{1,0.1};
		wji_b[1]=new double[]{1,0.3};
		wji_b[2]=new double[]{6.5,0.3};
		wji_b[3]=new double[]{1.5,4.3};
		/*for(int i=0;i<M;i++)
		{
			wji_b[i]=new double[]{0,1};
		}*/
	}
	public static void bp(double ai[],double yk[])
	{
		
		
		for(int j=0;j<M;j++)
		{
			//middleTrainer(j,aj[j],ai);
			aj[j]=f1(ai,thi,wji[j]);
		
			
		}
		for(int k=0;k<L;k++)
		{
			//outTrainer(k,yk[k],ak[k]);
			ak[k]=f1(aj,thi,wkj[k]);
		//	System.out.println(ak[k]);
			
		}

		for(int j=0;j<M;j++)
		{
			middleTrainer(j,aj[j],ai);
			//aj[j]=f1(ai,thi,wji[j]);
		
			
		}
		for(int k=0;k<L;k++)
		{
			outTrainer(k,yk[k],ak[k]);
			//ak[k]=f1(aj,thi,wkj[k]);
		//	System.out.println(ak[k]);
			
		}
		
		
		
	}
	public static void outTrainer(int k,double yk,double ak)//yk教师,ak输出,aj隐层输出
	{
		xigk[k]=ak*(1-ak)*(yk-ak);
		//System.out.print("("+yk+":"+ak+":"+xigk[k]+")");
		for(int j=0;j<M;j++)
		{
			double temp=wkj[k][j];
			wkj[k][j]=wkj[k][j]+xigk[k]*land*aj[j]+ak*(wkj[k][j]-wkj_b[k][j]);
			wkj_b[k][j]=temp;
		}
	}
	public static void middleTrainer(int j,double aj,double ai[])//yk教师,ak输出
	{
		double sum=0;
		for(int k=0;k<L;k++)
		{
			sum=sum+wkj[k][j]*xigk[k];
			//System.out.print(":"+xigk[k]+":");
		}
		double xigj=aj*(1-aj)*sum;
		//System.out.print(":"+aj+":");
		for(int i=0;i<I;i++)
		{
			double temp=wji[j][i];
			
			wji[j][i]=wji[j][i]+xigj*land*ai[i]+aj*(wji[j][i]-wji_b[j][i]);
			wji_b[j][i]=temp;
		}
	}
	public static double f1(double[] x,double thi,double[] w )
	{
		float sum=0;
		for(int i=0;i<x.length;i++)
		{
			sum+=x[i]*w[i];
		}
		return 1/(1+Math.exp(-sum+thi));
	}
	public static double result(double ai[])//yk教师,ak输出
	{
		
		for(int j=0;j<M;j++)
		{
		
			aj[j]=f1(ai,thi,wji[j]);
			
		}
		for(int k=0;k<L;k++)
		{
			ak[k]=f1(aj,thi,wkj[k]);
			//System.out.println(ak[k]);
			
		}
		return ak[0];
		
	}
	public static void showW()
	{
		int k=0;
		for(k=0;k<L;k++)
		{
			for(int j=0;j<M;j++)
			{
			System.out.print(wkj[k][j]+"  ");
			}
			System.out.println("");
		}
		for(k=0;k<M;k++)
		{
			for(int j=0;j<I;j++)
			{
			System.out.print(wji[k][j]+"  ");
			}
			System.out.println("");
		}
	
	}

}

⌨️ 快捷键说明

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