问题标签 [apache-commons-math]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Calculate probability of bivariate normal distribution over area / polygon
I'm trying to calculate the probability of a bivariate normal distribution over a specific area respectively a specific polygon in java.
The mathematical description would be to integrate the probability density function (pdf) of the bivariate normal distribution over a specific complex area.
My first approach was to use two NormalDistribution
objects with the aid of the apache-commons-math
library. Given dataset x for dimension 1 and dataset y for dimension 2 I've computed mean and standard deviation for each NormalDistribution
.
With the method
public double probability(double x0, double x1)
from org.apache.commons.math3.distribution.NormalDistribution
I'm able to set an individual interval for each dimension, which means I can define a rectangular area and get the probability by
If the standard deviations are small enough and the defined region is large enough, the probability will approach to a number of 1.0 (0.99999999999), which is expected.
As I've said I need to compute a specific area, my first approach won't work this way because I'm only able to define rectangular areas.
So my second approach was to use the class MultivariateNormalDistribution
, which is also implemented in apache-commons-math
.
By using the MultivariateNormalDistribution
with the vector means and the covariance matrix, I'm able to get the pdf of a specific point x with public double density(double[] vals)
, like the description is saying
Returns the probability density function (PDF) of this distribution evaluated at the specified point x.
In this approach I'm converting my complex area in an ArrayList of Points and subsequently summing up all the densities by iterating over the ArrayList like this:
But I've encountered a problem with lacking precision when setting the standard deviations to really low values so that the pdf is containing peaks > 1 at the position I'm calling mnd.density(pos)
. So the sum is adding up to values > 1.
To avoid these peaks I'm trying to sum up the average of a summed up value which are the surrounding points in double precision of the current point by
which obviously works.
All in all I'm not quite sure if my approaches are fundamentally correct. Another approach would be to compute the probability with numerical integration but I'm clueless how to achieve this in java.
Are there any other possibilities to achieve this?
EDIT:
Beside the fact of lacking accuracy, the main question is: Is the second approach "summing up the densities" a valid method to obtain a probability in an area of a bivariate normal distribution? Thinking about 1-dimensional normal distributions, the probability of one specific point is always 0. How does the public double density(double[] vals)
method in the apache math library obtain a valid value?
java - 在 commons.math 中寻找多项式函数的最优值
有没有一种简单的方法可以在 commons.math 中找到 PolynomialFunction(也是 UnivariateDifferentiableFunction)的最优值?有一系列令人眼花缭乱的多维优化器,但 AFAICS 唯一明确的单变量优化器是 Brent,它没有利用可微性。
java - 使用 apache.math3.stat.descriptive 的百分位数计算不匹配
我正在计算以下数字列表的第 95 个百分位:
apache 库使用 NIST 标准来计算百分位数,这与 Excel 使用的方法相同。根据 Excel,上面列表的第 95 个百分位应该是 1125.85。
但是,使用以下代码,我得到了不同的结果:
这失败并显示以下消息:
1134.6是列表中的最大值,不是第95个百分位,所以我不知道这个值是从哪里来的。
java - 如何修复 Netbeans 中的 java.lang.NoClassDefFoundError?
我正在开发一个从 GUI 程序 (fpotenciaui) 使用的库 (fpotencia)。图书馆使用commons math
图书馆。
当我运行 GUI 程序时,我得到:
我在这里读到这是由于库在设计时存在而不是在运行时存在。
我还在这里读到我需要commons-logging.jar
从这里包含库,我已经为库和 UI 项目做了这些。
我希望能够从 Netbeans 中包含我需要的任何内容,因为当我与其他人共享代码时,我不希望他们必须做诸如在路径中包含库之类的事情。我是电气工程师,我发现必须“手动”做这些事情非常麻烦,此外,如果我必须在命令行的路径中包含库,为什么还要使用 Netbeans?
所以我的问题是,如果我明确将库包含在项目中,为什么 Netbeans 不解决这个问题?
PS:也许我误解了这个问题,如果是这样,我会很感激一些指导来解决这个问题。谢谢。
java - 使用 apache 简单回归
我有一个使用线性回归的应用程序。我下载common math
了有类的 apache 库SimpleRegression
。
我阅读了文档,但我不太了解它。
这是我想要做的:
每 200 毫秒,我将输入一个数据集,其中counter
Y 和value
X。
每 1 秒(所以 5 个数据条目)我想检查回归并查看某个值 Z 是否在线。
数据输入部分我知道该怎么做,但我不确定如何检查是否有某个值 iz 在线。
谁能帮我?
java - 初始化复杂稀疏矩阵
我已经用 apache commons-math 声明了一个稀疏复杂矩阵,但我完全不知道如何初始化它,此外,文档似乎很差。
如果我尝试设置Y
等于一个新实例,它会返回一个错误no suitable constructor
,如果我调用它,Y.CreateMatrix(int, int)
它会告诉 Y 为 Null。
那么,如何初始化Y
呢?
java - Apache Commons Math3:将行与列向量相乘
我想将两个向量 a^T = (1,2,3) 和 b = (4,5,6) 相乘。用钢笔和铅笔,我得到了
使用 apache commons math3 我做
得到向量的表示。为了得到结果,我想做类似的事情
但我找不到合适的方法(无论是转置还是相乘)。
java - 如何使用 apache-common-maths 在特定间隔上获取函数的最小值/最大值
我在apache-commons-math userguide中找不到任何关于寻找函数极值 (max/min) 的信息。
如何在 apache-commons-math 的帮助下找到函数 min/max?
PS 至少对于多项式函数
java - Apache Commons Math:获取派生/积分函数
我正在使用多项式函数。我以以下方式推导/集成我的函数f
:
但是如何在f
不指定实际值的情况下从函数中获得推导/积分结果?
即导数 (8 + 3x + x^2) => 3 + 2x
java - 用于 JAVA 的八度 dfdp.m
我想在 JAVA 中实现 Levenberg Marquardt 拟合,并发现 apache commons math 是合适的。由于我想拟合一个函数,而我没有计算梯度或雅可比行列式的导数,因此我需要来自 GNU octave 的 dfdp.m 之类的东西来计算数值导数。有人已经这样做了吗?