Тригонометрическая интерполяция
В математике тригонометрическая интерполяция — это интерполяция тригонометрическими полиномами . Интерполяция — это процесс поиска функции, которая проходит через некоторые заданные точки данных . Для тригонометрической интерполяции эта функция должна быть тригонометрическим полиномом, то есть суммой синусов и косинусов заданных периодов. Эта форма особенно подходит для интерполяции периодических функций .
Важным особым случаем является случай, когда заданные точки данных расположены на одинаковом расстоянии друг от друга, и в этом случае решение дается дискретным преобразованием Фурье .
Формулировка задачи интерполяции [ править ]
Тригонометрический полином степени K имеет вид
( 1 ) |
Это выражение содержит 2 K коэффициента + 1, a 0 , a 1 , … a K , b 1 , …, b K , и мы хотим вычислить эти коэффициенты так, чтобы функция проходила через N точек:
Поскольку тригонометрический полином является периодическим с периодом 2π, N точек можно распределить и упорядочить за один период как
(Обратите внимание, что мы обычно не требуем, чтобы эти точки были расположены на одинаковом расстоянии.) Теперь задача интерполяции состоит в том, чтобы найти такие коэффициенты, чтобы тригонометрический полином p удовлетворял условиям интерполяции.
Формулировка в комплексной плоскости [ править ]
Проблема станет более естественной, если сформулировать ее в комплексной плоскости . Мы можем переписать формулу тригонометрического полинома как где я — мнимая единица . Если мы положим z = e ix , тогда это становится
с
Это сводит задачу тригонометрической интерполяции к задаче полиномиальной интерполяции на единичной окружности . Существование и единственность тригонометрической интерполяции теперь непосредственно следует из соответствующих результатов для полиномиальной интерполяции.
Дополнительную информацию о формулировке тригонометрических интерполяционных полиномов на комплексной плоскости см. на с. 156 Интерполяции с использованием полиномов Фурье .
Решение проблемы [ править ]
При вышеуказанных условиях существует решение проблемы для любого заданного набора точек данных { x k , y k } до тех пор, пока N , количество точек данных, не превышает количество коэффициентов в полиноме, т.е. , N ≤ 2 K +1 (решение может существовать, а может и не существовать, если N >2 K +1, в зависимости от конкретного набора точек данных). Более того, интерполяционный полином уникален тогда и только тогда, когда количество регулируемых коэффициентов равно количеству точек данных, т. е. N = 2 K + 1. В оставшейся части этой статьи мы будем предполагать, что это условие выполняется.
Нечетное количество очков [ править ]
Если количество точек N нечетное, скажем, N=2K+1 , применение формулы Лагранжа для полиномиальной интерполяции к полиномиальной формулировке в комплексной плоскости дает, что решение можно записать в виде
( 5 ) |
где
Фактор в этой формуле компенсирует тот факт, что формулировка комплексной плоскости содержит также отрицательные степени и поэтому не является полиномиальным выражением в . В правильности этого выражения легко убедиться, заметив, что и это представляет собой линейную комбинацию правых степеней . При использовании удостоверения
( 2 ) |
коэффициент можно записать в форме
( 4 ) |
Четное количество очков [ править ]
Если количество точек N четное, скажем, N=2K , применение формулы Лагранжа для полиномиальной интерполяции к полиномиальной формулировке в комплексной плоскости дает, что решение можно записать в виде
( 6 ) |
где
( 3 ) |
Здесь константы можно выбирать свободно. Это вызвано тем, что интерполирующая функция ( 1 ) содержит нечетное количество неизвестных констант. Обычным выбором является требование, чтобы самая высокая частота имела форму, умноженную на константу. , то есть член исчезает, но в общем случае фазу самой высокой частоты можно выбрать равной . Чтобы получить выражение для получаем , с помощью ( 2 ) , что ( 3 ) можно записать в виде
Это дает
и
Обратите внимание, что необходимо соблюдать осторожность, чтобы избежать бесконечности, вызванной нулями в знаменателе.
Эквидистантные узлы [ править ]
Дальнейшее упрощение задачи возможно, если узлы равноудалены, т.е.
см. Зигмунд для более подробной информации.
Нечетное количество очков [ править ]
Дальнейшее упрощение с использованием ( 4 ) было бы очевидным подходом, но оно явно требует усилий. Гораздо более простой подход — рассмотреть ядро Дирихле.
где странно. Легко можно увидеть, что представляет собой линейную комбинацию правых степеней и удовлетворяет
Поскольку эти два свойства однозначно определяют коэффициенты в ( 5 ) следует, что
Здесь функция sinc предотвращает любые сингулярности и определяется формулой
Четное количество очков [ править ]
Для даже мы определяем ядро Дирихле как
Опять же, легко увидеть, что представляет собой линейную комбинацию правых степеней , не содержит термина и удовлетворяет
Используя эти свойства, следует, что коэффициенты в ( 6 ) имеют вид
Обратите внимание, что не содержит также. Наконец, заметим, что функция исчезает во всех точках . Таким образом, всегда можно добавить кратные этому термину, но обычно они опускаются.
Реализация [ править ]
Реализацию вышеизложенного в MATLAB можно найти здесь :
function P = triginterp(xi,x,y)
% TRIGINTERP Trigonometric interpolation.
% Input:
% xi evaluation points for the interpolant (vector)
% x equispaced interpolation nodes (vector, length N)
% y interpolation values (vector, length N)
% Output:
% P values of the trigonometric interpolant (vector)
N = length(x);
% Adjust the spacing of the given independent variable.
h = 2/N;
scale = (x(2)-x(1)) / h;
x = x/scale; xi = xi/scale;
% Evaluate interpolant.
P = zeros(size(xi));
for k = 1:N
P = P + y(k)*trigcardinal(xi-x(k),N);
end
function tau = trigcardinal(x,N)
ws = warning('off','MATLAB:divideByZero');
% Form is different for even and odd N.
if rem(N,2)==1 % odd
tau = sin(N*pi*x/2) ./ (N*sin(pi*x/2));
else % even
tau = sin(N*pi*x/2) ./ (N*tan(pi*x/2));
end
warning(ws)
tau(x==0) = 1; % fix value at x=0
с дискретным Фурье Связь преобразованием
частный случай, когда точки xn расположены на одинаковом расстоянии друг от друга Особенно важен . В этом случае мы имеем
Преобразование, которое отображает точки данных y n в коэффициенты a k , b k, получается из дискретного преобразования Фурье (ДПФ) порядка N.
(Из-за того, как задача была сформулирована выше, мы ограничились нечетным числом точек. В этом нет строгой необходимости; для четного числа точек включается еще один косинусный член, соответствующий частоте Найквиста .)
Случай косинусной интерполяции для равноотстоящих друг от друга точек, соответствующий тригонометрической интерполяции, когда точки имеют четную симметрию , был рассмотрен Алексисом Клеро в 1754 году. В этом случае решение эквивалентно дискретному косинусному преобразованию . Синусоидальное разложение для равноотстоящих друг от друга точек, соответствующее нечетной симметрии, было решено Жозефом Луи Лагранжем в 1762 году, для которого решением является дискретное синусоидальное преобразование . Полный косинус и синусоидальный интерполяционный полином, который приводит к ДПФ, был решен Карлом Фридрихом Гауссом в неопубликованной работе около 1805 года, после чего он также разработал алгоритм быстрого преобразования Фурье для его быстрого вычисления. Клеро, Лагранж и Гаусс были озабочены изучением проблемы определения орбит планет ; , астероидов и т. д. по конечному набору точек наблюдения поскольку орбиты периодические, естественным выбором была тригонометрическая интерполяция. См. также Heideman et al. (1984).
в Приложения числовых вычислениях
Chebfun , полностью интегрированная программная система, написанная на MATLAB для вычислений с функциями, использует тригонометрическую интерполяцию и разложения Фурье для вычислений с периодическими функциями. Многие алгоритмы, связанные с тригонометрической интерполяцией, легко доступны в Chebfun ; несколько примеров доступны здесь .
Ссылки [ править ]
- Кендалл Э. Аткинсон, Введение в численный анализ (2-е издание), раздел 3.8. Джон Уайли и сыновья, Нью-Йорк, 1988 год. ISBN 0-471-50023-2 .
- М.Т. Хайдеман, Д.Х. Джонсон и К.С. Буррус, « Гаусс и история быстрого преобразования Фурье », журнал IEEE ASSP Magazine 1 (4), 14–21 (1984).
- ГБ Райт, М. Джавед, Х. Монтанелли и Л. Н. Трефетен, « Расширение Чебфуна на периодические функции », SIAM. Дж. Наук. Вычислить. , 37 (2015), С554-С573
- А. Зигмунд, Тригонометрический ряд , Том II, Глава X, Cambridge University Press, 1988.