Оценить коэффициенты ряда Тейлора из выборок функции

10

Скажем, у меня есть измерения функции , отобранные в точке с некоторым шумом, который может быть аппроксимирован расширением ряда Тейлора. Есть ли приемлемый способ оценки коэффициентов для этого расширения по моим измерениям?х яy=y(x)xi

Я мог бы подогнать данные к полиному, но это не совсем правильно, потому что для ряда Тейлора аппроксимация должна улучшаться, когда вы приближаетесь к центральной точке, скажем, x = 0. Просто подбор полинома обрабатывает каждую точку одинаково.

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

Так кто-нибудь знает об установленных методах для этого? Пояснения или ссылки на документы будут оценены.

ПОЯСНЕНИЯ

В ответ на комментарий ниже, моя выборка представляет собой прямоугольное окно из бесконечной функции, которая не обязательно ограничена по полосе, но не имеет сильных высокочастотных компонентов. Чтобы быть более точным, я измеряю дисперсию оценки (измерение смещения в медицинском ультразвуковом сигнале) как функцию параметра оценки (уровень деформации или деформации основной ткани). У меня есть теоретическая серия Тейлора для дисперсии как функции деформации, и я хотел бы сравнить ее с результатами моделирования.

Подобный игрушечный пример может быть: скажем, у вас есть такая функция, как ln (x), с интервалом в x, с добавлением некоторого шума. Вы не знаете, что это за функция на самом деле, и вы хотите оценить ее ряд Тейлора около x = 5. Таким образом, функция является плавной и медленно изменяющейся для области вокруг точки, которая вас интересует (скажем, 2 <x <8), но не обязательно хороша за пределами области.

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

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

Matt
источник
Некоторые вопросы (которые могут относиться или не относиться к теме): Имеется ли в виду, что при выборке функция ограничена / ограничена полосой частот ниже некоторой частоты Fs / 2? Являются ли ваши образцы прямоугольным окном бесконечной функции, повторяющейся функции или полной функции?
hotpaw2
Как указал Дилип в своем ответе, использование расширения ряда Тейлора требует знания производной функции во всех точках выборки. Я полагаю, вы могли бы использовать свое теоретическое выражение для производных от , но это несколько уменьшает полезность использования независимого моделирования для подтверждения вашей теории. Чтобы наилучшим образом эмулировать поведение рядов Тейлора относительно членов более высокого порядка, может оказаться полезным подход, подобный тому, который вы предложили, с использованием различных порядков подгонки полиномов. y(x)
Джейсон Р

Ответы:

8

Вместо точной подгонки по полиному можно использовать подбор по методу наименьших квадратов , который найдет полином заданного порядка, который минимизирует общую квадратическую ошибку между подгонкой и измеренными парами. Это может помочь смягчить влияние шума на посадку.(xi,yi)

Учитывая измерения функции при значениях домена ( ), выберите порядок многочленов (если , то вы до точного полиномиальная подгонка, поскольку точек однозначно определяют полином го порядка). Затем установите систему уравнений, которые являются линейными по требуемым полиномиальным коэффициентам : y = f ( x ) x i i = 0 , 1 , , N M N M = N N M p kyiy=f(x)xii=0,1,,NMNM=NNMpk

yi=pMxiM+pM1xiM1++p1xi+p0,i=0,1,,N

Проблема наименьших квадратов может быть решена путем организации измерений в виде матрицы-вектора:

A=[x0Mx0M1x01x1Mx1M1x11xNMxNM1xN1],y=[y0y1yN]

Решение методом наименьших квадратов генерирует вектор полиномиальных коэффициентов который минимизирует общую квадратическую ошибку в вышеуказанной линейной системе. Решение может быть вычислено как:[pM,pM1,,p0]

p~=(ATA)1ATy

Стоит отметить, что матрица также известна как псевдообратная матрица . Затем вы можете использовать вектор коэффициента полинома наименьших квадратов чтобы вычислить полином при любых других значениях которые вы пожелаете. A ˜ p x(ATA)1ATAp~x

Джейсон Р
источник
1
В случае равноотстоящих абсцисс это ничем не отличается от применения сглаживания Савицкого-Голея к вашим данным.
Плюс 1 за хороший ответ. LSE действительно вездесущ.
Тарин Зияе
6

Игнорировать шум на данный момент.

Для точек где являются различными числами, вы можете, как вы говорите, выровнять полином степени не более через эти точки. Лагранжева интерполяция, например, является стандартным методом для этого. Но считается, что точки на самом деле находятся на кривой где не обязательно является полиномом (например, это может быть или и т. д.) и вы хотели бы найти ряд Тейлора для этой функции . Хорошо, развивая ряд Тейлора для в окрестности( x i , y i ) x i f ( x ) n y = g ( x ) g ( x )n+1(xi,yi)xif(x)ny=g(x)g(x) ( x + a ) / ( x + b ) g ( x ) g ( x ) x = 0 g ( 0 ) g ( k ) ( x ) = d k g ( x )ex(x+a)/(x+b)g(x)g(x)x=0скажем, требует знания значения а также значений производных при , в то время как все, что известно, это значения в точках . Даже если для некоторого так что известно, все равно необходимо оценить дляg(0) g(k)(x)=dkg(x)dxk,k=1,2,x=0g(x)n+1xixi=0ig(0) g(k)(0)k=1,2,

Оценка значения производных функции при по ее значениям в выбранных точках является хорошо изученной проблемой численного анализа, и формулы, которые будут использоваться, легко доступны. Что не описано подробно, или, более часто, вообще не упоминается в окрестностях этих формул, так это то, что эти формулы получены путем подгонки полинома к известным точкам и оценки при . Перефразируй,g(x)x=0g(xi)h(x)=khkxkg(k)(0)h(k)(0)=k!hk

Из точек из мы можем разработать ряд Тейлора для только до члена степени , а усеченный ряд Тейлора равен , многочлен, который был подогнан к баллам.n+1(xi,g(xi))g(x)g(x)nh(x)n+1

Итак, что означает подгонка полинома? Стандартное соответствие - интерполяция Лагранжа, которая хорошо работает, когда нет шума, точки расположены равномерно, а - это медианное значение . Если присутствует шум, подгонка методом наименьших квадратов полинома степени (подробности см. В ответе JasonR ) часто лучше, и если мы хотим подчеркнуть точность в окрестности , взвешенный метод наименьшего квадраты подходят могут быть использованы. Взвешивание слагаемых ошибок из точек в окрестности больше, чем слагаемых ошибок издалека, вынуждает алгоритм минимизации производить еще лучшее соответствие вблизиxi0xim<nx=000 за счет меньшей точности далеко от . Конечно, нужно также защищать выбор весовой функции от скептиков, которые предпочитают другое взвешивание (или не взвешивание).0

Пример: учитывая точки , формула интерполяции Лагранжа дает где коэффициенты и являются «тремя «точечные» формулы для первой и второй производной, приведенные в таблице 25.2 « Справочника математических функций Абрамовица и Стегуна» , то есть интерполяционная формула Лагранжа представляет собой усеченный ряд Тейлора для функции такой, что .3(1,y1),(0,y0),(1,y1)xx2g(x)g(-1)=y-1,g(0)=y0,g(1)=y1

f(x)=y1x(x1)2y0(x21)+y1x(x+1)2=y0+y1y12x+y12y0+y12x2
xx2g(x)g(1)=y1,g(0)=y0,g(1)=y1
Дилип Сарватэ
источник