Моделью для компьютерного эксперимента являются 2 молекулы,
расположенные на отрезке [0;30] ангстрем.
Атомы находятся на расстоянии 1-1.5 ангстрем друг от друга, всего: 5 атомов.
Молекулы находятся на расстоянии 3-5 ангстрем.
Электронные плотности атомов описываются гауссовой кривой.
Максимум ЭП в центре атома приблизительно пропорционален числу электронов в атоме.
На интервале [0;30] была задана функция с помощью скрипта compile-func.py для моделирования графика электронной плотности молекул.
Я использовала команду (1), где
первые числа - высота пика;
вторые - ширина пика; третьи - координаты максимума пика:
(1) python compile-func.py -g 14,3,7.3 + 25,3,6 + 2,3,8.5 + 16,3,13.5 + 32,3,14.8 |
---|
На выход получила изображение функции (рис. 1) и файл (func.txt) с координатами моей функции.
Рис. 1 - Функция ЭП для заданной модели
Сначала были рассчитаны коэффициенты разложения заданной функции в ряд Фурье: на вход подавался файл func.txt; расчет производился с помощью скрипта func2fourier.py (команда (2)). Выходной файл (func_ft.txt) содержит информацию о гармониках (рассчитанных амплитудах и фазах).
(2) python func2fourier.py -i func.txt |
---|
Затем производился отбор гармоник с помощью скрипта fourier-filter.py (команда (3) для 20 гармоник)
и восстановление функций ЭП по отобранным гармоникам с помощью скрипта fourier2func.py
(команда (4) для 20 гармоник).
Я рассмотрела 4 полных набора гармоник: 0-10; 0-20; 0-30 и 0-40.
Полученные графики функций представлены на рис. 2.
Восстановление по набору функций 0-10 - плохое (можно предсказать лишь примерный размер молекулы),
а по набору 0-20 - скорее среднее, нежели хорошее, так как при детекции атома водорода возникают затруднения.
За "N0" я приняла N = 40, хотя, N = 30 тоже позволяет отлично восстановить функцию ЭП.
Однако, атом водорода лучше определяется на графике,
где восстановление функции производится по набору гармоник с N = 40.
Данные по исследованным восстановлениям представлены в итоговой таблице.
(3) python fourier-filter.py -i func_ft.txt -r 0-20 -o filter_0-20.txt
(4) python fourier2func.py -f func.txt -i filter_0-20.txt -o 0-20.txt |
---|
Рис. 2 - Восстановление функций ЭП по полному набору гармоник:
(A) N = 10; (B) N = 20; (С) N = 30; (D) N = 40
Также любопытно было посмотреть на эффект внесенного шума в амплитуды/фазы. Я рассматривала 6 случаев: добавленный шум к амплитудам (20%, 40%), добавленный шум к фазам (20%, 40%) и добавленный шум к фазам и амплитудам (20%, 40%). Графики восстановленных функций представлены на рисунке 3. При F = 20 восстановление - отличное; при P = 40 и F = 40, P = 40 восстановление - среднее, уровень шума довольно высок; в остальных случаях - восстановления - средние/хорошие, то есть они довольно неплохи, но может быть проблема с детекцией водорода.
Рис. 3 - Восстановление функций ЭП по полному набору гармоник при добавленном шуме
Были рассмотрены неполные наборы гармоник: для этого из полного набора удалялось определенное число гармоник. Я исследовала 4 неполных набора гармоник: (A) 1-40; (B) 2-40; (C) 0-14, 19-40; (D) 0-20, 25-40 (рис. 4). Как можно заметить, при удалении 1-2 начальных гармоник восстановление функции ЭП можно назвать отличным - можно определить положение всех максимумов. При удалении 10% гармоник из середины набора восстановление является средним, так как положение атома водорода определить нельзя. Данные были также занесены в итоговую таблицу.
Рис. 4 - Восстановление функций ЭП по неполному набору гармоник:
(A) n = 1-40; (B) n = 2-40; (С) n = 0-14, 19-40; (D) n = 0-20, 25-40
Также был исследован неполный набор гармоник, полученный путем добавления гармоники с номером, превышающим N0 на 10 (50). Данная функция восстановления практически совпадает с функцией восстановления по набору гармоник 0-40. Полученные данные также занесены в таблицу.
Рис. 5 - Восстановление функций ЭП по набору гармоник 0-40, 50
Итоговая таблица с характеристикой наборов гармоник в формате xlsx