Apache Commons Math 3.4 发布,此版本是个 bug 修复版本,同时也包括一些新特性。此版本对现有特性对于向后兼容方面允许嵌入替代 v3.3. JAR 文件。此版本最值得关注的是:新版本 (Gumbel, Laplace,
Logistic, Nakagami);改进百分数值算法(更好的处理常规算法的 NANs,添加了一个新的 storeless 实现)。此版本修复了两次立方和六次立方的相关问题。此版本还有大量的 bug 修复和相关的性能和健壮性方面的提升。
此版本最低要求 Java 5,强烈建议用户升级到此版本,不单单的 bug 修复,还有大量的废弃类。
完整改进列表请看发行说明:
http://www.apache.org/dist/commons/math/RELEASE-NOTES.txt
源代码和二进制下载:
http://commons.apache.org/proper/commons-math/download_math.cgi
Maven :
GroupId: org.apache.commons
ArtifactId: commons-math3
Version: 3.4
Commons Math 是 Apache 上一个轻量级自容器的数学和统计计算方法包,包含大多数常用的数值算法。
示例代码:
<div class="line number1 index0 alt2"><code class="java comments">// Create a real matrix with two rows and three columns</code></div>
<div class="line number2 index1 alt1"><code class="java keyword">double</code><code class="java plain">[][] matrixData = { {1d,2d,3d}, {2d,5d,3d}};</code></div>
<div class="line number3 index2 alt2"><code class="java plain">RealMatrix m = </code><code class="java keyword">new</code> <code class="java plain">Array2DRowRealMatrix(matrixData);</code></div>
<div class="line number4 index3 alt1"><code class="java spaces"> </code></div>
<div class="line number5 index4 alt2"><code class="java comments">// One more with three rows, two columns</code></div>
<div class="line number6 index5 alt1"><code class="java keyword">double</code><code class="java plain">[][] matrixData2 = { {1d,2d}, {2d,5d}, {1d, 7d}};</code></div>
<div class="line number7 index6 alt2"><code class="java plain">RealMatrix n = </code><code class="java keyword">new</code> <code class="java plain">Array2DRowRealMatrix(matrixData2);</code></div>
<div class="line number8 index7 alt1"><code class="java spaces"> </code></div>
<div class="line number9 index8 alt2"><code class="java comments">// Note: The constructor copies the input double[][] array.</code></div>
<div class="line number10 index9 alt1"><code class="java spaces"> </code></div>
<div class="line number11 index10 alt2"><code class="java comments">// Now multiply m by n</code></div>
<div class="line number12 index11 alt1"><code class="java plain">RealMatrix p = m.multiply(n);</code></div>
<div class="line number13 index12 alt2"><code class="java plain">System.out.println(p.getRowDimension()); </code><code class="java comments">// 2</code></div>
<div class="line number14 index13 alt1"><code class="java plain">System.out.println(p.getColumnDimension()); </code><code class="java comments">// 2</code></div>
<div class="line number15 index14 alt2"><code class="java spaces"> </code></div>
<div class="line number16 index15 alt1"><code class="java comments">// Invert p, using LU decomposition</code></div>
<div class="line number17 index16 alt2"><code class="java plain">RealMatrix pInverse = </code><code class="java keyword">new</code> <code class="java plain">LUDecompositionImpl(p).getSolver().getInverse();</code></div>