Вот, скажем, есть какая–нибудь достаточно гладкая функция от одного аргумента. Ее, понятно, можно разложить, пусть в окрестности нуля, в полиномиальный ряд до какой–нибудь там степени n — это будет S_n. А можно до n+1 — это будет S_{n+1}=S_n+A_{n+1}**^{n+1}, то есть тот кусок, что до n+1–й степени останется тем же.
Другая ситуация: вместо функции есть куча точек, ее значений (возможно — измеренных неточно, но это неважно). Функции нет и предположений о ее виде тоже нет. Можно точки каким–нибудь подходящим способом аппроксимировать многочленом n–й степени. А можно, если хочется, n+1–й. И никакой похожей связи между получившимися многочленами не будет, если только способ аппроксимации не какой–нибудь совсем специальный: полином более высокой степени скорее всего всеми коэффициентами при младших степенях будет сильно отличаться от тех, что были у полинома низкой степени.
Меня эта ситуация по некоторым причинам не устраивает. Очень хочется иметь регулярную обоснованную процедуру, при помощи которой можно было бы не из функции, а из точек получать что–то максимально похожее именно на разложения в ряд.
Можно, конечно, отделаться техническим приемом: вместо нормальной аппроксимации «всем полиномом сразу», сначала это облако точек проаппроксимировать горизонтальной прямой, потом облако отклонений точек от горизонтальной прямой — одночленом A_1**, потом что останется — одночленом A_2**^2 и так пока не надоест, а ответом считать сумму получившихся аппроксимаций вплоть до какой–не–надоело степени. Тогда, конечно, преемственность поколений я получу. Но это совершенно какой–то водопроводный подход, а хочется все же вести себя более разумно. Кто–нибудь знает, как?

GD Star Rating
loading...
Tagged with →  

5 Responses to Функции и точки

  1. Axyptak:

    Если можно менять разбиение отрезка, на котором происходит разложение, то мне кажется, имеет смысл попробовать многочлены Чебышева. Они ортогональны, поэтому как раз получится то, что ты хочешь, «получать что–то максимально похожее именно на разложения в ряд».

    Технические детали реализации можно почитать вот тут, а еще есть прекрасная и очень понятная книга Данилова для быстрого введения.

  2. SeBotanik:

    Видимо, тебе нужны многочлены Ньютона

  3. Nfg:

    Спасибо за добрые намерения (серьезно), но все же интерполяционные многочлены — совсем не то, что мне нужно. Проблема именно с последовательными аппроксимациями одного и того же массива данных не безупречной точности.

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

  4. Axyptak:

    А в чем проблема? Из–за неточности определения точек появляется много выбросов, которые искажают интерполяцию? Делают ее чересчур чувствительной к отдельным точкам?

    Ну тогда точно нужно делать линейную аппроксимацию, с интегральной нормой для оценки расхождения.

  5. RoDad:

    Аппроксимация многочленами вообще довольно капризная вещь. Если мы говорим об аппроксимации значений, содержащих ошибку, то после некоторой степени повышение степени многочлена не улучшает, а ухудшает аппроксимацию. Пример: N точек, не лежащих на прямой, аппроксимируем их прямой — она проходит где–то между ними, так, чтобы не удаляться слишком сильно от остальных точек. Если мы аппроксимируем их многочленом N–1 степени, то получится кривулина, которая абсолютно точно пройдёт через каждую точку, при этом от полученной аппроксимации не будет никакого смысла. В связи с этим, при регрессионном анализе обычно стараются заранее определить вид требуемой кривой или, по крайней мере, «достаточную» степень аппроксимации. Для этого можно использовать, например, F–критерий Фишера.

Добавить комментарий