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

📄 noisegen.java

📁 Java语言实现的支持向量机的源码。对研究人工智能的朋友有用。
💻 JAVA
字号:
package util;

import umontreal.iro.lecuyer.probdist.NormalDist;
import umontreal.iro.lecuyer.randvar.NormalGen;
import umontreal.iro.lecuyer.randvarmulti.MultiNormalGen;
import umontreal.iro.lecuyer.rng.LFSR113;
import umontreal.iro.lecuyer.rng.RandomStream;

public class NoiseGen
{
	//噪声的均值
	protected double[] mean;
	//协方差
	protected double[][]cov;
	//维数
	protected int dem;
	//多元正态分布产生器
	protected MultiNormalGen multiNormalGen;
	
	//如果各维是相互独立的,则协方差矩阵是一个对角矩阵
	public NoiseGen(double[] mean,double[] der)
	{
		this.mean=mean;
		dem=mean.length;
		cov=new double[dem][dem];
		for(int i=0;i<dem;i++)
		{
			for(int j=0;j<dem;j++)
			{
				if(i==j)
					cov[i][j]=der[i];
				else
					cov[i][j]=0;
			}
		}
	}
	
	public NoiseGen(double[] mean,double[][] cov)
	{
		this.mean=mean;
		this.cov=cov;
	}
	
	//定义多元正态分布产生器
	public void GenNorDistributiion()
	{
		RandomStream rs=new LFSR113();
		NormalDist noralDist=new NormalDist();
		NormalGen normalGen=new NormalGen(rs,noralDist);
		multiNormalGen=new MultiNormalGen(normalGen,mean,cov);
	}
	
	public double[] getNoise()
	{
		double[] noise=new double[dem];
		multiNormalGen.nextPoint(noise);
		return noise;
	}
	public void printMultiNorm()
	{
		double[] nextValue=new double[dem];
		multiNormalGen.nextPoint(nextValue);
		for(int i=0;i<nextValue.length;i++)
		{
			System.out.print(nextValue[i]+"  ");
		}
		System.out.println();
	}
	
	public static void main(String[] args)
	{
		int dem=4;
		double[] mean=new double[dem];
		double[][] cov=new double[dem][dem];
		
		for(int i=0;i<dem;i++)
		{
			mean[i]=0;
		}
		
		for(int i=0;i<dem;i++)
		{
			for(int j=0;j<dem;j++)
			{
				if(i==j)
					cov[i][j]=1.0;
				else
					cov[i][j]=0;
			}
		}
		NoiseGen noiseGen=new NoiseGen(mean,cov);
		noiseGen.GenNorDistributiion();
		
		for(int i=0;i<100;i++)
		{
			noiseGen.printMultiNorm();
		}
	}
}

⌨️ 快捷键说明

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