Производные я считаю с тем же шагом что и шаг интергрирования
А зачем?... Я ж говорю -- это вещи между собой непосредственно никак не связаны. Шаг интегрирования -- лимитируется требуемой скоростью алгоритма (ну или памятью, при извращённой реализиции метода). А шаг численного дифференцирования -- всего лишь разрядностью машины: при слишком малом шаге погрешность округления начинает забивать погрешность собственно формулы.
Ведь те пресловутые частные производные Ваших функций

-- это вовсе
не те производные, которые фигурируют в собственно методе решения ОДУ.