Тригонометрическая интерполяция
Материал из MachineLearning.
м (викификация, категория, орфография) |
|||
Строка 1: | Строка 1: | ||
==Дискретное преобразование Фурье== | ==Дискретное преобразование Фурье== | ||
- | В прикладных задачах часто используются различные преобразования Фурье функций непрерывного | + | В прикладных задачах часто используются различные преобразования Фурье функций непрерывного аргумента, а также представлений функций с помощью сходящихся тригонометрических рядов. |
- | Всякую непрерывно дифференцируемую | + | Всякую непрерывно дифференцируемую функцию <tex>f</tex> можно разложить в ряд Фурье: |
<tex>f(x)=\sum_{k=-\infty}^{\infty} \alpha_k exp{2\pi i k x}</tex> | <tex>f(x)=\sum_{k=-\infty}^{\infty} \alpha_k exp{2\pi i k x}</tex> | ||
- | коэффициенты <tex>\alpha_k</tex> находятся по | + | коэффициенты <tex>\alpha_k</tex> находятся по следующим формулам |
<tex>\alpha_k=\int \limits_{0}^{1} f(x) exp {-2 \pi i k x} dx</tex> | <tex>\alpha_k=\int \limits_{0}^{1} f(x) exp {-2 \pi i k x} dx</tex> | ||
- | Но как правила функция задана только в некоторых точках или у нас есть возможность узнать | + | Но как правила функция задана только в некоторых точках или у нас есть возможность узнать её значения только в некотором конечном числе точек. Допустим, <tex> x_j=j/N, j=0,1,\dots,N-1 </tex>.В этом случае аналогом функции непрерывной интерполяции функции будет дискретный вариант: |
<tex> f(x_j)=\sum_{k=0}^{N-1} \alpha_k exp{2\pi ikx_j}, 0\le j<N </tex> | <tex> f(x_j)=\sum_{k=0}^{N-1} \alpha_k exp{2\pi ikx_j}, 0\le j<N </tex> | ||
- | Разложение имеет место когда функцию можно приблизить тригонометрическим многочленом | + | Разложение имеет место когда функцию можно приблизить тригонометрическим многочленом следующего вида в заданных нам точках |
<tex>S_N(x)=\sum_{k=0}^{N-1}a_k exp{2 \pi ikx} </tex> | <tex>S_N(x)=\sum_{k=0}^{N-1}a_k exp{2 \pi ikx} </tex> | ||
Строка 23: | Строка 23: | ||
Далее для удобства записи будем использовать <tex>\omega=exp{2\pi i/N}</tex> | Далее для удобства записи будем использовать <tex>\omega=exp{2\pi i/N}</tex> | ||
- | Часто используется | + | Часто используется следующий вид формул: |
- | <tex> f(x_j)=\sum_{-N/2<k\le N/2} a_k exp{2\pi ikx_j}, </tex> и это | + | <tex> f(x_j)=\sum_{-N/2<k\le N/2} a_k exp{2\pi ikx_j}, </tex> и это соответствует интерполяции тригонометрическим многочленом |
<tex>S_N=\sum_{-N/2<k\le N/2}a_k exp{2\pi i kx}</tex>, | <tex>S_N=\sum_{-N/2<k\le N/2}a_k exp{2\pi i kx}</tex>, | ||
Строка 31: | Строка 31: | ||
где коэффициенты <tex>a_k</tex> считаются по тем же формулам. | где коэффициенты <tex>a_k</tex> считаются по тем же формулам. | ||
- | Если вычисления проводить по | + | Если вычисления проводить по вышеприведённым формулам, то на выполнения каждого из преобразований потребуется <tex>N^2</tex> арифметических операций (считаем, что <tex>\omega=exp{2\pi i/N}</tex> уже вычислены). Если N не является простым числом, то количество операций можно значительно сократить, используя [[быстрое преобразование Фурье]]. |
==Пример использования== | ==Пример использования== | ||
- | Рассмотрим применение | + | Рассмотрим применение тригонометрической интерполяции. |
- | Будем использовать для | + | Будем использовать для приближения следующий тригонометрический полином: |
<tex>\begin{matrix} F_n(x)=a_0 & + & a_1 \cos x + a_2 \cos 2x+\dots + a_n \cos nx + \\ \ &+&b_1 \sin x + b_2 \sin 2x+\dots + b_n \sin nx . \end{matrix}</tex> | <tex>\begin{matrix} F_n(x)=a_0 & + & a_1 \cos x + a_2 \cos 2x+\dots + a_n \cos nx + \\ \ &+&b_1 \sin x + b_2 \sin 2x+\dots + b_n \sin nx . \end{matrix}</tex> | ||
Строка 48: | Строка 48: | ||
==Список литературы== | ==Список литературы== | ||
+ | |||
+ | == См. также == | ||
+ | * [[Практикум ММП ВМК, 4й курс, осень 2008]] | ||
+ | |||
+ | {{Заготовка}} | ||
+ | [[Категория:Учебные задачи]] |
Версия 18:55, 19 октября 2008
Содержание |
Дискретное преобразование Фурье
В прикладных задачах часто используются различные преобразования Фурье функций непрерывного аргумента, а также представлений функций с помощью сходящихся тригонометрических рядов. Всякую непрерывно дифференцируемую функцию можно разложить в ряд Фурье:
коэффициенты находятся по следующим формулам
Но как правила функция задана только в некоторых точках или у нас есть возможность узнать её значения только в некотором конечном числе точек. Допустим, .В этом случае аналогом функции непрерывной интерполяции функции будет дискретный вариант:
Разложение имеет место когда функцию можно приблизить тригонометрическим многочленом следующего вида в заданных нам точках
Система функций является ортогональной, на множестве точек при том что , таким образом разложение имеет место и коэффициенты представляются в виде:
Далее для удобства записи будем использовать
Часто используется следующий вид формул:
и это соответствует интерполяции тригонометрическим многочленом
,
где коэффициенты считаются по тем же формулам.
Если вычисления проводить по вышеприведённым формулам, то на выполнения каждого из преобразований потребуется арифметических операций (считаем, что уже вычислены). Если N не является простым числом, то количество операций можно значительно сократить, используя быстрое преобразование Фурье.
Пример использования
Рассмотрим применение тригонометрической интерполяции. Будем использовать для приближения следующий тригонометрический полином:
Будем искать приближение функции f(x). Пусть известно значения при
Тогда по формулам изложенным выше можно получить