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);
}