2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Качество квадратичной интерполяции
Сообщение03.05.2007, 17:50 
Аватара пользователя
Господа, загляните пожалуйста сюда. Как избавиться от волны, возникающей при итерполяции функции гладко сшитыми между собой кусками парабол? Происхождение этой волны понятно: у нас условий сшивки парабол меньше, чем коэффициентов парабол, которые нам нужно найти, поэтому если бы у нас были, например, значения производных функции на концах отрезка, то интерполяция была бы практически идеальной. Но по условию у нас ничего кроме значений функции в N точках нет.

 
 
 
 
Сообщение03.05.2007, 18:06 
Аватара пользователя
А почему Вам так мила именно квадратичная интерполяция? Как известно, корректно решают проблему гладкой интерполяции кубические сплайны, может Вам стоит воспользоваться ими. ( см. о них: http://masters.donntu.edu.ua/2003/ggeo/ ... matan1.htm )

 
 
 
 
Сообщение04.05.2007, 08:53 
Аватара пользователя
У Вас начальное значение угла в точке 1 выбрано неверно. Оно вносит возмущение по всей кривой. Интерполяцию можно провести полиномами третьего порядка. Они используются как функции формы для балочного конечного элемента. В каждой точке нужно построить угол наклона, как среднее значение слева и справа. Значение функции
$ u(x)=u(0)f_1(x)+\varphi(0)f_2(x)+u(1)f_3(x)+\varphi(1)f_4(x)
Условия на Функции:

$f_1(0)=1, f'_1(0)=0, f_1(1)=0, f'_1(1)=0
$f_2(0)=0, f'_2(0)=1, f_2(1)=0, f'_2(1)=0
$f_3(0)=0, f'_3(0)=0, f_3(1)=1, f'_3(1)=0
$f_4(0)=0, f'_4(0)=0, f_4(1)=0, f'_4(1)=1
У полинома третьего порядка четыре коэффициента и они однозначно определяются.

 
 
 
 
Сообщение04.05.2007, 10:55 
Аватара пользователя
Zai писал(а):
У Вас начальное значение угла в точке 1 выбрано неверно.

Это понятно. Если я использую значение производной, то волна исчезает и качество интерполяции становится весьма высоким. Вопрос в том, что его у нас нет. А если использовать какие-то оценки исходя из значений функции, то они очень плохо "попадают".

Zai писал(а):
Интерполяцию можно провести полиномами третьего порядка. Они используются как функции формы для балочного конечного элемента. В каждой точке нужно построить угол наклона, как среднее значение слева и справа. Значение функции
$ u(x)=u(0)f_1(x)+\varphi(0)f_2(x)+u(1)f_3(x)+\varphi(1)f_4(x)
Условия на Функции:

$f_1(0)=1, f'_1(0)=0, f_1(1)=0, f'_1(1)=0
$f_2(0)=0, f'_2(0)=1, f_2(1)=0, f'_2(1)=0
$f_3(0)=0, f'_3(0)=0, f_3(1)=1, f'_3(1)=0
$f_4(0)=0, f'_4(0)=0, f_4(1)=0, f'_4(1)=1
У полинома третьего порядка четыре коэффициента и они однозначно определяются.

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

Что касается интерполяции полиномами третьей степени, то, как я вижу, она тоже основана на оценках производных в точках сшивки. И я не уверен, что оценка по среднему значению будет достаточно хорошо соответствовать истине. К тому же на концах отрезка производную придётся оценивать как-то иначе. А я сильно не уверен, что, например, оценка по разности соседних значений функции является достаточно качественной.

 
 
 
 
Сообщение04.05.2007, 11:55 
Аватара пользователя
Цитата:
Это понятно. Если я использую значение производной, то волна исчезает и качество интерполяции становится весьма высоким. Вопрос в том, что его у нас нет. А если использовать какие-то оценки исходя из значений функции, то они очень плохо "попадают".


Начальное значение производной, от которой зависит высота волны можно минимизировать. Составьте интеграл от абсолютного значения коэффициента при квадратичном члене и попробуйте взять начальное значение производной исходя из минимума этого интеграла.
Цитата:
Почему именно третьего? Разве нет способа качественно оценить единственный свободный параметр при интерполяции параболами (например, производную на одной из границ)? Если я его подбираю вручную, я могу достичь очень высокого качества интеполяции - заведомо больше, чем мне нужно. Но я не знаю хорошего универсального способа для его оценки.


В технике достаточно часто используют "физические поверхности" - поверхности мембран, линии типа "цепной". Я Вам предложил упругую линию балки.

 
 
 
 
Сообщение04.05.2007, 15:13 
Аватара пользователя
Zai писал(а):
Составьте интеграл от абсолютного значения коэффициента при квадратичном члене и попробуйте взять начальное значение производной исходя из минимума этого интеграла.

Да, это работает. Я минимизировал сумму квадратов вторых производных для парабол, получил очень неплохое приближение. Не идеальное конечно. Наверное тут дело в том, что кривизна исходной кривой тоже ненулевая, а этот алгоритм стремится её "спрямить".

Неприятно только одно - приходится писать итерационный алгоритм, аналитическое решение (формула) было бы конечно лучше.

 
 
 [ Сообщений: 6 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group