(1) 考え方
 区間[x1,x2]で単調増加であり、f(x1) < 0 かつf(x2) > 0となるような関数f(x)が与えられたとき、f(x)=0の解を求める関数をsecant とします。
double secant(double x1, double x2)
{
 .....

}
 secantは解の存在する区間を引数として受けとり、この区間を十分小さくなるまで(解の精度が保証されるまで)徐々(再帰的)に狭くしていくようにすればよいことになります。
(十分小さくなったときに、例えば、その区間の中点を解として返すようにすればよい)

 解の存在する区間の縮小の仕方は、既に述べた方法を用います。

 区間[0.0, 2.0]で解を求める場合にはこれを
sol = secant(0.0, 2.0);
と用います。

(2) 精度の保証
 解x0が区間[x1, x2]に存在することが分かったとします。このとき |x2 - x1| < εとなったとすると、区間[x1,x2]の中のどの値pを解としても、真の解x0との差は
| p - x0 | < x2 - x1 < ε 
となります。即ち、区間の幅を求められる精度より狭くできれば、その中のどの値を用いても 真の解との差は必要な精度よりは小さくなることが保証されるのです。