Восстановление функции по коэффициентам её ряда Фурье

Создание функции

Создана функция для задания на отрезке [0,30] (ангстремы) двух молекул: LiOH и HCN, расположенных на расстоянии 2.9 ангстрем. Предполагается формирование водородной связи Li-O-H•••N≡C-H. Функция получена с помощью скрипта compile-func.py заданием параметра –g 9,2,5+24,2.5,7+3,4,8+21,2.4,10.9+18,2.3,12.3+3,4,13.3.

В полученном текстовом файле func.txt приведено описание заданной функции в виду координат X и Y.

График полученной функции представлен на рисунке 1. Высота пика соответствует утроенному количеству электронов в атоме. Ширина пика соотносится с радиусом атома.

Рис. 1. График функции.

Рассчет коэффициентов Фурье

Использован скрипт func2fourier.py. Входной файл – функция, полученная как выходной файл скрипта compile-func.py (-i func.txt). Выходной файл func_ft.txt имеет формат: <номер гармоники (0-498)> <амплитуда> <фаза>.

Отбор гармоник

Использовался скрипт fourier-filter.py, фильтрующий нужные строки.

Восстановление функции по отобранным гармоникам осуществлено скриптом fourier2func.py. Кроме графика, выдается также файл с исходной и восстановленной функцией. Полученные в ходе восстановления результаты заносились в таблицу 1.

Полные наборы гармоник

Для определения соответствия числа слагаемых ряда Фурье n и качества восстановления функции электронной плотности использован скрипт func2fourier.py. Как входной файл –i func_ft_0-n.txt была использована часть файла func_ft.txt, содержащая некоторое число гармоник, начиная с нулевой. Полученные графики представлены на рисунках 2-7.

Рис. 2. Гармоники 0-5.                                               Рис. 3. Гармоники 0-10.

Рис. 4. Гармоники 0-20.                                               Рис. 5. Гармоники 0-25.

Рис. 6. Гармоники 0-30.                                               Рис. 7. Гармоники 0-34.

Определено значение n0=34, при котором восстановление отличное, т.е. по графику восстановленной функции можно точно определить положение максимума всех гауссовых слагаемых функции ("атомов"). Впринципе, уже для гармоник 0-25 можно точно определить где будут максимумы, т.е. также можно сказать, что восстановление отличное. Для гармоник же 0-34 видно практически точное наложение максимумов восстановленной функции на максимумы исходной.

Также найдены соответствия между количеством слагаемых и хорошим (можно угадать положение всех максимумов, зная число слагаемых ("атомов"), хотя на восстановленной функции максимумы от атомов не отличимы от шума), средним (положение каких-то атомов определить по восстановленной функции нельзя, других - можно) и плохим (положение атомов определить не представляется возможным; можно только предсказать примерный размер "молекулы") восстановлениями. Данные соотвествия представлены в таблице 1.

Полные наборы гармоник с добавлением шума

Получены с помощью скрипта func2fourier.py указанием параметров -F и -P.

Рис. 8. Гармоники 0-34, шум амплитуды -F 10.         Рис. 9. Гармоники 0-34, шум фазы -P 10.

Рис. 10. Гармоники 0-34, шум -F и -P 10.                     Рис. 11. Гармоники 0-34, шум -F и -P 30.

Рис. 12. Гармоники 0-20, шум -F и -P 10.                     Рис. 13. Гармоники 0-10, шум -F и -P 10.

Рис. 14. Гармоники 0-20, шум -F и -P 30.                     Рис. 15. Гармоники 0-10, шум -F и -P 30.

Неполные наборы гармоник

Удалила одну (номер 0) и две начальные гармоники (номера 0-1) из набора 0-34. Полученные графики приведены на рисунках 16 и 17, соответственно.

Рис. 16. Гармоники 1-34.                                               Рис. 17. Гармоники 2-34.

На рисунке 16 видно, что при удалении первой гармоники произошел сдвиг графика относительно оси ординат. При удалении и второй гармоники произошло дополнительное смещение иного характера (рисунок 17). Тем не менее положения максимумов функции все еще можно определить.

Удаление нескольких гармоник из середины набора 0-34 привело к заметному ухудшению качества восстановления функции.

Рис. 18. Гармоники 0-4, 10-34.                                       Рис. 19. Гармоники 0-4, 10-20, 24-34.

Добавление одной гармоники с номером, превышающим n0 на 10, т.е. 44-ой гармоники к набору 0-34 не привело к заметным изменениям (рисунок 20). Добавление же 20-ой гармоники к набору 0-10 привело лишь к небольшому улучшению качества восстановления(рисунок 21).

Рис. 20. Гармоники 0-34, 44.                                         Рис. 21. Гармоники 0-10, 20.

Результаты и их обработка

Полученные результаты суммированы в таблице 1.

Таблица 1. Восстановление функции по коэффициентам ряда Фурье.

В ходе работы за разрешение полного набора гармоник принимался период (расстояние между соседними максимумами синусоиды) гармоники с наибольшим номером. Полнота данных полного набора приравнивалась к 100%.

Для неполного набора данных нет строгого определения разрешения, необходимо учитывать полноту данных. Для неполного набора полнота данных вычислялась как процент гармоник с длиной волны большей разрещения набора от числа гармоник в полном наборе. Для наборов гармоник 0,..., n, n+10 разрешением считалось таковое набора 0,..., n, а за полноту данных принималось 100%. Т.е. при указании разрешения для неполного набора гармоник желательно не превышать некоторое пороговое значение полноты данных, например, 90%.


© Eugenia Prokhorova, Евгения Прохорова, 2014