Разработка модели эволюции звезд

Эволюция звезд класса Солнца и более массивных звезд. Нейтронные звезды и пульсары. Принципы компьютерного моделирования. Выбор средства программной реализации. Основные средства библиотеки PyGame. Описание общего алгоритма, создание дистрибутива.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 17.06.2018
Размер файла 2,1 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

«Сбросить скорость» время начинает идти с начальной скоростью.

· button() - функция кнопки «Заново». Если кнопка была нажата, то программа запуститься заново с жкрана ввода массы.

· slider() - функция, создающая слайдер, с помощью которого можно изменять скорость течения времени намного точнее и быстрее.

· trananim() - функция, создающая анимацию отделения внешней оболочки от Солнца в конце стадии красного гиганта. Из-за отсутствия в PyGame средств работы с GIF, была создана отдельная функция, которая создает анимацию расширения изначальной картинки в формате PNG, птому что нужно было использовать полупрозрачную иллюстрацию. Данная функция берез иллюстрацию с помощью pygame.transform() растягивает ее до указанного количества пикселей. Для постоянного увеличения картинки была введена переменная bn, значение которой увеличивается от времени и передается в pygame.transform(), как количество пикселей, до которого следует растянуть исходную картинку.

· supernoanim() - функция, которая создает анимацию по тому же принципу, что и trananim(), но анимирует взрыв сверхновой.

2.4 Средства библиотеки PyGame

PyGame - бесплатная библиотека для Python с открытым кодом для разработки мультимедиа-приложений, сделаных на системной библиотеке SDL (Simple Direct Media Player). Такие приложения являются портативными и запускаются практически на любой операционной системе.

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

· Использует С и Ассемблер для основных функций. Код на С часто быстрее, чем код на Python в 10-20 раз, как и Ассемблер.

· Создает портативные приложения. Поддерживает Linux, Windows (95, 98 ,me, 2000, XP, vista, 64/32 bit windows), Windows CE, BeOS, MacOS, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, IRIX, and QNX. Так же неофициально не поддерживается, но может использоваться для AmigaOS, Dreamcast, Atari, AIX, OSF/Tru64, RISC OS, SymbianOS, и OS/2 [25].

Для создания окна используется метод pygame.display.set_mode(), которому передаются значения высоты и ширини окна.

Для загрузки изображения, используется pygame.image.load(), которому посылается путь до нужного изображения. Далее это изображение можно использовать, как фоновое, как иконку приложения, изображение объекта в программе.

pygame.transform() используется для изменения размера изображения, которое передается данному средству.

pygame.display.set_caption используется для установки пользовательского названия окна, которое будет отображаться, когда она будет открыта.

С помощью pygame.display.set_icon() можно установить для программы пользовательскую иконку.

pygame.font.Font() позволяет загрузить шрифт для дальнейшего использования.

Для получения значения времени в программе используется

pygame.time.Clock().

Передав значение переменной screen = pygame.display.set_mode((width, height)), в дальнейшем можно использовать другие методы.

Используя screen.fill() можно заполнить экран определенным цветом. Так, если переменной white передать значение [255,255,255] и потом передать его screen.fill(white), то фон окна станет белым.

С помощью screen.blit() можно отобразить различные объекты, такие, как текст или изображение, на нужной поверхности. Например, screen.blit(printout, (620, 90)), где

printout = font.render(stringtoprint, True, black) и stringtoprint = "Спектральный тип: " и

font = pygame.font.Font("Helvetica.ttf", 25),

на экране отобразиться строчка "Спектральный тип: " начиная от точки 620 х 90, шрифтом Гельветика, размером 25, черного цвета со сглаживанием.

Чтобы нарисовать круг используется pygame.draw.circle(), которому передается сначала область, на которой будет нарисован круг, цвет, позиция по x и y на экране и радиус. Так же можно нарисовать линию pygame.draw.line().

С помощью pygame.display.update() можно обновить экран, чтобы отобразились объекты, которые были отрисованы выше.

Метод pygame.mouse.get_pos() получает позицию мыши в двух координатах - x, y.

Используя pygame.mouse.get_pressed() можно получить значение об одном из вариантов клика - левой, правой кнопки или колесом.

Для получения команд с клавиатуры используется pygame.event.get(). Чтобы получить ввод с клавиатуры при нажатой клавише нужно использовать

pygame.KETDOWN, а для получения ввода, когда клавиша была отпущена -

pygame.KEYUP.

С помощью этих средств были созданы следующие команды: Ввод клавиш от 0 до 9, ESC для выхода из программы.

