600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > irr java_Java版的IRR(内部收益率)实现

irr java_Java版的IRR(内部收益率)实现

时间:2021-02-02 11:55:35

相关推荐

irr java_Java版的IRR(内部收益率)实现

实现了EXCEL中的IRR函数。

public static double irr(double[] income) {

return irr(income, 0.1D);

}

public static double irr(double[] values, double guess) {

int maxIterationCount = 20;

double absoluteAccuracy = 1.0E-007D;

double x0 = guess;

int i = 0;

while (i < maxIterationCount) {

double fValue = 0.0D;

double fDerivative = 0.0D;

for (int k = 0; k < values.length; k++) {

fValue += values[k] / Math.pow(1.0D + x0, k);

fDerivative += -k * values[k] / Math.pow(1.0D + x0, k + 1);

}

double x1 = x0 - fValue / fDerivative;

if (Math.abs(x1 - x0) <= absoluteAccuracy) {

return x1;

}

x0 = x1;

i++;

}

return (0.0D / 0.0D);

}

public static void main(String[] args) {

double[] income = {-9272.49,0,0,0,0,0,0,0,0,0,888.49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,888.49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,888.49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,888.49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,888.49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,888.49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,888.49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,888.49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,888.49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,888.49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,888.49,};

double ret = irr(income,0.00001d) ;

System.out.println(new BigDecimal(ret));

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。