Author: luc
Date: Wed Jul 4 13:49:09 2007
New Revision: 553328
URL: http://svn.apache.org/viewvc?view=rev&rev=553328
Log:
slightly improved documentation for random vectors generation
Modified:
jakarta/commons/proper/math/trunk/src/java/org/apache/commons/math/random/CorrelatedRandomVectorGenerator.java
jakarta/commons/proper/math/trunk/xdocs/userguide/random.xml
Modified:
jakarta/commons/proper/math/trunk/src/java/org/apache/commons/math/random/CorrelatedRandomVectorGenerator.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/math/trunk/src/java/org/apache/commons/math/random/CorrelatedRandomVectorGenerator.java?view=diff&rev=553328&r1=553327&r2=553328
==============================================================================
---
jakarta/commons/proper/math/trunk/src/java/org/apache/commons/math/random/CorrelatedRandomVectorGenerator.java
(original)
+++
jakarta/commons/proper/math/trunk/src/java/org/apache/commons/math/random/CorrelatedRandomVectorGenerator.java
Wed Jul 4 13:49:09 2007
@@ -28,15 +28,26 @@
* the uncorrelated components of another random vector in such a way that
* the resulting correlations are the ones specified by a positive
* definite covariance matrix.</p>
+ * <p>The main use for correlated random vector generation is for Monte-Carlo
+ * simulation of physical problems with several variables, for example to
+ * generate error vectors to be added to a nominal vector. A particularly
+ * interesting case is when the generated vector should be drawn from a <a
+ * href="http://en.wikipedia.org/wiki/Multivariate_normal_distribution">
+ * Multivariate Normal Distribution</a>. The approach using a Cholesky
+ * decomposition is quite usual in this case. However, it cas be extended
+ * to other cases as long as the underlying random generator provides
+ * [EMAIL PROTECTED] NormalizedRandomGenerator normalized values} like [EMAIL
PROTECTED]
+ * GaussianRandomGenerator} or [EMAIL PROTECTED] UniformRandomGenerator}.</p>
* <p>Sometimes, the covariance matrix for a given simulation is not
* strictly positive definite. This means that the correlations are
* not all independant from each other. In this case, however, the non
* strictly positive elements found during the Cholesky decomposition
* of the covariance matrix should not be negative either, they
- * should be null. This implies that rather than computing <code>C =
- * U<sup>T</sup>.U</code> where <code>C</code> is the covariance matrix and
- * <code>U</code> is an uppertriangular matrix, we compute <code>C =
- * B.B<sup>T</sup></code> where <code>B</code> is a rectangular matrix having
+ * should be null. Another non-conventional extension handling this case
+ * is used here. Rather than computing <code>C = U<sup>T</sup>.U</code>
+ * where <code>C</code> is the covariance matrix and <code>U</code>
+ * is an uppertriangular matrix, we compute <code>C = B.B<sup>T</sup></code>
+ * where <code>B</code> is a rectangular matrix having
* more rows than columns. The number of columns of <code>B</code> is
* the rank of the covariance matrix, and it is the dimension of the
* uncorrelated random vector that is needed to compute the component
Modified: jakarta/commons/proper/math/trunk/xdocs/userguide/random.xml
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/math/trunk/xdocs/userguide/random.xml?view=diff&rev=553328&r1=553327&r2=553328
==============================================================================
--- jakarta/commons/proper/math/trunk/xdocs/userguide/random.xml (original)
+++ jakarta/commons/proper/math/trunk/xdocs/userguide/random.xml Wed Jul 4
13:49:09 2007
@@ -37,7 +37,7 @@
<li>generating random strings</li>
<li>generating cryptographically secure sequences of random numbers or
strings</li>
- <li>generating random samples and permuations</li>
+ <li>generating random samples and permutations</li>
<li>analyzing distributions of values in an input file and generating
values "like" the values in the file</li>
<li>generating data for grouped frequency distributions or
@@ -51,9 +51,9 @@
<code>java.util.Random</code> with an alternative PRNG.
</p>
<p>
- Sections 2.2-2.5 below show how to use the commons math API to generate
+ Sections 2.2-2.6 below show how to use the commons math API to generate
different kinds of random data. The examples all use the default
- JDK-supplied PRNG. PRNG pluggability is covered in 2.6. The only
+ JDK-supplied PRNG. PRNG pluggability is covered in 2.7. The only
modification required to the examples to use alternative PRNGs is to
replace the argumentless constructor calls with invocations including
a <code>RandomGenerator</code> instance as a parameter.
@@ -164,7 +164,33 @@
</p>
</subsection>
-<subsection name="2.3 Random Strings" href="strings">
+<subsection name="2.3 Random Vectors" href="vectors">
+ <p>
+ Some algorithm requires random vectors instead of random scalars. When the
+ components of these vectors are uncorrelated, they may be generated simply
+ one at a time and packed together in the vector. The <a
+
href="../apidocs/org/apache/commons/math/random/UncorrelatedRandomVectorGenerator.html">
+ org.apache.commons.math.UncorrelatedRandomVectorGenerator</a> class
+ does however simplify this process by setting the mean and deviation of
each
+ component once and generating complete vectors. When the components are
correlated
+ however, generating them is much more difficult. The <a
+
href="../apidocs/org/apache/commons/math/random/CorrelatedRandomVectorGenerator.html">
+ org.apache.commons.math.CorrelatedRandomVectorGenerator</a> class
+ provides this service. In this case, the user must set a complete
covariance matrix
+ instead of a simple standard deviations vector, this matrix gather both
the variance
+ and the correlation information of the probability law.
+ </p>
+ <p>
+ The main use for correlated random vector generation is for Monte-Carlo
+ simulation of physical problems with several variables, for example to
+ generate error vectors to be added to a nominal vector. A particularly
+ interesting case is when the generated vector should be drawn from a <a
+ href="http://en.wikipedia.org/wiki/Multivariate_normal_distribution">
+ Multivariate Normal Distribution</a>.
+ </p>
+ </subsection>
+
+<subsection name="2.4 Random Strings" href="strings">
<p>
The methods <code>nextHexString</code> and <code>nextSecureHexString</code>
can be used to generate random strings of hexadecimal characters. Both
@@ -194,7 +220,7 @@
</p>
</subsection>
-<subsection name="2.4 Random permutations, combinations, sampling"
+<subsection name="2.5 Random permutations, combinations, sampling"
href="combinatorics">
<p>
To select a random sample of objects in a collection, you can use the
@@ -221,7 +247,7 @@
</p>
</subsection>
-<subsection name="2.5 Generating data 'like' an input file" href="empirical">
+<subsection name="2.6 Generating data 'like' an input file" href="empirical">
<p>
Using the <code>ValueServer</code> class, you can generate data based on
the values in an input file in one of two ways:
@@ -274,7 +300,7 @@
</p>
</subsection>
-<subsection name="2.6 PRNG Pluggability" href="pluggability">
+<subsection name="2.7 PRNG Pluggability" href="pluggability">
<p>
To enable alternative PRNGs to be "plugged in" to the commons-math data
generation utilities and to provide a generic means to replace
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]