чем интерполировать?

gsharov

Вот есть данные в таком виде
разные кривые соответствуют некоторым значениям переменной.
Чем лучше всего интерполировать данные чтобы получить вменяемые кривые для промежуточных значений этой переменной?
(ну так, чисто на вид). Линейная интерполяция получается лучше кубической если че, но недостаточно хороша.
Какие нибудь Radial-basis-funcitons должны сработать, как думаете?

katrin2201

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

gsharov

пока чего то не получается толком. Тоже копаю в сторону "зафитировать кривые" и интерполировать параметры, потому как обычные методы походу не работают.

yroslavasako

Ну на первый взгляд можно брать точки пересечения с нулём, нулевые точки первой производной, нулевые точки второй производной. Так как их одинаковое количество для всех указанных графиков, то можно вычислить промежуточные точки и параметризовать преобразование, так чтобы токи сошлись. Потом это преобразование применить ко всем точкам графика.
На второй взгляд можно искать не пересечения с нулём, а пересечение кривых. Например пересечения усредняющей прямой, переход через среднюю производную и т.п.
Я не проверял, но мне кажется, что должно получиться вполне правдоподобно.

gsharov

короче после ряда игр с полиномами, производными итп, нашел что
scipy.interpolate.CloughTocher2DInterpolator
отлично справляется с задачей :) Ну естественно, если самому интерполяцию реализовывать, то попроще можно.

state7401281

нулевые точки первой производной, нулевые точки второй производной.
можешь их отметить на графике?

Maximilian

сверни с sinc
Оставить комментарий
Имя или ник:
Комментарий: