Aneto писал(а):
последовательно брать массивы по 10-20 с шагом в 1-2 точки и сравнивать коэффициент корреляции с 1...
Здесь многое зависит от априорного знания о кривой. Вы писали, что она имеет S-ю форму, возрастает (то есть коэфффициент корреляции больше 0), имеет один участок линейности где-то в середине.
Определитесь, нужно ли Вам находить один участок линейности или можно несколько с разными коэффициентами.
Я бы не стал возиться с маленькими участками. Скорее всего, они все окажутся почти линейными. И тут уже надо будет сравнивать коэффициенты линейного уравнения, склеивать и т.д.
Я бы начал с поиска линейного участка длины 30-40 в середине, а потом начал бы его расширять в стороны с шагом 10 ( да хоть бы и с шагом 1), пока коэффициент корреляции не стал бы меньше некоторого порогового значения. Ну потом можно ещё подчистить по краям.
Чем проще, тем лучше.
Напишите макрос, а потом на конкретных кривульках подберите подходящие значения параметров - корреляции, шага и т.д.