1626435587-55f52a4de97976f3c6215fa7c103f544 (Смирнов 2017 - Основы вычислительной физики ч2), страница 11

PDF-файл 1626435587-55f52a4de97976f3c6215fa7c103f544 (Смирнов 2017 - Основы вычислительной физики ч2), страница 11 Основы вычислительной физики (108090): Книга - 7 семестр1626435587-55f52a4de97976f3c6215fa7c103f544 (Смирнов 2017 - Основы вычислительной физики ч2) - PDF, страница 11 (108090) - СтудИзба2021-07-16СтудИзба

Описание файла

PDF-файл из архива "Смирнов 2017 - Основы вычислительной физики ч2", который расположен в категории "". Всё это находится в предмете "основы вычислительной физики" из 7 семестр, которые можно найти в файловом архиве НГУ. Не смотря на прямую связь этого архива с НГУ, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 11 страницы из PDF

Однако это выходит за рамки поставленных нами целей, в связис чем мы направляем интересующихся читателей к монографии [A6].2.10.3. Общий случай составных Выше мы рассматривали алгоритм БПФ для частного случая массивов длины = 2 . Указанное ограничение на размер таблиц данныххотя и позволяет достичь наибольшей экономии числа операций, ноне является обязательным. Чтобы построить более общий алгоритмБПФ заметим, что экономия числа операций достигается за счёт использования симметрии расположения комплексных корней из единицы { } = { }. В рассмотренном выше частном случае = 2 мывоспользовались симметрией относительно замены → −, что эквивалентно домножению на , или повороту комплексной плоскости на .

Аналогичным образом можно использовать симметрию относительно поворота на угол 2/, где — делитель числа точек . Рассмотрим данную мысль на примере = 3. Полагая кратным 3 и действуяпо аналогии с (74), разобьём полином на сумму трёх многочленов,каждый из которых является собственной функцией преобразования → 2/3 с собственным значением 1 либо ±2/3 : () = /3 (3 ) + /3 (3 ) + 2 /3 (3 ) =(︀)︀= 0 + 3 3 + . .

. + −3 −3 +(︀)︀+ 1 + 4 3 + . . . + −2 −3 · +(︀)︀+ 2 + 5 3 + . . . + −1 −3 · 2 .Поскольку mod 3 = 0, для каждой точки в наборе (73) присутствует также симметрично расположенные точки = ±2/3 , = ( ± /3) mod . Следовательно, вычисление значений полинома ( ) можно оптимизировать, если разбить набор точек (73) на /3троек.

В каждой тройке для нахождения необходимо вычислитьзначения полиномов /3 , /3 и /3 :54 () = /3 (3 ) + ( (2343) = /3 (3 ) + 3) = /3 ( ) + · /3 (3 ) +2343 · /3 (3 ) + 3 · /3 ( ) + 2 · /3 (3 ),43232 · /3 (3 ),2(81)3 · /3 ( ).Использование соотношений (81) позволяет получить ответ всегоза 3 × 2( 3 )2 + 12 3 ≈ 23 2 операций (вместо 22 при непосредственномвычислении по формулам (56) на с. 33).Аналогичные рассуждения можно произвести для произвольногосоставного числа точек . Краткое формальное рассмотрение общегослучая = 1 · 2 можно найти в статье [A4].

Перегруппировка слагаемых в сумме позволяет свести исходную задачу о выполнении дискретного преобразования Фурье массива длины к вычислению суммы из1 слагаемых, каждое из которых есть результат БПФ от подмножестваисходного массива длины 2 .2.10.4. Cлучай простого Работа описанного выше алгоритма основана на разделении задачидля -точечного дискретного преобразования Фурье на последовательность подзадач с кратно меньшим числом точек. Каждый шаг деления даёт выигрыш в быстродействии, так что общая экономия будет увеличиваться с ростом числа шагов.

