Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Сглаживающий сплайн


Автор: Toxa 23.11.2004, 08:24
Проблема:
нужно апроксимировать эксперементальные данные несколькими сглаживающими сплайнами.
Методом наименьших квадратов нахожу коэфициенты каждого из кусков, система имеет единственное решение. Решается, и все вроде ОК..
Только в местах стыков сплайнов само-собой разрыв производной... про вторую и не говорю даже. smile
и я никак не могу понять, куда там можно впихнуть граничные условия в МНК. Мне нужна неразрывная первая и вторая производная т.к. исходные данные нужно один ра дифферинцировать. smile

Помогите пожалуйста.

Автор: maxim1000 23.11.2004, 11:53
самый простой способ: фильтр, для простоты первого порядка smile
пусть xn - точки, которые вводит пользователь
yn - точки, которые отображаются
тогда просто сделаем yn=alpha*y(n-1)+(1-alpha)*xn
для манипулирования гладкостью можно изменять коэффициент alpha
если плохо будет получаться, можно увеличить порядок фильтра...
(честно говоря, сам не пробовал, может и не очень хорошо выглядеть smile)

Автор: podval 23.11.2004, 16:53
А ты сплайны нужной степени гладкости берешь?

Автор: podval 23.11.2004, 17:13
Попробуй к сумме квадратов отклонений аппроксимированных значений от экспериментальных добавить сумму квадратов второй производной сплайна в исследуемых точках.

Автор: MBo 24.11.2004, 07:08
реализация на фортране:
http://www.srcc.msu.su/num_anal/lib_na/cat/i/is01r.htm

Автор: Excalibur921 22.10.2014, 23:26
Похоже нужно провести b-spline.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)