Главная | Семестры | Проекты | Заметки | О себе | Полезные ссылки |
1. Создание модельной функции ЭП в одномерной элементарной ячейке
Модель для компьютерного эксперимента. На отрезке [0,30] (ангстремы) расположены две молекулы. Атомы в молекуле связаны ковалентно и находятся на расстоянии 1-1.5 анстрем друг от друга. Молекулы расположены на расстоянии 3-5 ангстрем (водородная связь или гидрофобное взаимодействие между ними). Электронные плотности (ЭП) атомов описываются гауссовой кривой. Взяли 2 молекулы: одна - 3 атома, другая - 2 атома.
Создадим функцию с помощью скрипта compile-func.py, команда:
С:\Python27\python compile-func.py -g 35,3,4.2+37,3,6.9+3,3.5,8.2+32,3,13.5+3,3.5,17.4
Мы получаем изображение нашей функции (рис.1) и файл func.txt.
Рис.1. График функции.
2. Расчеты для полного набора гармоник.
Коэффициенты Фурье рассчитаем с помощью следующей команды:
С:\Python27\python func2fourier.py -i func.txt
Полученный файл: func_ft.txt. Он содержит амплитуды, фазы и номера гармоник. Всего их получилось 498.
Отбор гармоник проведем следующим образом:
C:\Python27\python fourier-filter.py -r 0-15 -i func_ft.txt -o func_ft_0-15.txt
C:\Python27\python fourier-filter.py -r 0-25 -i func_ft.txt -o func_ft_0-25.txt
C:\Python27\python fourier-filter.py -r 0-35 -i func_ft.txt -o func_ft_0-35.txt
C:\Python27\python fourier-filter.py -r 0-80 -i func_ft.txt -o func_ft_0-80.txt
C:\Python27\python fourier2func.py -f func.txt -i func_ft_0-15.txt -o two_func_0-15.txt
C:\Python27\python fourier2func.py -f func.txt -i func_ft_0-25.txt -o two_func_0-25.txt
C:\Python27\python fourier2func.py -f func.txt -i func_ft_0-35.txt -o two_func_0-35.txt
C:\Python27\python fourier2func.py -f func.txt -i func_ft_0-80.txt -o two_func_0-80.txt
Полученные результаты в виде наложения двух графиков (исходного для всех гармоник и для первых k) представлены на рис.2,3,4,5.
Рис.2. Гармоники 0-15. |
Рис.3. Гармоники 0-25. |
Рис.4. Гармоники 0-35. |
Рис.5. Гармоники 0-80. |
Таким образом, был найден n_0 (при котором восстановление отличное, т.е. можно найти положение максимумов гауссовых слагаемых по воссановленному графику по полному набору гармоник от 0 до n_0), он равен 35.
Сравним восстановленную фукнцию с исходной. При n=15 (рис.2) восстановление можно считать неудачным (плохое), т.к.положение не всех атомов можно установить четко. Для n=25 (рис.3) картина становится яснее (хорошее), однако все еще остается достаточного много "шума", поэтому, например, атом водорода легко с ним спутать. И, наконец, для n=35 (рис.4) уже можно сказать про "отличное восстановление". Также, была рассмотрена ситуация с n=80, при таком раскладе графики полностью совпали (рис.5).
Попробуем теперь добавить шум и посмотреть, что из этого получится. Для добавления гауссового шума к амплитудам и фазам воспользуемся следующими командами:
Шум к амплитуде в 20%:
C:\Python27\python func2fourier.py -F 20 -i func.txt -o ft_Anoise_20.txt
C:\Python27\python fourier-filter.py -r 0-35 -i ft_Anoise_20.txt -o ft_Anoise20_35.txt
C:\Python27\python fourier2func.py -i ft_Anoise20_35.txt -o Anoise_sum.txt
Шум к фазе в 20%:
C:\Python27\python func2fourier.py -P 20 -i func.txt -o ft_Fnoise_20.txt
C:\Python27\python fourier-filter.py -r 0-35 -i ft_Fnoise_20.txt -o ft_Fnoise20_35.txt
C:\Python27\python fourier2func.py -i ft_Fnoise20_35.txt -o Fnoise_sum.txt
Шум в 15% к амплитуде и фазе:
C:\Python27\python func2fourier.py -F 15 -P 15 -i func.txt -o ft_A_F_noise_15.txt
C:\Python27\python fourier-filter.py -r 0-35 -i ft_A_F_noise_15.txt -o ft_A_F_noise_35_15.txt
C:\Python27\python fourier2func.py -i ft_A_F_noise_35_15.txt -o A_F_noise_sum_15.txt
Шум в 5% к амплитуде и фазе:
C:\Python27\python func2fourier.py -F 5 -P 5 -i func.txt -o ft_A_F_noise_5.txt
C:\Python27\python fourier-filter.py -r 0-35 -i ft_A_F_noise_5.txt -o ft_A_F_noise_35_5.txt
C:\Python27\python fourier2func.py -i ft_A_F_noise_35_5.txt -o A_F_noise_sum_5.txt
На рис. 6 представлено прибавление шума к амплитуде в 20%, на рис.7 - к фазе в 20%, на рис.8 - к амплитуде и фазе в 15%, на рис.9 - к амплитуде и фазе в 5%. Восстановление проводилось по полному набору гармоник (от 0 до n_0=35). Таким образом, мы видим, что при наличии заметного шума (15-20%) качество восстановления можно считать "средним", поскольку нельзя однозначно установить все положения максимумов гауссовых функций. Однако, для 5% шума для амплитуд и фаз, восстановление можно назвать "хорошим".
Рис.6. Шум к амплитуде в 20%. |
Рис.7. Шум к фазе в 20%. |
Рис.8. Шум к амплитуде и фазе в 15%. |
Рис.9. Шум к амплитуде и фазе в 5%. |
Рис.10. Удаление первой гармоники. |
Рис.11. Удаление первых двух гармоник. |
Рис.12. Удаление 5% (2 гармоник) в середине. |
Рис.13. Удаление 14% (6 гармоник) в середине. |