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);
}
'java' 카테고리의 다른 글
피보나치 수열 간단 알고리즘 (0) | 2013.09.26 |
---|---|
java 엑셀 함수 NPV 구현 (0) | 2013.07.09 |
자릿수 만큼 0 붙이기 (0) | 2011.09.07 |
JAVA7 문자열 비교 (0) | 2011.09.06 |
TOMCAT utf-8 OS 별로 한글 깨짐 해결 (0) | 2009.09.28 |