Вы понимаете, как появляются сплайны?
Резюме выполнения сплайнов
Вы разбиваете диапазон на части на основе контрольных точек (расщепление в контрольных точках или помещаете разрывы между ними) и помещаете некоторую параметризованную функцию в каждый поддиапазон, затем ограничиваете функции контрольными точками, искусственно введенными ограничения конечной точки и межсегментные ограничения.
Если вы правильно рассчитали свои степени свободы и ограничения, вы получите разрешимую систему уравнений, которая сообщит вам правильные параметры с точки зрения контрольных точек, и все, что вам нужно.
Результатом является набор параметров для кусочной функции. Как правило, кусочно-непрерывная и дифференцируемая функция, потому что какой бы смысл был в противном случае.
Как вы можете использовать это в этом случае
Так что рассмотрите возможность сделать каждую внутреннюю точку центром сегмента, который будет занят функцией, подобной пику (возможно, гауссовой на линейном фоне), и используйте конечные точки в качестве ограничений.
Для n
общего количества очков у вас будет D*(n-2)
параметров, если каждый сегмент имеет D
параметров. У вас есть четыре ограничения конечной точки f(start)=y_0
, f(end)=y_n
, f'(start) = f'(end) = 0)
и некоторый набор ограничений на совпадение между сегментами:
f_n(between n and n+1) = f_n+1(between n and n+1)
f'_n(between n and n+1) = f'_n+1(between n and n+1)
...
плюс каждый сегмент ограничен его отношением к контрольной точке (обычно либо f(point n) = y_n
или f'(point n) = 0
, либо и тем, и другим (но вы можете решить).
Сколько ограничений соответствия вы можете иметь, зависит от количества степеней свободы (общее количество ограничений должно равняться общему количеству степеней свободы, верно?). Вам нужно ввести некоторые дополнительные ограничения для конечной точки в форме f''(start) = 0
..., чтобы все было правильно.
В этот момент вы просто смотрите на множество утомительных алгебр, чтобы заработать, как перевести это в большую систему линейных уравнений, которую вы можете решить с помощью инверсии матриц.
Большинство книг по числовым методам будут охватывать этот материал.