- •1. ЭЛЕМЕНТАРНАЯ ТЕОРИЯ ПОГРЕШНОСТЕЙ; ВЫЧИСЛИТЕЛЬНЫЕ ЗАДАЧИ, МЕТОДЫ И АЛГОРИТМЫ
- •1.1. Источники и классификация погрешностей результата численного эксперимента
- •1.2. Погрешности чисел
- •1.3. Погрешности арифметических операций
- •1.4. Погрешности функций
- •1.5. Особенности машинной арифметики
- •1.6. Лабораторная работа № 1. Определение абсолютной и относительной погрешностей приближенных чисел. Оценка погрешностей результата
- •1.7. Корректность вычислительной задачи
- •1.8. Обусловленность вычислительной задачи
- •1.9. Вычислительные методы, их классификация
- •2. ПРИБЛИЖЕНИЕ ФУНКЦИЙ
- •2.1. Задача приближения функций
- •2.2. Интерполяция обобщенными многочленами
- •2.3. Полиномиальная интерполяция. Многочлен Лагранжа
- •2.4. Погрешность интерполяции
- •2.5. Конечные разности и их свойства
- •Доказательство
- •2.6. Разделенные разности и их свойства
- •2.9. Лабораторная работа № 2. Интерполирование и экстраполирование данных. Интерполяционный многочлен Лагранжа
- •2.10. Интерполяционный многочлен Ньютона с конечными разностями
- •2.11. Лабораторная работа № 3. Интерполирование и экстраполирование данных. Интерполяционный многочлен Ньютона
- •2.12. Интерполяционные формулы Гаусса, Стирлинга и Бесселя
- •3. МЕТОД НАИМЕНЬШИХ КВАДРАТОВ И СПЕЦИАЛЬНЫЕ ИНТЕРПОЛЯЦИОННЫЕ МНОГОЧЛЕНЫ
- •3.1. Постановка задачи и вывод формул метода наименьших квадратов
- •3.3. Глобальная полиномиальная интерполяция
- •3.4. Чувствительность интерполяционного многочлена к погрешностям входных данных
- •3.5. Многочлены Чебышева
- •3.6. Решение задачи минимизации оценки погрешности
- •3.8. Лабораторная работа №5. Экономизация степенных рядов
- •3.9. Локальная интерполяция
- •3.10. Сплайны, их свойства и построение
- •3.11. Погрешность приближения кубическими сплайнами
- •3.13. Тригонометрическая интерполяция. Дискретное преобразование Фурье и его реализация на ЭВМ
- •3.14. Матричная форма записи дискретного преобразования Фурье (ДПФ)
- •3.15. Алгоритм реализации ДПФ
- •3.16. Пример реализации алгоритма ДПФ при
- •3.17. Лабораторная работа № 7. Дискретное преобразование Фурье
- •4. ЧИСЛЕННОЕ ДИФФЕРЕНЦИРОВАНИЕ И ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ
- •4.1. Простейшие формулы численного дифференцирования для первой производной
- •4.2. Формулы численного дифференцирования для второй производной
- •4.3. Формулы численного дифференцирования, основанные на интерполяции алгебраическими многочленами
- •4.4. Обусловленность формул численного дифференцирования
- •4.5. Простейшие квадратурные методы численного интегрирования
- •4.6. Оценка погрешностей простейших квадратурных формул
- •4.7. Квадратурные формулы интерполяционного типа
- •4.8. Квадратурные формулы Гаусса
- •4.9. Лабораторная работа № 8. Численное дифференцирование и численное интегрирование функций
- •5. РЕШЕНИЕ СИСТЕМ ЛИНЕЙНЫХ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ И ПРОБЛЕМЫ СОБСТВЕННЫХ ЗНАЧЕНИЙ
- •5.1. Нормы векторов и матриц и их свойства
- •5.2. Обусловленность задачи решения системы линейных алгебраических уравнений
- •5.3. Метод Гаусса (схема единственного деления)
- •5.4. Метод прогонки
- •5.5. Метод простых итераций
- •5.6. Сходимость метода простых итераций
- •5.10. Постановка задачи нахождения собственных чисел
- •5.11. Подобные матрицы
- •5.12. Локализация собственных значений
- •5.13. Степенной метод
- •5.14. Вычисление собственных векторов методом обратных итераций
- •6. ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ НЕЛИНЕЙНЫХ УРАВНЕНИЙ И СИСТЕМ
- •6.1. Решение нелинейных уравнений
- •6.2. Метод Ньютона для уравнений
- •6.3. Сходимость метода Ньютона и трудности его применения
- •6.4. Метод Ньютона решения систем нелинейных уравнений
- •6.6. Модификации метода Ньютона
- •6.7. Лабораторная работа № 11. Решение систем нелинейных уравнений методом Ньютона
- •7. ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ КОШИ ДЛЯ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ И СИСТЕМ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ
- •7.1. Задача Коши для дифференциального уравнения первого порядка
- •7.2. Численные методы решения задачи Коши. Основные понятия и определения
- •7.3. Решение с помощью рядов Тейлора
- •7.5. Анализ ошибок, возникающих при использовании методов Рунге - Кутты
- •7.6. Методы прогноза и коррекции
- •7.7. Сравнение методов
- •7.8. Лабораторная работа № 12. Методы интегрирования обыкновенных дифференциальных уравнений
- •7.9. Решение задачи Коши для систем обыкновенных дифференциальных уравнений
- •7.11. Лабораторная работа № 13. Численное интегрирование систем дифференциальных уравнений первого порядка
- •8. ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ С ЧАСТНЫМИ ПРОИЗВОДНЫМИ (УРАВНЕНИЯ МАТЕМАТИЧЕСКОЙ ФИЗИКИ)
- •8.1. Классификация уравнений математической физики
- •8.2. Простейшие задачи, приводящие к дифференциальным уравнениям в частных производных
- •8.4. Уравнения параболического типа. Явные и неявные схемы
- •Доказательство
- •8.5. Уравнения гиперболического типа
- •8.6. Уравнения эллиптического типа
- •8.7. Свойства разностных схем для дифференциальных уравнений: способность аппроксимировать исходную дифференциальную задачу, устойчивость и сходимость
- •8.8. Некоторые обобщения
- •8.9. Лабораторная работа № 14. Решение задачи Дирихле для уравнения Лапласа методом сеток
- •8.10. Лабораторная работа № 15. Решение однородного уравнения колебаний струны методом сеток по неявной схеме.
0.511 |
|
|
0.2554 |
|
1.030 |
|
|
-0.497 |
|
3.419 |
|
|
31.539 |
|
59.500 |
|
|
-0.810 |
|
|
2.750 |
|
|
0.9280 |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0.555 |
|
|
0.2988 |
2.170 |
|
|
0.828 |
3.875 |
|
|
49.183 |
|
70.450 |
|
|
-0.897 |
|
2.935 |
|
|
0.9790 |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
0.609 |
|
|
0.3552 |
2.500 |
|
|
-0.781 |
4.200 |
|
|
67.686 |
|
82.100 |
|
|
-0.954 |
|
3.150 |
|
|
0.9999 |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
Номера вариантов |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
21 |
|
|
|
22 |
|
|
|
23 |
|
|
|
|
24 |
|
|
|
|
25 |
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
xi |
|
|
|
yi |
|
xi |
|
|
|
yi |
|
xi |
|
|
|
yi |
|
|
xi |
|
|
|
yi |
|
xi |
|
|
|
yi |
|
0.000 |
|
|
2.7183 |
|
0.100 |
|
|
-3.928 |
|
0.000 |
|
|
1.0000 |
|
0.500 |
|
|
0.9273 |
|
|
0.100 |
|
|
0.0905 |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
0.425 |
|
|
2.4869 |
0.330 |
|
|
-3.743 |
0.175 |
|
|
0.9703 |
|
0.625 |
|
|
0.8938 |
|
0.300 |
|
|
0.2222 |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
0.870 |
|
|
1.9057 |
0.519 |
|
|
-3.567 |
0.308 |
|
|
0.9133 |
|
0.800 |
|
|
0.8434 |
|
0.490 |
|
|
0.3002 |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
1.395 |
|
|
1.1911 |
0.728 |
|
|
-3.344 |
0.514 |
|
|
0.7910 |
|
1.100 |
|
|
0.7573 |
|
0.730 |
|
|
0.3518 |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
1.850 |
|
0.7591 |
0.997 |
|
-3.004 |
0.800 |
|
0.6098 |
1.450 |
|
0.6669 |
|
0.950 |
|
0.3674 |
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
2.410 |
|
0.4752 |
1.264 |
|
-2.598 |
0.996 |
|
0.5020 |
1.810 |
|
0.5890 |
|
1.200 |
|
0.3614 |
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
3.215 |
|
0.3689 |
1.513 |
|
-2.146 |
1.213 |
|
0.4046 |
2.250 |
|
0.5123 |
|
1.500 |
|
0.3347 |
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
3.397 |
|
0.3800 |
1.875 |
|
-1.332 |
1.456 |
|
0.3205 |
2.570 |
|
0.4668 |
|
1.710 |
|
0.3093 |
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
3.830 |
|
|
0.4620 |
2.011 |
|
|
-0.969 |
1.678 |
|
|
0.2621 |
|
3.000 |
|
|
0.4164 |
|
1.980 |
|
|
0.2734 |
|
|
|
|
Номера вариантов |
|
|
|
|
|
26 |
|
|
27 |
|
28 |
|
29 |
|
30 |
xi |
yi |
xi |
yi |
xi |
yi |
xi |
yi |
xi |
yi |
1.100 |
0.438 |
1.500 |
0.919 |
1.000 |
2.3198 |
0.000 |
0.540 |
0.125 |
0.9058 |
1.250 |
0.709 |
3.750 |
0.247 |
1.500 |
2.7115 |
0.479 |
-0.044 |
0.180 |
0.9310 |
1.400 |
0.169 |
5.120 |
-0.062 |
1.985 |
2.4979 |
0.896 |
-0.770 |
0.236 |
0.9540 |
1.575 |
-0.042 |
8.300 |
-0.519 |
2.470 |
1.8631 |
1.365 |
-0.715 |
0.291 |
0.9730 |
1.720 |
-0.148 |
11.450 |
-0.723 |
2.990 |
1.1630 |
1.700 |
0.690 |
0.347 |
0.9879 |
1.900 |
-0.318 |
17.900 |
-0.967 |
3.500 |
0.7041 |
1.915 |
0.876 |
0.400 |
0.9969 |
2.070 |
-0.461 |
21.680 |
-0.998 |
3.875 |
0.5120 |
2.148 |
-0.655 |
0.462 |
0.9999 |
2.310 |
-0.624 |
25.100 |
-0.997 |
4.218 |
0.4147 |
2.583 |
0.784 |
0.517 |
0.9944 |
2.500 |
-0.718 |
30.000 |
-0.967 |
4.500 |
0.3762 |
2.995 |
0.421 |
0.560 |
0.9839 |
3.13. Тригонометрическая интерполяция. Дискретное преобразование Фурье и его реализация на ЭВМ
Задача интерполяции функции y = f (x) заданной таблично на сетке x0 < x1 <... < xn−1
тригонометрическим многочленом, решается во многом аналогично задаче полиномиальной интерполяции. Здесь обобщенный многочлен имеет вид
Φn (x) = n∑−1 ak exp(2πikx). |
(3.13.1) |
k =0 |
|
В инженерных задачах широко используется представление функций в виде сходящихся тригонометрических рядов, а также различные варианты преобразования Фурье. Задача тригонометрической интерполяции имеет некоторые особенности, например, для нее оптимальным является равномерное распределение узлов.
Известно, что абсолютно интегрируемая и кусочно-гладкая на конечных отрезках функция y = f (x) представима интегралом Фурье
f (x)= ∞∫ |
∞∫ f (u)exp(2πit(x −u))dudt . |
(3.13.2) |
−∞ −∞ |
|
Из этого соотношения легко получить преобразования Фурье в комплексной форме:
96
S(t)= ∞∫ |
f (u)exp(− 2πitu)du, |
(3.13.3) |
|
|
−∞ |
∞ |
|
|
|||
|
f (x)= |
∫S(t)exp(2πitx)dt. |
|
|
|
||
|
|
−∞ |
|
Эти преобразования играют большую роль в распознавании образов, в моделировании фильтров, описании изображений и в целом ряде других задач. Поскольку аналитическое вычисление интеграла (3.13.3) вызывает значительные трудности, большое распространение получили методы численной реализации этих интегралов. Был разработан метод дискретного преобразования Фурье, а в 1965 году Кули и Таки предложили так называемый алгоритм «быстрого преобразования Фурье» - БПФ.
Под дискретным преобразованием Фурье понимают пару преобразований, которые
устанавливают взаимосвязь между конечным числом дискретных выборок как функции |
|||
f (x), так и ее частотного спектра S(t). Эти преобразования записываются обычно в виде |
|||
S(tn ) = |
|
x2∑N −1 f (xk )exp(− 2πitn xk ), n = 0,1,...,2N −1, |
(3.13.4) |
|
|
k =0 |
|
|
t2∑N −1S(tn )exp(2πitn xk ), k = 0,1,...,2N −1. |
||
f (xk ) |
= |
|
|
|
|
n=0 |
|
Операцию преобразования набора значений f (x0 ), f (x1 ),..., f (x2 N −1 ) в набор значений частотного спектра S(t0 ), S(t1 ),..., S(t2 N −1 ) принято называть прямым дискретным преобразо-
ванием Фурье, а обратную функцию – обратным дискретным преобразованием Фурье. Осуществление этих операций является важной составной частью многих алгоритмов.
Рассмотрим подробнее функцию S(tn ) из уравнений (3.13.4). Оказывается, S(tn ) имеет период 1
|
1 |
|
2N −1 |
|
k |
|
|
|
1 |
|
|
|
2 N −1 |
|
k |
|
|||
|
|
|
|
∑ |
|
|
|
|
|
|
|
|
|
|
∑ |
|
|
||
S t + |
|
= |
x |
|
|
f (x |
|
)exp − 2πi t + |
|
|
k |
x = x |
|
f (x |
|
)exp(− 2πitk x) = S(t). |
|||
|
|
|
|
|
|
|
|||||||||||||
|
x |
|
k =0 |
|
|
|
|
|
|
x |
|
|
|
k =0 |
|
|
|
||
Здесь положено x0 |
= 0 и xk = k x . Из периодичности следует, что функция S(t) определяет- |
||||||||||||||||||
ся заданием ее значений на промежутке длиной |
1 |
x |
, то есть выборки tn в соотношениях |
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(3.13.4) должны удовлетворять условию tn |
< 1 2 |
x для всех n = 0,1,...,2N −1. |
|||||||||||||||||
Если tn [0, |
1 |
x |
]= T |
и S(tn ) = 0 , когда tn T , то интервал между узлами x необ- |
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ходимо выбирать из условия |
|
|
2T x <1. |
|
|
|
|
|
|
(3.13.5) |
|||||||||
|
|
|
|
|
f (x) |
|
|
|
|
|
|
|
|||||||
Тогда функция |
имеет ограниченный спектр частот, и возможно взаимное вос- |
становление функций f (x) и S(t) по их значениям в конечном числе точек.
3.14. Матричная форма записи дискретного преобразования Фурье (ДПФ)
Будем предполагать далее, что исходная функция f (x) имеет ограниченный спектр частот tn <T ; кроме того предположим, что задан конечный интервал изменения переменной x : 0 ≤ x ≤ X .
Очевидно, |
x = |
|
X |
. Из условия (3.13.5) 2T |
x <1 получаем условие на выбор числа |
|||||||||||
|
2N |
|||||||||||||||
|
X |
|
|
|
N |
|
2N −1 |
|
2N |
|
|
1 |
|
|||
N : 2T x = 2T |
<1, |
N >T X . Отсюда же T < |
, |
≤ 2T < |
. Положив |
t = |
, |
|||||||||
2N |
X |
X |
|
X |
X |
|||||||||||
|
|
|
|
|
|
|
|
|
|
Кули (Cooly J.W.), Таки (Tukey J.W.) – американские математики.
97
получим (2N −1) t ≤ 2T < |
2N |
и |
t < |
1 |
|
2N |
|
, где 2N −1 |
- число интервалов по множеству |
|||||||||||||
|
X |
X |
2N −1 |
|||||||||||||||||||
|
|
|
|
|
X |
|
|
n |
|
|
|
|||||||||||
T . Следовательно, |
xk = k |
|
|
x = k |
, |
tn |
= n |
t = |
|
. |
|
|
||||||||||
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
2N |
|
|
|
|
|
|
|
|
|
X |
|
|
||
Тогда дискретное преобразование Фурье в точках xk и tn запишется в виде |
||||||||||||||||||||||
|
|
|
X 2 N −1 |
|
|
|
|
|
|
|
π |
|
|
|
|
|
||||||
S(tn )= |
|
|
|
|
|
∑ f (xk |
)exp − |
|
|
|
|
ink , n |
= 0,1,...,2N −1, |
|||||||||
2N |
|
N |
||||||||||||||||||||
|
|
k =0 |
|
|
|
|
|
|
|
|
|
|
|
(3.14.1) |
||||||||
|
|
|
|
1 |
2N −1 |
|
|
|
π |
|
|
|
|
|
|
|||||||
|
f (xk ) |
= |
|
|
|
∑ |
S(tn )exp |
|
|
|
ink , k = 0,1,...,2N −1. |
|||||||||||
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
X n=0 |
|
|
N |
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
Каждое из |
равенств |
|
(3.14.1) |
|
|
можно |
легко |
|
получить |
из |
другого. |
||||||||||||||||||||||||||
uk = f (xk ) и vn = S(tn ) |
|
и |
умножим |
|
n -е |
уравнение |
|
для S(tn ) |
|||||||||||||||||||||||||||||
|
i |
π |
jn |
|
X |
|
2 N −1 |
−i |
π |
n |
k |
|
|
i |
π |
j |
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
vn e |
|
N |
|
= |
|
|
|
|
N |
|
|
|
|
N |
|
, n = 0,1,...,2N −1. При сложении |
|||||||||||||||||||||
|
|
|
2N |
|
∑ uk e |
|
|
|
|
e |
|
|
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
k =0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ко вычисляются коэффициенты при uk ; действительно, |
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
X |
2 N −1 |
−i |
π |
nk |
i |
π |
jn |
|
X |
|
2 N −1 |
−i |
π |
(k − j ) |
|
|
0, k |
≠ |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
∑ e |
|
|
|
N |
|
e N |
|
= |
|
∑ e |
|
N |
|
= |
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
2N |
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
n=0 |
|
|
|
|
|
|
|
|
|
|
|
2N n=0 |
|
|
|
|
|
|
X , k = |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 N −1 |
−i |
π |
|
|
−i |
π |
|
|||
|
|
|
|
Пусть, например, |
k ≠ |
|
j |
|
и k − j =1, |
тогда |
∑ e |
|
N |
= 1 + e |
|
N |
n=0
Например |
обозначим |
|||||
|
|
|
π |
|
|
|
на |
ei |
|
jn . |
Получим |
||
N |
||||||
всех 2N равенств лег- |
||||||
j, |
|
|
|
|
|
|
j. |
|
|
|
|
|
|
+ e−2i |
π |
+ ... +e−i |
π(2 N −1) |
|||
N |
N = |
|
1 − e−i |
π |
|
2 N |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
1 − e−2πi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
= 1 |
N |
|
= |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
= 0 . |
Разделив |
|
найденный |
коэффициент на X , получим |
||||||||||||||||||||||||||||
|
1 − e−i |
|
π |
1 − e−i |
π |
|
||||||||||||||||||||||||||||||||||||||
|
|
N |
|
|
|
|
|
N |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
1 |
2 N −1 |
|
|
|
|
|
|
π |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
uk = |
∑ vn ei N nk , то есть второе соотношение системы (3.14.1). |
|||||||||||||||||||||||||||||||||||||||||||
|
X |
|||||||||||||||||||||||||||||||||||||||||||
|
|
n=0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
Дискретные преобразования Фурье можно записать еще короче в матричном виде. |
||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
u |
0 |
|
|
f (x |
0 |
) |
|
|
|
|
|
|
|
|
v |
0 |
|
|
|
S(t |
0 |
) |
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
−i |
π |
|
|
|
|
|
|
u1 |
|
|
|
f |
(x1 ) |
|
|
|
|
|
|
|
|
v1 |
|
|
|
S(t1 ) |
|
||||||||||||
Пусть q = e |
N |
и U = |
= |
|
|
|
|
|
|
= |
||||||||||||||||||||||||||||||||||
|
|
|
|
|
M |
|
|
|
M |
|
|
|
, V = |
|
M |
|
|
M |
|
|
, |
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
u2N −1 |
|
|
f (x2 N −1 ) |
|
|
|
|
|
|
v2 N −1 |
|
|
S |
(t2 N −1 ) |
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
1 |
|
|
|
|
|
|
1 |
|
|
L |
|
1 |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
q |
|
|
|
|
|
|
q2 |
|
|
L q2 N −1 |
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
W = |
1 |
|
|
|
q2 |
|
|
|
|
|
|
q4 |
|
|
L q2(2 N −1) |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
L |
|
|
|
L |
|
|
|
|
|
|
L |
|
|
L |
|
L . |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
q |
2 N −1 |
|
q |
2 |
(2 N −1) |
L q |
(2 N −1)2 |
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
Тогда систему (3.14.1) можно переписать в следующем виде: |
||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
V |
= |
|
|
|
|
WU, |
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2N |
|
|
|
|
|
|
|
|
(3.14.2) |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
U = |
|
W −1V. |
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
X |
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
98
1 |
|
1 |
|
1 |
L |
1 |
|
|
|
|
1 |
|
q−1 |
|
q−2 |
L q−2 N −1 |
|
|
|
|
|
|
|
|
|||||
Здесь W −1 = |
1 |
|
q−2 |
|
q−4 |
L q−2(2 N −1) |
. Очевидно из (3.14.2), что для непосредст- |
||
|
|
|
|
|
|
|
|
|
|
L |
|
L |
|
L |
L |
L |
|
|
|
|
1 |
q |
−2 N −1 |
q |
−2(2 N −1) |
L q |
−(2N −1)2 |
|
|
|
|
|
|
|
|
венного перемножения матриц W и U требуется 2N (2N −1)≈ (2N )2 операций комплексного
умножения и сложения.
Разработанный Кули и Таки алгоритм БПФ использует факт, что, если число 2N не является простым, количество арифметических операций, требуемых для вычисления по
формулам (3.14.2), можно существенно уменьшить. Если 2N = r1 r2 ... rn , где rk - |
целые |
числа, то матрицу W можно представить в виде произведения n матриц W1 ,W2 ,...,Wn |
поряд- |
ка 2N ×2N таких, что у каждой матрицы Wk имеется только rk 2N отличных от нуля элементов. Тогда
V = |
X |
W |
n |
W |
n−1 |
... W |
2 |
W U |
(3.14.3) |
|
|||||||||
|
2N |
|
|
1 |
|
||||
|
|
|
|
|
|
|
|
||
Если теперь найти алгоритм, по которому умножение матриц Wk |
осуществляется |
только путем rk 2N операций (отбрасываются умножения на нули), то для выполнения преобразования (3.14.3) потребуется (r1 + r2 +...+ rn ) 2N операций. Это число может быть при
больших значениях 2N значительно меньше, чем исходное число операций (2N )2 . Особенно эффективным этот алгоритм является тогда, когда 2N является степенью числа два. В
этом случае вместо (2N )2 операций требуется выполнить лишь |
2N log2 2N операций. |
На- |
||
пример, для 2N =1024 = 210 этот алгоритм позволяет |
ускорить вычисления |
в |
||
|
2N |
= 1024 ≈ 50 раз. Программы, реализующие различные варианты этого алгоритма, |
||
|
2N log2 2N |
|||
|
20 |
|
|
входят в стандартное математическое обеспечение ЭВМ и доступны массовому пользователю.
3.15. Алгоритм реализации ДПФ
Рассмотрим один из способов разложения матрицы W в случае 2N = 2n и приведем
алгоритм для выполнения соответствующих вычислений. Разложим матрицу W на |
n со- |
|||||
множителей W ,W ,...,W |
n |
таких, что каждая из матриц |
W ,k =1,2,...,n содержит 2n+1 |
отлич- |
||
1 2 |
|
k |
|
= (c(m)), i, j =1,2,...,2n . |
||
ных от нуля элементов. Пусть с(m) - элементы матрицы |
W |
, то есть W |
||||
|
|
i, j |
m |
m |
i, j |
|
Тогда один из алгоритмов дискретного преобразования Фурье, не изменяющий порядок че-
редования компонент результирующего вектора |
V = |
X |
W U , определяется следующим |
||||||||||||||
2N |
|||||||||||||||||
образом: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
−i |
π |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
q = e |
|
N , i = 0,1,...,2n−m −1, |
μ =1,2,...,2m-1 , |
||||||||||||||
|
(m) |
|
|
|
|
|
|
|
(m) |
|
|
|
|
|
=1, |
||
|
ci 2m +μ,i 2m−1+μ |
= |
1, ci 2m +2m−1+μ,i 2m−1+μ |
||||||||||||||
|
|
|
c(mm) |
|
|
|
|
|
|
= q(μ−1)2 |
n−m |
, |
(3.15.1) |
||||
|
|
|
n−1 |
+i 2 |
m−1 |
|
|
|
|
||||||||
|
|
|
i 2 +μ,2 |
|
|
|
+μ |
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
= −q(μ−1)2n−m , |
|||||||
c(m) |
|
|
|
|
|
|
|||||||||||
|
i 2m +2m−1+μ,2n−1+i 2m−1 |
+μ |
|
|
|
|
|
ci(,mj ) = 0 для всех остальных пар индексов i, j .
99