de.unihalle.informatik.MiToBo.math.distributions.impl
Class GaussMixDistribution

java.lang.Object
  extended by de.unihalle.informatik.MiToBo.math.distributions.impl.MixtureDistribution
      extended by de.unihalle.informatik.MiToBo.math.distributions.impl.GaussMixDistribution
All Implemented Interfaces:
EvaluatableDistribution<Jama.Matrix>, FirstOrderMoment<Jama.Matrix>, LogEvaluatableDistribution<Jama.Matrix>, LogProbabilityDensityFunction, ProbabilityDensityFunction, SamplingDistribution<Jama.Matrix>, SecondOrderCentralMoment<Jama.Matrix>, Copyable<GaussMixDistribution>

public class GaussMixDistribution
extends MixtureDistribution
implements SamplingDistribution<Jama.Matrix>, FirstOrderMoment<Jama.Matrix>, SecondOrderCentralMoment<Jama.Matrix>, Copyable<GaussMixDistribution>

A multivariate Gaussian mixture distribution.

Author:
Oliver Gress

Field Summary
protected  java.util.Random rand
           
 
Fields inherited from class de.unihalle.informatik.MiToBo.math.distributions.impl.MixtureDistribution
pdfs, weights
 
Constructor Summary
GaussMixDistribution(GaussianDistribution[] pdfs, double[] weights, java.util.Random rand)
          Constructor for weighted Gaussian components
GaussMixDistribution(GaussianDistribution[] pdfs, java.util.Random rand)
          Constructor with equally weighted Gaussian components
 
Method Summary
 GaussMixDistribution copy()
           
 Jama.Matrix drawSample()
          Generate a new sample from this density.
 Jama.Matrix getCovariance()
           
 Jama.Matrix getMean()
           
 void setPdf(int idx, ProbabilityDensityFunction pdf)
           
 
Methods inherited from class de.unihalle.informatik.MiToBo.math.distributions.impl.MixtureDistribution
getNumOfComponents, getPdf, getWeight, getWeights, log_p, normalizeWeights, p, setWeight, setWeights
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

rand

protected java.util.Random rand
Constructor Detail

GaussMixDistribution

public GaussMixDistribution(GaussianDistribution[] pdfs,
                            double[] weights,
                            java.util.Random rand)
                     throws java.lang.IllegalArgumentException
Constructor for weighted Gaussian components

Parameters:
pdfs - Gaussian distributions
weights - weights of Gaussian distributions
rand - random generator for sampling
Throws:
java.lang.IllegalArgumentException - if length of pdfs- and weights-array differs

GaussMixDistribution

public GaussMixDistribution(GaussianDistribution[] pdfs,
                            java.util.Random rand)
Constructor with equally weighted Gaussian components

Parameters:
pdfs - Gaussian distributions
rand - random generator for sampling
Method Detail

copy

public GaussMixDistribution copy()
Specified by:
copy in interface Copyable<GaussMixDistribution>

drawSample

public Jama.Matrix drawSample()
Description copied from interface: SamplingDistribution
Generate a new sample from this density. This method should create a new object.

Specified by:
drawSample in interface SamplingDistribution<Jama.Matrix>
Returns:
new sample object

getCovariance

public Jama.Matrix getCovariance()
Specified by:
getCovariance in interface SecondOrderCentralMoment<Jama.Matrix>

getMean

public Jama.Matrix getMean()
Specified by:
getMean in interface FirstOrderMoment<Jama.Matrix>

setPdf

public void setPdf(int idx,
                   ProbabilityDensityFunction pdf)
            throws java.lang.IllegalArgumentException
Overrides:
setPdf in class MixtureDistribution
Throws:
java.lang.IllegalArgumentException