С помощью описанных выше средств библиотки PyGame было создано начальное окно (Рис. 7):

Рис. 7

Используя pygame.set_mode((width+extrawidth, height)), где width = 600, extrawidth = 400, height = 600 было выведено окно размером 1000 на 600 пикселей, которое разбито по ширине на две части - 600 и 400 пикселей, создавая область диаграммы и область ввода и вывод значений.

С помощью screen.blit() была выведена диаграмма Герцшпрунга - Рассела, сообщение о необходимости ввода М.

После ввода М, значение передается функции, которая определяет изначальное положение звезды на диаграмме. Например, введя М = 1 начнется отображение и расчет позици, параметров и цвета для звезды массой, равной одной солнечной (Рис. 8):

Рис. 8

Как видно на скриншоте, в области ввода/вывода данных отображаются динамически изменяющиеся данные с помощью функций, описанных выше. Так же на экран выводятся два элемента интерфейса - кнопка «Заново», нажав на которую программа запуститься сначала и пользователю будет предложенно ввести значение М еще раз и слайдер, с помощью которого можно изменять скорость течения времени.

После выполнения основной функции, расчеты прекращаются все расчеты и модель звезды остается на месте и пользователю не остается ничего, кроме как нажать на кнопку «Заново» или ESC, чтобы выйти из программы:

Рис. 9

2.5 Описание общего алгоритма

Рис. 10

2.6 Создание дистрибутива

Дистрибутив это файл или архив файлов, которые предназначены для установки программы пользователем. Не достаточно просто предоставить код программы, потому что на большинстве компьютеров не установлен интерпретатор языка Python и сторонние библиотеки, в данном случае NumPy и PyGame. Поэтому существуют модули, помогающие создать дистрибутив как для Windows в формате .exe, так и для macOS и Linux.

В данном случае был использован cx_Freeze, потому что является наиболее поддерживаемым разработчиками в данный момент и может работать с Python выше версии 3.5.

Процесс создания дистрибутва достаточно прост. Сначала создается файл setup.py. В нем указываются все файлы, сторонние библиотеки, название программы и другие данные, которые нужны для создания дистрибутива. Далее, указав путь к папке с программой в терминале, нужно прописать python setup.py build, после чего сработает код, написаный в setup.py и создасться папка build, в который будут находиться библиотки, использованные для создания программы и сам дистрибутив [22].

2.7 Получение обратной связи от студентов и сравнение со старой моделью

После окончания разработки программа была продемонстрирована студентам, в целях выявления недоработок, получения пожеланий и сравнения разработанной модели и модели из курса «Открытая астрономия 2.6» [16], потому что она является единственной функциональной на данный момент. Свое мнение высказали 20 студентов. Практически все отметили большую наглядность предложенной модели, удобство рассмотрения кратковременных стадий жизни звезды за счет возможности замедления хода времени и его ускорения для длительных стадий эволюции звезды.

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

Чтобы исправить эти недочеты была изменена схематичная модель черной дыры и добавлен более жирный черный контур вокруг звезд.

Позже был частично изменен интерфейс для большего удобства с работой со скоростью течения времени. Вместе кнопок, нажав на которые можно было изменять скорость, был разработан слайдер, с помощью которого можно намного быстрее и точнее ее изменять.

Студентами было отмечено, что разработанная модель является более наглядной, яркой, интерактивной и информативной, чем предыдущая.

Предыдущая версия

Разработанная

Ввод значния М

Выбор из трех готовых вариантов

Ввод точного значения М пользователем

Полноэкранный режим

Отсутствует

Присутствует

Возможность замедлить или ускорить

течение времени

Отсутствует

Присутствует

Наличие стадий эволюции звезд

Показаны стадии эволюции, кроме смерти

Показаны все стадии, включая стадию смерти

Совместимость

Работает исключительно с Windows

Работает на большинстве популярных платформ (Windows, macOS, Linux)

Вывод значений параметров звезды в момент времени

Выводит заранее выбранную массу звезды

Выводит введенную массу, температуру, спектральный тип, абсолютную звездную величину, светимость, цвет, радиус и время.

Как видно из таблицы разработанная версия интерактивной диаграммы является более наглядной, работает на большем числе платформ, является более интерактивной и информативной, чем предыдущая версия.

Таким образом можно уверенно сказать, что новая модель является более пригодной для преподавания “Среди всех учебных дисциплин физика - наиболее поддающийся компьютеризации предмет. Уже давно компьютер здесь успешно применяется для облегчения рутинной работы по выполнению расчетов.” [1, с. 187] Но информационные технологии можно использовать и для изучения теоретического материала, тренинга, в качестве средства моделирования и визуализации и т.д.