Последнее определяется, очевидно,числом сомножителей, на которые раскладывается длина исходного массива. Можно ли достичь какого-либо ускорения в случае, если — простое число, т. е. непредставимо в виде произведения целочисленных сомножителей? Через три года после выхода работы Кули иТьюки было показано [A7], что в случае простых дискретное преобразование Фурье может быть сведено к вычислению циклической корреляции (либо свёртки) двух последовательностей длины ( − 1). Данная задача может быть решена с помощью дискретных преобразованийФурье17 .

Поскольку ( − 1) не является простым числом (предполагаем, что простое и > 3), задача сводится к рассмотренному вышеалгоритму быстрого преобразования Фурье, что позволяет решить еёза ( log ) арифметических операций, хотя коэффициент пропорциональности может быть значительно больше, чем в случае составных и тем более = 2 .17Фурье-образ от свёртки * равен произведению Фурье-образов и .55Рассмотрим идею данного алгоритма более подробно. Данный параграф предназначен лишь для самых увлечённых и любознательныхчитателей, тогда как при первом знакомстве с предметом рекомендуется переходить к п.

2.11. Для наглядности, помимо общих формул,выпишем также матрицы для частного случая = 5. Прежде всего,обратим внимание, что все элементы первой строки и первого столбцаматрицы дискретного преобразования Фурье Λ = exp(2) равны1 (см. матрицу на с. 51). В этой связи для коэффициента Фурье с индексом 0 имеем:−1∑︁0 = .(82)=0Для остальных коэффициентов можем записать:(︂)︂−1∑︁2 exp , = 1, . . . , − 1.

= 0 +(83)=1В частном случае = 5, обозначая для краткости ≡ exp(2/5),имеем:⎛⎞ ⎛ 1⎞⎛⎞1 − 0 2 3 41⎜ 2 − 0 ⎟ ⎜ 2 4 1 3 ⎟ ⎜ 2 ⎟⎜⎟ ⎜⎟⎜⎟⎝ 3 − 0 ⎠ = ⎝ 3 1 4 2 ⎠ ⎝ 3 ⎠4 − 04 3 2 14 .Выполним перестановку строк и столбцов полученной матрицы, заменив индексы и в (83) так, чтобы получилось взаимно однозначноеотображение = 0, 1, . . ., − 2 на = 1, 2, .

. . , − 1 и = 0, 1, . . . , − 2на = 1, 2, . . . , − 1: = mod , = 0, . . . , − 2, = mod , = 0, . . . , − 2.(84)(Числа , обеспечивающие указанное взаимно однозначное отображение, называют.) Например, при = 5 можновыбрать = 2, что даст следующее отображение индексов:примитивными корнями, , 01122433Выполнив замену индексов (84) в выражении (83), получим:(︂)︂−2∑︁2 + mod − 0 = mod exp·mod ,=0 = 0, . .

. , − 2.56(85)Выражение (85) задаёт произведение некоторой матрицы и вектораa, компоненты которого переставлены в соответствии с (84). Обратимвнимание на структуру матрицы: заменяя в (85) → + 1, несложно увидеть, что каждая следующая строка содержит те же элементы,что и предыдущая, со сдвигом столбцов на 1 ( → − 1). Сдвиг является циклическим ввиду того, что + входит в (85) по модулю .В частном случае = 5 имеем:⎛⎞ ⎛ 1⎞⎛⎞1 − 0 2 4 31⎜ 2 − 0 ⎟ ⎜ 2 4 3 1 ⎟ ⎜ 2 ⎟⎜⎟ ⎜⎟⎜⎟⎝ 4 − 0 ⎠ = ⎝ 4 3 1 2 ⎠ ⎝ 4 ⎠3 − 03 1 2 43 .корреляциисвёрткиПолученное выражение носит названиепары векторов( 1 , 2 , 4 , 3 ) и (1 , 2 , 4 , 3 ), либовектора ( 3 , 4 , 2 , 1 ) с(1 , 2 , 4 , 3 ). Как уже отмечалось в начале данного параграфа, даннаяоперация может быть сведена к обратному дискретному преобразованию Фурье от произведения Фурье-образов сворачиваемых векторов.Всего требуется три преобразования Фурье, однако одно из них — отвектора ( 3 , 4 , 2 , 1 ) — может быть выполнено предварительно, сохранено в памяти и использовано многократно для различных a.

