Java 逆正态累积分布函数转换
我们使用极端优化()中的极端数值库作为计算内核Java 逆正态累积分布函数转换,java,c#,Java,C#,我们使用极端优化()中的极端数值库作为计算内核 // portfolio risk is inverse normal cumulative distribution function double risk = NormalDistribution.InverseDistributionFunction( _riskProbabilityLevel, mean, stdev); 现在的问题是,我们正在从C#转向Java,我对Java的了解并不多,但我的任务是重新编写这个特定的
// portfolio risk is inverse normal cumulative distribution function
double risk = NormalDistribution.InverseDistributionFunction(
_riskProbabilityLevel,
mean,
stdev);
现在的问题是,我们正在从C#转向Java,我对Java的了解并不多,但我的任务是重新编写这个特定的函数
我有一些价值观需要测试:
RiskProbabilityLevel = 0.02
Mean = 0.06618
Standard Dev = 0.057196166520267355
Risk = 0.051286461995869864
但是在查看math3.distribution.NormalDistribution
库中的各种函数时,我找不到可能等效的函数
任何指导或帮助都将不胜感激。
谢谢。我想你们可以用图书馆。它被称为apachecommons.math3
。它很受欢迎。从提供的文档中,我认为您可以使用以下代码:
import org.apache.commons.math3.distribution.NormalDistribution;
public class TestProbabilites {
public static void main(String[] args) {
double riskProbabilityLevel = 0.02D;
double mean = 0.06618D;
double standardDev = 0.057196166520267355D;
double expectedRisk = 0.051286461995869864D;
NormalDistribution distribution = new NormalDistribution(mean, standardDev);
double outcomeRisk = distribution.inverseCumulativeProbability(riskProbabilityLevel);
}
}
但是您必须记住使用Maven
或Gradle
或其他依赖项管理器将apache.commons.math3
库添加到项目中
希望这能有所帮助。谢谢你的回答,救生员!对不起那些认为这是离题的人,考虑到实际上只有一种方法可以将“x”转换为“y”,我不确定它的范围有多广。不管怎样,那个人救了我的饭碗。