Разложение функции в ряд Фурье



В данном практикуме было проанализировано качество восстановления одномерной функции электронной плотности в зависимости от полноты набора измеренных гармоник и величины экспериментального шума.
Для начала была смоделирована функция электронной плотности в одномерной элементарной ячейке на отрезке [0,30]. Модель представляла собой две молекулы, расположенные на расстоянии около 5 Å друг от друга. Первая молекула состояла из двух атомов, вторая - из трех.
Функция была получена с помощью скрипта compile-func.py (этот скрипт использует дополнительный модуль fourier) с параметрами 10,2,5+10,2,7+30.0,2,12+30.0,2,16+30.0,2,22+30,2,24
График полученной функции представлен на рисунке 1.


Рисунок 1. Изображение смоделированной функции

Данная функция соответствует молекуле из двух атомов, двум отдельным атомам и еще одной молекуле из двух атомов.

Далее функция была разложена в ряд Фурье следующей командой:
python func2fourier.py -i func.txt -o range.txt
Выдача предсталяет собой файл с гармониками

Восстановление функции по всем возможным гармоникам:
python fourier2func.py -f func.txt -i range.txt


Рисунок 2. Функция, восстановленная по всем гармоникам

Далее попробуем восстановить функцию по 1, 6, 11 и т.д. до 41 гармоник.
python fourier-filter.py -r 0-X -i range.txt -o range_X.txt (где X - число гармоник)
python fourier2func.py -f func.txt -i range_X.txt -o range_filX.txt



Рисунок 3а. Функция, восстановленная по первой гармонике (пунктиром)



Рисунок 3b. Функция, восстановленная по первым 6 гармоникам (слева) и первым 11 (справа)



Рисунок 3c. Функция, восстановленная по первым 16 гармоникам (слева) и первой 21 гармонике (справа)



Рисунок 3e. Функция, восстановленная по первым 26 гармоникам (слева) и первой 31 гармонике (справа)



Рисунок 3d. Функция, восстановленная по первым 36 гармоникам (слева) и первой 41 гармонике (справа)

По 41 гармонике функция восстанавливается практически идеально. Далее будем использовать это число гармоник.

Посмотрим, как влияет на восстановление функции добавление шума к амплитуде, фазе, им обоим.


Рисунок 4a. Функция, восстановленная по данным с зашумлённой на 10% амплитудой (слева) и на 10% фазой (справа)



Рисунок 4b. Функция, восстановленная по данным с зашумлёнными на 10% амплитудой и фазой.

Видно, что решение достаточно устойчиво к шуму и в амплитуде, и в фазе.

Теперь посмотрим, как функция восстанавливается без первых X гармоник, где Х = 1, 2, 3, 4, 5, 10:


Рисунок 5. Восстановление функции электронной плотности по разному числу гармоник

Когда удаляем первую гармонику, то из функции вычитается константа.
При удалении дальнейших гармоник из функций вычитаются суммы синусоид.
Удаление даже небольшого числа первых гармоник достаточно сильно влияет на качество восстановление функции, тем не менее, позиции атомов легко угадываются. Удаление 10 первых гармоник очень сильно портит решение, пики атомов похожи на пики шума.
Удалим часть гармоник из середины используемого набора (2х4, 14, 24).


Рисунок 6. Восстановление функции электронной плотности по различным наборам гармоник

Видно, что удаление одного и того же числа гармоник из разных частей набора неэквивалентно: удаление гармоник, расположенных ближе к началу ряда, приводит к более значимому падению качества восстановления функции. Удаление более половины набора гармоник приводит к решению, по которому уже не очень точно восстанавливается размер молекул, хотя положение некоторых отдельных атомов угадывается.
Добавим n+10ую гармонику.


Рисунок 6a. Функция, восстановленная по гармоникам 0-40, 50.

Решение как было почти идеально, так и осталось почти идеально.

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






© Анастасия Зареченская, 2018