2014 dxdy logo

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

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


Правила форума


В этом разделе нельзя создавать новые темы.



Начать новую тему Ответить на тему
 
 Качество квадратичной интерполяции
Сообщение03.05.2007, 17:50 
Заслуженный участник
Аватара пользователя


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

 Профиль  
                  
 
 
Сообщение03.05.2007, 18:06 
Заслуженный участник
Аватара пользователя


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

 Профиль  
                  
 
 
Сообщение04.05.2007, 08:53 
Заслуженный участник
Аватара пользователя


11/04/07
1352
Москва
У Вас начальное значение угла в точке 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 
Заслуженный участник
Аватара пользователя


28/09/06
10985
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 
Заслуженный участник
Аватара пользователя


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


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


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

 Профиль  
                  
 
 
Сообщение04.05.2007, 15:13 
Заслуженный участник
Аватара пользователя


28/09/06
10985
Zai писал(а):
Составьте интеграл от абсолютного значения коэффициента при квадратичном члене и попробуйте взять начальное значение производной исходя из минимума этого интеграла.

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

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

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group