2.8 Описание вариантов работы динамической модели

Всего в модели возможно четыре варианта экспериментов:

· Введенная масса звезды меньше 0.5 солнечной массы.

Рис. 11

Звезда появляется ближе к красному конце главной последовательности, имея небольшую массу и радиус (Рис. 11). Далее она постепенно остывает, краснеет, радиус уменьшается и через большое количество времени (несколько триллионов лет) звезда так сильно теряет в температуре и светимости, что ее можно считать потухшей (Рис. 12).

Рис. 12

· Масса звезды больше 0.5 и меньше 4 солнечных масс.

Рис. 13

Такая звезда максимально похожа на солнце, имеет схожий радиус, цвет и температуру (Рис. 13). Она находится на главной последовательности около девяти миллиардов лет, в течение которых ее радиус увеличивается, звезда краснеет, после чего она переходит в область красных гигантов (Рис. 14).

Рис. 14

В этом состоянии звезда существует около миллиарда лет. В конце этого этапа она отбрасывает внешний красный слой (Рис. 15) и становится белым карликом.

Рис. 15

Рис. 16

Пребывая в состоянии белого карлика, все еще очень горячего, но с очень маленьким радиусом (Рис. 16), звезда постепенно остывает, пока окончательно не угаснет.

· Масса звезды больше 4, но меньше 8 солнечных масс.

Рис. 17

В начале жизни звезда является более яркой, горячей, большего радиуса и светимости, чем Солнце (Рис. 17), но на главной последовательности она просуществет значительно меньше, около пяти миллионов лет.

Рис. 18

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

Рис. 19

После взрыва появится пульсар, который оставшуюся часть жизни будет постепенно угасать (Рис. 20).

Рис. 20

· Масса звезды больше 9 солнечных масс.

Рис. 21

Такая звезда имеет самую большую массу и радиус, но наименьший срок жизни. Прибывая на главной последовательности, она имеет голубой цвет (Рис. 21), но спустя несколько миллионов лет краснеет и сходит с нее и становится красным сверхгигантом (Рис. 22).

Рис. 22

В этом состоянии звезда не может прибывать длительный промежуток времени, поэтому спусят, примерно, миллион лет, взрывается, как сверхновая (Рис. 23).

Рис. 23

Но, в отличнае от звезд массы от 4 до 8 солнечных, она не оставит после себя пульсар, а создаст черную дыру (Рис. 24).

Рис. 24

2.9 Выводы по второй главе

Во второй главе описаны принципы компьютерного моделирования, выбраны средства программной реализации, описаны функции программы, средства библиотеки PyGame, общий алгоритм, создание дистрибутива. Была получена обратная связь от студентов, проведено сравнение имеющейся модели с разработанной нами, описаны варианты работы модели

В ходе дальнейшей разработки планируется добавить стадию рождения звезды.

Заключение

В дипломной работе были выполнены все поставленные задачи. Были рассмотрены возможности применения моделирования в науке и в обучении. Оно помогает провести эксперимент в ситуации, в которой его не возможно провести из-за множества причин, например, физических, технических, временных или финансовых.

Проанализированы жизненые циклы звезд различной массы. Было приведено описание процессов, параметров звезд в различное время их жизни.

Была разработана модель эволюции звезд с возможностью менять ход времени в программе и отображена последняя стадия жизни каждого типа звезд.

Были продемонстрированы возможности языка программирования Python и различных его модулей. Как видно из разработки, Python может быть мощным и в то же время простым для освония инструментом разработки. Несмотря на отсутствие некоторого функционала, всегда есть возможность самостоятельно его дописать.

На основании описания эволюции звезд была построена более совершенная модель. Она имеет ряд преимуществ перед имеющейся, таких как, бульшая наглядность, информативность и интерактивность. В дальнейшем модель может использоваться в обучении и быть включена в обучающие порталы.

Список литературы

1. Аксенова Е.И. Методика создания и пременения динамических слайд- лекций при обучении физике в ВУЗе: Дис. … канд. пед. наук. -- М.-- 2005. -- 187с.

2. Бисноватый-Коган Г.С. Физические вопросы теории звездной эволюции / Г.С. Бисноватый-Коган -- М.: Наука, 1989. -- 483 с.

3. Воронцов-Вельяминов Б.А., Страут Е.К. Астрономия. 11 класс / Б.А. Воронцов-Вельяминов, Е.К. Страут; 4-е изд., стер. -- М.: 2003. -- 224с.

