java

java 엑셀 함수 IRR 구현

매운깡스 2013. 7. 9. 17:21

public static int irr(double[] arr){

double irrVal = 0.0;

// 수익율

double r = 0.1;

while(true){

//f(x)

double f1 = 0;

//f'(x)

double f2 = 0;

for(int i=0;i<arr.length;i++){

if(i != arr.length-1){

f1 += (arr[i]/Math.pow(1+r, i));

}

if(i >= 2){

f2 += (arr[i]/Math.pow(1+r, i));

}

}

// r

double x1 = r - f1/f2;

irrVal = x1;

if((x1 - r) < 0.000001)

break;

r = x1;

}

System.out.println("IRR : " + irrVal);

return (int)(irrVal * 100);

}