2014 dxdy logo

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

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


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


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

Если Вы хотите задать новый вопрос, то не дописывайте его в существующую тему, а создайте новую в корневом разделе "Помогите решить/разобраться (М)".

Если Вы зададите новый вопрос в существующей теме, то в случае нарушения оформления или других правил форума Ваше сообщение и все ответы на него могут быть удалены без предупреждения.

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

Обязательно просмотрите тему Правила данного раздела, иначе Ваша тема может быть удалена или перемещена в Карантин, а Вы так и не узнаете, почему.



Начать новую тему Ответить на тему
 
 Интерполяция функций
Сообщение14.04.2013, 20:22 


07/01/12
26
Всем доброго вечера.
Есть задача - построить интерполяционный многочлен Лагранжа 2,6,10 степени от функции $|x^{2}+x|$ на отрезке [-2,2].
и найти его погрешность. Все это реализовано в программе, однако выходит, что с увеличением степени - погрешность не в узлах уменьшается не на много, правильно ли это?
И второй вопрос. По заданию, на основе данных о погрешностях многочленов 2,6,10 степеней, нужно разработать способ для интерполяции, при котором погрешность будет не более $10^{-10}$.
Если честно - я даже без понятия с чего начать. К примеру если взять степень 10, и выводить по 4 значения между узлами, то погрешность в середине отрезка колеблется между 0.005 - 0.1, а ближе к краям вообще возрастает до 1.1 - 1.4

 Профиль  
                  
 
 Re: Интерполяция функций
Сообщение14.04.2013, 21:10 


05/09/12
2587
По вопросу 1 - смотрите пример функции Рунге, там вообще при увеличении степени полинома погрешность увеличивается.
По вопросу 2 - задача творческая, существующих способов интерполяции весьма немало, выбирайте подходящий.

 Профиль  
                  
 
 Re: Интерполяция функций
Сообщение14.04.2013, 21:39 
Модератор
Аватара пользователя


16/02/11
3788
Бурашево
Модуль в вашем выражении можно просто выкинуть. Вы занимаетесь интерполяцией степенного многочлена второй степени. Он будет безошибочно представлен многочленом Лагранжа второй степени. Без какой-либо погрешности вообще (ввиду единственности интерполяционного многочлена Лагранжа). При построении многочленов 6-й и 10-й степени коэффициенты при степенях больше второй получаются отличными от нуля (если получаются конечно - посмотрите на них внимательно) в результате погрешностей вычислений. Отсюда и погрешность интерполяции.

То ли задание у вас странное, то ли Вы его на форум переписали с ошибками.

 Профиль  
                  
 
 Re: Интерполяция функций
Сообщение14.04.2013, 21:50 
Заслуженный участник


11/11/07
1198
Москва
profrotter в сообщении #710227 писал(а):
Модуль в вашем выражении можно просто выкинуть.

Чего это вдруг? Если $-1 < x < 0$, то $x^2+x < 0$.

 Профиль  
                  
 
 Re: Интерполяция функций
Сообщение14.04.2013, 21:59 
Модератор
Аватара пользователя


16/02/11
3788
Бурашево
AV_77 в сообщении #710236 писал(а):
Чего это вдруг?
Согласен. Ошибся. Зачеркнул.

 Профиль  
                  
 
 Re: Интерполяция функций
Сообщение15.04.2013, 16:03 


07/01/12
26
profrotter
Почему странное?
выглядит так ( взял что конкретно не понятно )
1.Построить интерполяционный многочлен Лагранжа.
2. Построить графики найденного многочлена и заданной функции
...
4.На основе данных, полученных в результате выполнения пунктов 2-6 для значений n=2,6,10, предложить способ интерполяции, при котором величина погрешности не будет превышать величины $10^{-10}$
5. Реализовать предложенный способ интерполяции. Построить графики интерполяционного многочлена, построенного предложенным способом и заданной функции.


При построении многочлена 6 или 10 степени - в узлах выходит погрешность 0, как и должно быть. Между узлами уже и идет погрешность.
- Реализовать предложенный способ интерполяции - это я могу выбрать какой-то другой метод, например, изучив учебник на эту тему, метод Эрмита, погрешность которого явно меньше ?

 Профиль  
                  
 
 Re: Интерполяция функций