4. Грин Б.Р. Элегантная Вселенная / Б.Р. Грин -- М.: Едиториал УРСС, 2004. -- 288 с.

5. Доусон М. Программируем на Python / М. Доусон -- Спб.: Питер, 2014. -- 416 с.

6. Засов А.В., Кононович Э.В. Астрономия / А.В. Засов, Э.В. Кононович -- М.: Физматлит, 2011. -- 256 с.

7. Климишин И.А. Астрономия наших дней / И.А. Климишин -- Главная редакция физико-математической литературы издательства "Наука", 1976. -- 456 c.

8. Кононович Э.В., Мороз В.И. Общий курс астрономии: учебное пособие / Э.В. Кононович, В.И. Мороз; 2-е изд., испр. -- М.: Едиториал, 2004 г. -- 544 с.

9. Левитан Е.П. Астрономия. 11 класс. Учебник / Е.П. Левитан -- М.: Просвещение, 1994. -- 207 с.

10. Порфирьев В.В. Астрономия. Учебник для 11 класса / В.В. Порфирьев; 2- е изд., перераб. и доп. -- М.: 2003. -- 174 с.

11. .Рузавин Г. И. Концепции современного естествознания: Учеб. для вузов / Г. И. Рузавин. - М.: Культура и спорт: ЮНИТИ, 2002. - 286 с.

12. Соболев В.В. Курс теоретической астрофизики / В.В. Соболев; 3-е изд., прераб. -- М.: Наука, 1985. -- 503 с.

13. Сурдин В.Г. Астрономия. Век XXI / В.Г. Сурдин -- Фрязино: «Век 2», 2007. -- 608 с.

14. Трефил Д. 200 законов мироздания / Т. Джеймс -- М.: Гелиос, 2007. -- 528 с.

15. Шкловский И.С. Звезды: их рождение, жизнь и смерть / И.С. Шкловский; 3-е изд., перераб. -- М.: Наука, Главная редак- ция физико-математическои? литературы, 1984. -- 384 c.

16. Гомулина Н.Н. Открытая астрономия 2.6 [Электронный ресурс] // URL: “http://college.ru/astronomy/course/content/content.html” (дата обращения: 20.03.17)

17. Копейкина Г.А. Применение ИКТ как нового средства изучения физики в основной школе [Электронный ресурс] // URL: “http://festival.1september.ru/articles/590972/” (дата обращения: 29.03.2017 )

18. Нырков. Д Звездная эволюция - как это работает: Geektimes - научно - популярный портал [Электронный ресурс] // URL: “https://geektimes.ru/post/265416/” (дата обращения: 14.03.17)

19. Овечкин О. Жизнь и смерть звезд: Naked Science - научно-популярный портал [Электронный ресурс] // URL: “https://naked- science.ru/article/nakedscience/the-life-and-death-of-stars” (дата обращения: 14.03.17)

20. Понятов А. Нестандартная эволюция звезд: Интернет - издание “Наука и жизнь” [Электронный ресурс] // URL: “nkj.ru/news/28827” (дата обращения: 17.03.17)

21. Харрингтон Ф. Эволюция звезд наглядно: Realsky - астрономический online-журнал [Электронный ресурс] // URL: “http://www.realsky.ru/articles/binocularuniverse/эволюция-звезд-наглядно-r287/” (дата обращения: 17.03.17)

22. Kinsley H. Game Developmet: Python Programming Tutorials [Электронный ресурс] // URL: “http://pythonprogramming.net” (дата обращения: 03.06.17).

23. Статья “Коронограф”: Википедия - свободная энциклопедия [Электронный ресурс] // Дата обновления: 15.12.15. URL: “https://ru.wikipedia.org/wiki/Коронограф” (дата обращения: 10.03.17).

24. Статья “Белый карлик, нейтронная звезда, черная дыра”: Проект кафедры общей ядерной физики физического факультета МГУ [Электронный ресурс] // URL: “http://nuclphys.sinp.msu.ru/nuclsynt/n10a.htm” (дата обращения: 15.03.17).

25. Документация модуля PyGame : Сайт проекта PyGame [Электронный ресурс] // URL: “http://pygame.org/docs” (дата обращения: 02.04.17).

26. .Статья “Солнце”: сайт журнала “Все о космосе” [Электронный ресурс] // URL: “http://aboutspacejornal.net/вселенная/галактика/солнечная- система/солнце” (дата обращения: 4.04.17)

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.