13 double findzero(
double a,
double b,
const std::function<
double(
double) > & evaltarget);
16 template<
class T,
class U>
19 double eps = 0.000001,
size_t maxIter = 50)
25 U xn = guess_a, xn1 = guess_b, xn2;
35 xn = xn1 - fxn1 * (xn1 - xn2) / (fxn1 - fxn2);
36 }
while ( (abs(xn-xn1) > eps) && (i++ < maxIter));
39 .add<
size_t>(
"maxIter", maxIter)
40 .add<double>(
"eps", eps)
41 .template add<U>(
"guess_a", guess_a)
42 .
template add<U>(
"guess_b", guess_b)
43 .template add<U>(
"xn",xn)
44 .
template add<U>(
"xn1",xn1)
45 .template add<U>(
"xn2",xn2)
46 .
template add<U>(
"fxn1",fxn1)
47 .template add<U>(
"fxn2",fxn2);
U secantMethod(const T &f, U guess_a, U guess_b, double eps=0.000001, size_t maxIter=50)
double findzero(double a, double b, const std::function< double(double) > &f)
Zero-finding implementation - Brent's method.