Грандиозное улучшение кода

В принципе, Вам не обязательно принимать этот pull-request.
Но Вы все-таки посмотрите, в чем разница, возможно Вы найдете что-то полезным.
Обратите внимание: я вынес ядра и решения в отдельный файл - теперь их можно использовать в фукнции integ и как начальные данные в градиентном методе.
Makefile - это способ собирать бинарные файлы из исходников прямо из консоли без запуска среды разработки. Для ваших примеров я не запускаю среду разработки, потому что она загружается дольше, чем я буду эти Ваши исходники читать.
Копирайт я добавил, потому что мое средство автоматической оценки кода говорит, что надо его добавить.
Я использую для этого vera++ и было бы неплохо, чтобы Вы тоже пользовались им. Если предложите другое кроссплатформенное решение, можем применять его.
vera++ придиралось и по другим пунктам, но я уж все править не стал. Это же Ваш исходник.
Еще обратите внимание на классы kxs и zs - это абстрактные классы. Базовому классу совсем не нужно содержать реализацию. Желаю Вам того же.

А теперь по-существу: Я вводил разные начальные значения в градиентном метоже и всякий раз получал ответ, очень близкий к введенному начальному значению. Что-то тут не так. Примерно представляя, чем Вы занимаетесь по теории, думаю у Вас должна быть сильно выпуклая фукнция и одним экстремумом. И ответ не должен зависеть от начального значения. Надо тут будет разобраться.