|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.03.2010, 22:38 | #1 |
Пользователь
Регистрация: 02.10.2009
Сообщений: 25
|
интерполяция
доброго времени суток)) просьба такая: расскажите пожалуйста "по-русски" метод сплайн-интерполяции! заранее благодарю
Последний раз редактировалось Laplas; 04.03.2010 в 22:49. |
04.03.2010, 23:33 | #3 |
Пользователь
Регистрация: 02.10.2009
Сообщений: 25
|
да хотелось бы почитать человеческие пояснения))) это я уже читал...мало что понял((
|
05.03.2010, 09:30 | #4 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Что именно не понятно?
|
05.03.2010, 23:59 | #5 |
Пользователь
Регистрация: 02.10.2009
Сообщений: 25
|
ну например, где брать значение функции в узлах сшивки, если они не даны???и почему на каждом интервале полином будет разный, если все коэффициенты повязаны между собой???
|
06.03.2010, 09:44 | #6 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Прочтите ссылку. Там показан один из вариантов "склейки".
"и почему на каждом интервале полином будет разный," Для лучшего приближения. Например, возьмем для простоты порядок 1 - т.е. кусок прямой. Можно ли ей приблизить весь график функции (естественно, не прямой линии)? "если все коэффициенты повязаны между собой???" ВСЕ коэффициенты не повязаны строго говоря. |
06.03.2010, 12:03 | #7 |
Форумчанин
Регистрация: 06.12.2008
Сообщений: 613
|
Метод сплайн-интерполяции заключается в следующем: отрезок, на котором производится интерполяция, делится на n равных частей, на каждой части строится полином невысокой степени, обычно третьей. Полином этот выглядит как полином, разложенный по степенному ряду вот так: S(x) = a + b(x-x0)+c(x-x0)^2+d(x-x0)^3; В узлах деления, как вы называете "сшивки", чтобы приближение функции, построенное по сплайну, было непрерывно-дифференцируемым и имело в каждой своей точке производную, мы приравниваем первые и вторые производные в этих точках. Далее вычисляем коэффициенты a,b,c,d ( они представляют собой векторы, каждый из которых имеет (n-1) компоненту, эти компоненты привязаны к своим частям отрезка ), потом, интерполируя в заданной точке, по этой точке ищем отрезок, которому эта точка принадлежит, и в ней вычисляем интерполяционный полином по формуле, написанной выше. Так, если x принадлежит [x(k),x(k+1)] отрезку, то вычисление производится по формуле Sk(x) = ak + bk(x-xk)+ck(x-xk)^2+dk(x-xk)^3;
да и я не сказал, что в итоге, получая начальные условия приравниванием в узлах "сшивки" значений сплайн-функции, ее первых и вторых производных, получается на два уравнения меньше, чем нужно для однозначного решения системы, поэтому 2 доп. условия накладываются на концы отрезка ( обычно ) так, чтобы задача решалась как можно легче и максимально точно. что касается как вычислять производные - зная вид полинома, всегда можно написать для него парочку производных, зная их заранее, тем более, что третья производная, например для вычисления 2 доп. условий, о которых я упоминал, для полинома 3 степени - постоянна сплайн интерполирование используется обычно ( а может даже и только! ) на практике, когда таблица узлов и значений функции получены экспериментально с погрешностью, тогда сплайн интерполяция ( полиномом 3 степени ) ведет себя лучше ( дает погрешность меньше ), чем интерполяционный полином того же Лагранжа более высокой степени, потому что последний очень чувствителен к погрешности в исходных данных при больших степенях, но сплайн может и "проиграть" в погрешности Лагранжу более высокой степени в том случае, когда исходные данные достаточно точны вообще есть программное обеспечение, позволяющее вычислить сплайн-функцию в заданной точке. это процедура Spline, которая по заданному набору узлов и значений функций в узлах находит вектора a,b,c,d (коэффициенты) это функция Seval, которая по входным векторам, найденным процедурой Spline, и по узлам интерполирования вычисляет полином в заданной точке Последний раз редактировалось capta1n; 06.03.2010 в 12:10. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
интерполяция сплайнами | tanek | Помощь студентам | 5 | 06.07.2011 00:23 |
Интерполяция лагранжа | Styks | Общие вопросы C/C++ | 4 | 14.12.2009 18:47 |
линейная интерполяция | Auster | Помощь студентам | 4 | 22.04.2008 18:02 |