Добрый вечер! Помогите, пожалуйста, разобраться с интерполяцией Эрмита. У меня есть таблица и функция: http://i062.radikal.ru/1311/69/9c1f0d2425c7.jpg Нужно построить интерполяционный полином Эрмита по этим точкам. Возник вопрос...
задан 14 Ноя '13 0:06 777Julia777
показано 5 из 8
показать еще 3
|
Меня тут несколько смущает неполнота формулировки. Значения функции указаны в таблице, а о производных и тем более о вторых производных ничего не сказано. Надо бы всё-таки уточнить постановку задачи. Но если в самом деле требуется, чтобы в каждой из четырёх точек совпали значения вплоть до вторых производных, то можно действовать так. Рассмотрим многочлен вида $%f_1(x)=(ax^2+bx+c)(x-x_2)^3(x-x_3)^3(x-x_4)^3)$%. Здесь в каждой из точек $%x_i$% при $%i\ne1$% равны нулю значения функции, её производные и вторые производные. Далее подбираются коэффициенты $%a,b,c$% так, чтобы в точке $%x_1$% значения $%f_1(x_1)$%, $%f_1'(x_1)$%, $%f_1''(x_1)$% принимали заданные значения. Это делается при помощи решения системы линейных уравнений: неизвестных три, и условия тоже три. Такая процедура делается для каждой из четырёх точек в отдельности, то есть аналогичным образом строятся многочлены $%f_2$%, $%f_3$%, $%f_4$%. После чего все они складываются между собой, и получается то, что нужно. отвечен 14 Ноя '13 23:23 falcao @falcao, примерно ясно... Спасибо большое!!! Я сейчас попробую решить и отпишусь... Получается ведь, если мне достаточно совпадения угла наклона, мне вообще достаточно только первой производной же, да?.. Тогда ведь, только для первой производной многочлен будет другого вида? Не могли бы Вы, пожалуйста, пояснить, откуда он берется? И откуда третьи степени?
(14 Ноя '13 23:28)
777Julia777
@777Julia777: совпадение угла наклона соответствует первой производной. Тогда достаточно домножать на квадраты, а не на кубы, и степень итогового многочлена не превосходит 7. Соответственно, множитель с неопределёнными коэффициентами там будет иметь вид $%ax+b$% в каждом из случаев.
(14 Ноя '13 23:35)
falcao
@falcao, получается в случае со второй точной мы рассматриваем квадратах не точки x2, x3, x4, а точки x1, x3, x4?? Как в полиноме Лагранжа, Ньютона?
(14 Ноя '13 23:51)
777Julia777
@777Julia777: да, идея здесь по сути дела та же, то есть всё основано на аддитивности значений производных.
(14 Ноя '13 23:54)
falcao
@falcao, спасибо) Сейчас попробую решить все это дело)
(14 Ноя '13 23:56)
777Julia777
@falcao, a получившиеся полиномы f1, f2, f3, f4 складывать арифметически?.. Разве тогда не пропадет смысл интерполяции?
(15 Ноя '13 3:08)
777Julia777
@777Julia777: здесь идея точно такая же, как и для полинома Лагранжа: у функций f2, f3, f4 значения в точке $%x_1$% равны нулю (включая значения производных), поэтому когда мы всё складываем, итоговое значение в точке $%x_1$% оказывается такое же, как у f1, а его мы сами подбирали таким, какое нужно. Это примерно как разложение вектора по базису.
(15 Ноя '13 8:20)
falcao
показано 5 из 7
показать еще 2
|
Сначала строим полином вида ax + b, значения которого в х1 и х2 совпадают со значениями функции. Потом прибавляем к нему полином вида с(х - х1)(х - х2), где с выбирается так, чтобы значение функии в х3 совпало. Ну и наконец прибавляем многочлен вида d(x - x1)(x - x2)(x - x3). И так далее для любого числа точек. отвечен 14 Ноя '13 4:21 trongsund А что значит "потом прибавляем к нему полином вида с(х - х1)(х - х2)"... Я знаю, как построить полином Эрмита для двух точек. Чтобы на концах совпадали производные... А как сделать это?
(14 Ноя '13 8:52)
777Julia777
Мы строим полином в несколько шагов. На первом шаге получаем полином для 2 точек, если вы знаете, как это делать. На втором шаге прибавляем к нему полином, у которого значения в наших двух точках нулевые, а также производные нулевые, чтобы р(x1), р(x2), р'(x1) и р'(x2) остались те же. Это многочлен вида с(х - х1)^2(x - x2)^2, где с - любое число. Мы и выбираем это таким, чтобы р(х3) = f(x3) (f(х) - исходная функция, р(х) - многочлен, который мы строим).
(14 Ноя '13 20:33)
trongsund
А как это реализуется на практике? : "На втором шаге прибавляем к нему полином, у которого значения в наших двух точках нулевые, а также производные нулевые, чтобы р(x1), р(x2), р'(x1) и р'(x2) остались те же." Прибавляем арифметически? Но тогда же предыдущий отрезок потеряет саму суть интерполяции... Он же тогда не будет интерполировать функцию?...
(14 Ноя '13 21:12)
777Julia777
он будет интерполировать функцию примерно так же, как и раньше. При первой интерполяции многочлен может довольно сильно отличаться от функции внутри отрезка, и полином на втором шаге тоже может отличаться. Поэтому и требуют знания производных более высокого порядка (зачастую). Прибавляем арифметически, но суть не поменяется.
(14 Ноя '13 23:10)
trongsund
@trongsund, спасибо)
(15 Ноя '13 4:15)
777Julia777
|
Здесь должна быть точная постановка задачи -- что требуется получить. Обычно интерполяция Эрмита используется, когда в точках должны совпадать не просто значения, а ещё и производные вплоть до какого-то порядка, указанного в условии (для разных точек, вообще говоря, разного). Если же кратных точек нет, то получается интерполяционный многочлен Лагранжа, а он находится совсем просто по готовой формуле.
@falcao, Да, это я знаю... У меня больше практический вопрос.
А в чём заключается практический вопрос? Здесь ведь надо уточнить постановку задачи насчёт того, какие производные должны совпасть. Для разных точек требования могут быть разными. От этого зависит и степень находимого многочлена, и ответ.
@falcao, вторые производные. Степень полинома получается - три? Насколько я понимаю... Но как мне его построить по нескольким точкам? Я умею строить по 2-м...
@777Julia777: в каждой точке должны совпасть значения, первые производные и вторые производные, я правильно понял? Тогда многочлен получается вроде бы 11-й степени.
@falcao, то есть нам надо строить полином для каждого отрезка, а потом просто перемножить?...
@777Julia777: не думаю, что такой способ подойдёт, потому что при перемножении с производными может произойти что угодно.
@falcao, а как тогда?...