Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Интерполяция сплайнами... 
:(
    Опции темы
Mal Hack
Дата 13.4.2004, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 1
Всего: 261



Вобщем трабл такой... Опять же для курсовика надо сделать три задачи на интерполяцию.
С методами Ньютона и Лагранжа я разобрался без проблем, но вот алгоритм работы интерполяции сплайнами не совсем понял...
Т.е. юзер вводит определенное количество иксов и соответствующих им значения функции, значение икса, которое требуется узнать. Вопрос, что дальше делать...
В итоге-то получить должны члены a[i] для многочлена и значение функции для указанного ранее икса...
PM ICQ   Вверх
achmed
Дата 13.4.2004, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 12.4.2004

Репутация: нет
Всего: нет



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



PM MAIL   Вверх
Mal Hack
Дата 13.4.2004, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 1
Всего: 261



проблема в том, что я не совсем догоняю, как и что надо сделать и в каком порядке и интерполяции сплайнами...
PM ICQ   Вверх
podval
Дата 13.4.2004, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Где я? Кто я?
****


Профиль
Группа: Экс. модератор
Сообщений: 3094
Регистрация: 25.3.2002
Где: СПб

Репутация: 18
Всего: 62



Рассмотрим на примере.
Предположим, ты хочешь знать значение несущей частоты радиосигнала. Известными методами (хоть БПФ даже) ты строишь график спектральной плотности мощности (СПМ) и ищешь, какой частоте соответствует максимум. Но вот беда: ограничение, связанное с реализацией метода измерений, позволяет оценить значение частоты с точностью только, скажем, до Гц. А позарез надо до 0.01 Гц, например.
Что делаем? Уточняем значение частоты!
Как? Интерполируем области между максимумом и двумя его соседями сплайном!
Математически это выглядит так, что используется несколько исходных точек - узлов интерполяции. Среди них находится и наш грубо оцененный максимум, обозначим его как точка f[0]. Далее с использованием формул интерполяционных сплайнов (специального вида полином) вычисляем значения функции (у нас - СПМ) между узлами f[-1], f[0], f[1] с выбранным шагом (0.01). Ищем в полученном большом массиве максимум. Ему соответствует уточненное значение несущей частоты, которое мы искали. Вычислить его просто. Допустим, уточненный максимум - 16-й элемент массива отсчетов СПМ между узлами f[0] и f[1]. Тогда уточненное значение частоты для нашего случая равно f[0] + 0.01*16.

PM WWW ICQ   Вверх
Mal Hack
Дата 13.4.2004, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 1
Всего: 261



podval, а кодом не намекнешь простым ??
А то на alglib.manual.ru хрен поймешь. Код аж на три страницы...
PM ICQ   Вверх
df_3
Дата 14.4.2004, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 256
Регистрация: 19.5.2003

Репутация: нет
Всего: 1



в Maple могу подогнать тебе дай адрес


--------------------
ИЗ ВСЕХ ВОЗМОЖНОСТЕЙ НА ЗЕМЛЕ САМАЯ ЯРКАЯ - ЭТО ЖИЗНЬ!
PM MAIL WWW MSN   Вверх
Akina
Дата 14.4.2004, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Mal Hack
Чего тебе код потребовался?

Смотри. Есть у тебя груда точек: x1, x2, x3, .... xN. Допустим используем интерполяцию сплайнами порядка 2 - квадратичными (в общем случае сплайны не обязаны быть полиномиальными - то есть под словом "порядок" мы будем понимаем уменьшенное на 1 количество коэффициентов в уравнении сплайна.). Возьмем первые 3 точки. Парабола, на которой они лежат - одна-единственная, и посчитать коэффициенты квадратного трехчлена (те самые твои a[i]), на графике которого лежат эти 3 точки - пара пустяков. И теперь, когда эти коэффициенты посчитаны, мы можем посчитать значение этой сплайновой функции в любой промежуточной точке, которая нам нужна (том самом твоем иксе). Чем выше порядок сплайна - тем больше точек берется для расчета коэффициентов (скажем при кубическом сплайне - 4 точки).
Фигня в том, что если искомый икс лежит между 2 и 3 точками, можно считать сплайн и интерполировать значение по точкам 1-3, а можно и по точкам 2-4... есссно получатся разные приближенные значения...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
podval
Дата 14.4.2004, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Где я? Кто я?
****


Профиль
Группа: Экс. модератор
Сообщений: 3094
Регистрация: 25.3.2002
Где: СПб

Репутация: 18
Всего: 62



Mal Hack
Действительно, там всё просто. Имеешь формулу сплайна - вперед.
Просто сейчас нет времени копаться в старых архивах smile.gif.

Цитата
А то на alglib.manual.ru хрен поймешь. Код аж на три страницы...

Ты уверен? Не обращай внимание на "лишние" участки кода. В суть смотри.

На http://algolist.manual.ru/maths/approx.php еще погляди.
PM WWW ICQ   Вверх
Mal Hack
Дата 15.4.2004, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 1
Всего: 261



Вопрос такой: имеет ли значение какие сплайны я испоьзую (квадратичные или кубические) ?
Akina, вот смотри, юзер ввел три икса и три игрека. После этого мы сортируем все это дело так, чтоб самый большой икс - первый в массиве. Так ? Затем берем три точки и какие вычисления с ними проводим ? Это мы получим а[i] (3 штуки). Но как быть, если юзер ввел 5 иксов и 5 игреков. Тогда ведь нам надо пять а[i] найти...
И потом по какой формуле вычисляется значение нужной точки ?
Че-то я уже совсем запутался...
PM ICQ   Вверх
Akina
Дата 16.4.2004, 08:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Mal Hack
чего? почему 5? если юзер ввел 5 точек, то либо один сплайн 4 порядка, либо 2 сплайна 3 порядка (для точек 1-4 и для точек 2-5), либо 3 сплайна 2 порядка... скажем если квадратичные сплайны и требуется рассчитать функцию в иксе, который между 3 и 4 точками, то мы берем точки 2-4 (или 3-5), остальные отбрасываем, считаем по 3 точкам параболу, и по ней - значение функции. Как выбрать какая из двух троек лучше? по-разному... можно даже посчитать по обоим тройкам и взять среднее biggrin.gif

Это ещепростой вариант - нет условия неразрывности производных...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Mal Hack
Дата 16.4.2004, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 1
Всего: 261



Akina, а мржешь прям по шагам объяснить что мне надо сделать и какие циклы, формулы, что вводить надо и т.п. А то я уже совсем запутался..
PM ICQ   Вверх
Therion
Дата 27.6.2004, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 21.12.2003

Репутация: нет
Всего: нет



Могу дать исходники на VBA
мое мыло cool.gif
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

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


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.1010 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.