Поскольку свёртка вычисляется в пространстве C−1 , а число ( − 1) является составным для простых ≥ 5, можно использовать описанныев пп. 2.10.1-2.10.3 алгоритмы быстрого преобразования Фурье для составных .Таким образом, мы свели задачу о вычислении дискретного преобразования Фурье для простых к использованию алгоритмов быстрогопреобразования Фурье плюс () дополнительных операций, связанных с компонентами 0 и 0 , см. (82) и (85).

Совместное использованиеалгоритмов БПФ для простых и составных формально позволяетвыполнить дискретное преобразование Фурье для произвольного за( log ) арифметических операций. Для желающих изучить вопросболее глубоко, рекомендуем обратиться к оригинальным работам и монографии [A8].2.11. Библиотека FFTWВ заключение познакомимся с одной из наиболее эффективныхкросс-платформенных библиотек для выполнения дискретного преобразования Фурье — FFTW18 [A9].18 От англ.

Fastest Fourier Transform in the West, самое быстрое преобразованиеФурье на Западе.57Библиотека FFTW является бесплатной (в том числе для коммерческого использования), распространяется по лицензии GNU GPL иимеет целый ряд достоинств, в числе которых:∙ высокая скорость работы на различных аппаратных платформах;∙ возможность дополнительного повышения быстродействия засчёт использования различных наборов векторных (SIMD) инструкций и параллельных вычислений в системах с симметричной мультипроцессорностью (SMP) и массивно-параллельной архитектурой (MPP);∙ выполнение одно- и многомерных преобразований Фурье;∙ возможность работы с массивами произвольной длины (хотя использование таблиц длины = 2 обеспечивает лучшее быстродействие);∙ возможность использования как комплексных, так и вещественных входных / выходных данных;∙ интерфейс на языках Си и Фортран;∙ наличие подробной, хорошо структурированной документации спримерами использования.Указанные достоинства библиотеки FFTW обусловливают её широкое применение.

Использование библиотеки FFTW вместо самописного программного кода в некоторых случаях может дать ускорениевплоть до порядка величины даже без использования параллельныхвычислений в SMP/MPP системах. В данном параграфе мы краткопознакомимся с основными принципами использования FFTW.2.11.1. УстановкаДля установки библиотеки необходимо скачать дистрибутив FFTWсо страницы Download официального сайта [A9].Пользователям операционной системы Microsoft Windows следуетперейти с основной страницы загрузок по ссылке Go here for Windowsи скачать архив с уже готовыми к использованию dll-файлами19 библиотеки FFTW.

Обратим внимание на наличие в архиве сразу трёхdll-файлов: libfftw3-3.dll, libfftw3f-3.dll и libfftw3l-3.dll, содержащих реализацию для типа данных double (файл без суффикса19 Сокращение от, динамически подключаемая библиотекав операционных системах семейства MS Windows.Dynamic Link Library58в имени), float (файл с суффиксом f) и long double (файл с суффиксом l). Требуемый программе dll-файл необходимо разместить врабочем каталоге рядом с создаваемым exe-файлом либо в одном изстандартных каталогов20 , используемых для размещения динамическиподключаемых библиотек (C:\Windows, C:\Windows\System32).Пользователям Microsoft Visual Studio для сборки программы, использующей библиотеку FFTW, необходимо дополнительно создатьlib-файлы с помощью команд21lib /def:libfftw3-3.deflib /def:libfftw3f-3.deflib /def:libfftw3l-3.defДля запуска программы lib.exe нужно открыть консоль разработчика Microsoft Visual Studio (Developer Command Prompt for VS).

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5304
Авторов
на СтудИзбе
416
Средний доход
с одного платного файла
Обучение Подробнее