Сообщение15.04.2013, 16:27 
Модератор
Аватара пользователя


16/02/11
3788
Бурашево
Ну ошибся же. Зачеркнул уже.

Судя по заданию имеется в виду всё-таки выбор одного из всех рассмотренных в п.2-6 методов интерполяции.

А предложить другой совсем просто: интервал $[-2,2]$ можно разбить на подынтервалы единичной длины, на каждом из которых ваша функция описывается многочленом второй степени, то есть локальная кусочно-многочленная интерполяция второй степени вообще не даст никаких ошибок.

 Профиль  
                  
 
 Re: Интерполяция функций
Сообщение15.04.2013, 17:11 


07/01/12
26
Нет, в пункте 2-6 указания по построению многочлена Лагранжа.
Все таки мы не занимаемся придумыванием каких-то своих супер методов, поэтому я думаю, что можно реализовать что-то другое.

Насколько я понял - ваш пример - локальная квадратичная интерполяция ?

-- 15.04.2013, 18:19 --

А, кажется понял. При повышении порядка многочлена - ближе к краям отрезка - погрешность возрастает.
К примеру если взять n = 6, получается приемлемая погрешность, но теперь разбить отрезок на 4 части и для каждой посчитать многочлен?

 Профиль  
                  
 
 Re: Интерполяция функций
Сообщение15.04.2013, 19:01 
Модератор
Аватара пользователя


16/02/11
3788
Бурашево
Ну, я пункта 2-6 не видел.

Я говорю о том, что для заданной функции интерполяция будет точной, если выбрать узлы интерполяции с абсциссами: $-2,0;-1,5;-1,0;-0,5;0,0;0,5;1,0;1,5;2,0$ и правило интерполяции, которое предполагает построение квадратного многочлена по текущим трём узлам, скажем, $(x_k,y_k);(x_{k+1},y_{k+1});(x_{k+2},y_{k+2})$, затем строим квадратный многочлен на узлах $(x_{k+2},y_{k+2});(x_{k+3},y_{k+3});(x_{k+4},y_{k+4})$ и тд. Начиная процедуру с узла с абсциссой $x_0=-2,0$.

 Профиль  
                  
 
 Re: Интерполяция функций
Сообщение15.04.2013, 19:41 


07/01/12
26
Спасибо большое.
Что уточнить алгоритм (пока не очень понимаю, как это запрограммировать)
Общий вид - вы строим вот такой многочлен для каждой из точек -2,-1.5,....1,5,2 : $y=a_ix^{2}+b_ix+c_i$, где
$  a_ix^{2}_{i-1}+b_ix_{i-1}+c_i=f(x_i-1)$
$a_ix^{2}_i+b_ix_i+c_i=f(x_i)$
$a_ix^2_{i+1}+b_ix_{i+1}+c_i=f(x_{i+1})$

То есть систему мы видимо можем решать каким-нибудь МПИ или Зейделем.
И начинаем цикл с 1 до n-1, проходим по из -1.5,....,1.5 и считаем для каждой точки систему, подставляем в многочлен - получаем значение в этой точке? Или я не так понимаю?

 Профиль  
                  
 
 Re: Интерполяция функций
Сообщение15.04.2013, 20:37 
Модератор
Аватара пользователя


16/02/11
3788
Бурашево
Код:
Функция Интерполяция(X)
{
1. Если X=0 или X=2 Вернуть ...;
2. Найти номер интервала k, к которому принадлежит Х. Номер интервала считаем совпадающим с номером его левой границы;
3.Если K - чётное, то строим интерполяционный многочлен на точках (X[k],Y[k]),(X[k+1],Y[k+1])(X[k+2],Y[k+2]);
Иначе строим интерполяционный многочлен на точках (X[k-1],Y[k-1]),(X[k],Y[k])(X[k+1],Y[k+1]);
4. Вернуть значение интерполяционного многочлена в X;
}

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

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



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

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


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

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