어떻게 반복의 secant 방법을 PHP로 바꿀까요? (F (X I에게) (X I -x I + 1))/F (X I에게) -Secant 반복 방법 PHP로
수식 I + 1 = X I X 인 - f (xi-1)
여기서 f = 함수이고 i는 반복이다.
그래서 X 나는 + 1은
지금까지 내가 이것을 본 나는 X 후 다음 반복하지만, 사람이하지 않는, 어딘가 잘못 somethning 그래서 난 처음부터 일을 만들고 싶어 거기 여기에 무엇이 잘못되었는지 볼 수 있습니까?
while ((abs($y0 - $y1) > FINANCIAL_ACCURACY) && ($i < FINANCIAL_MAX_ITERATIONS))
{
$rate = ($y1 * $x0 - $y0 * $x1)/($y1 - $y0);
$x0 = $x1;
$x1 = $rate;
if (abs($rate) < FINANCIAL_ACCURACY) {
$y = $pv * (1 + $nper * $rate) + $pmt * (1 + $rate * $type) * $nper + $fv;
} else {
$f = exp($nper * log(1 + $rate));
$y = $pv * $f + $pmt * (1/$rate + $type) * ($f - 1) + $fv;
}
$y0 = $y1;
$y1 = $y;
$i++;
}
감사
는 수식에 대한 확신, FINANCIAL_ACCURACY이
define('FINANCIAL_ACCURACY', 1.0e-6);
게시 된 코드는 기본적으로 여기에 게시 된 코드의 일부입니다. Excel의 복제에 대한 질문에 대한 응답으로 http://stackoverflow.com/questions/3198939/recreate-excel-rate-function-using-newtons-method PHP의 RATE() 함수. 나는 무엇이 잘못 되었는가에 관심이있다. 그러나 OP는 어떤 에러에 대해서도 많은 것을 알려주지 않는다. –
윗부분의 i + 1은 -1이되어야한다. 내가 링크 된 다른 코드를보고 오류가 있음을 확인했습니다.) define ('FINANCIAL_ACCURACY', 1.0e-6); 은 이어야합니다. define ('FINANCIAL_ACCURACY', 1.0e-8); – Jamie