Задача «Решение численных уравнений (шаблонный метод)»

Задача

Используя паттерн шаблонный метод написать систему классов, которая позволит применять различные сходящиеся итерационные алгоритмы, которые все имеют схожий алгоритм:

  1. Проверить некоторое уловие с некоторой точностью. Если верно - вернуть текущий результат Xk
  2. Если нет - вычислить следубщий член последовательности предполагаемых результатов Xk+1 = g(Xk) и т.д.

В этой задаче необходимо численно решить одномерное уравнение f(x)=0 на интервале [a, b] (в предположении, что на заданном интервале есть только один корень). Приблизительно так. Хочется уметь это делать разными методами:

Необходимо реализовать эти два алгоритма, используя паттерн проектирования «Шаблонный метод».

Обратите внимание, что метод Ньютона кроме основной функции f требует задания её производной f'. Учтите этот факт при разработке интерфейса классов.