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

Эволюция звезд класса Солнца и более массивных звезд. Нейтронные звезды и пульсары. Принципы компьютерного моделирования. Выбор средства программной реализации. Основные средства библиотеки 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

...

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

  • Оптимальное время для обслуживания пользователей как основная цель работы компьютерного зала библиотеки. Построение модели деятельности подписного отдела с помощью средства имитационного моделирования AnyLogic. Описание процессов и построение сценария.

    курсовая работа [1,9 M], добавлен 19.06.2015

  • Описание формальной модели алгоритма на основе рекурсивных функций. Разработка аналитической и программной модели алгоритма для распознающей машины Тьюринга. Разработка аналитической модели алгоритма с использованием нормальных алгоритмов Маркова.

    курсовая работа [1,5 M], добавлен 07.07.2013

  • Рзработка библиотеки, которая позволит моделировать динамику частиц в трехмерной графики. Выбор средств и методов разработки. Варианты моделирования систем частиц. Моделирование на вершинном шейдере. Диаграммы класса Particle System и PSBehavior.

    курсовая работа [4,4 M], добавлен 07.02.2016

  • Основы классификации объектов, их типы и подходы к моделированию. Программные и технические средства, используемые в данном процессе. Этапы моделирования, их общее описание и значение: постановка задачи, разработка модели, компьютерный эксперимент.

    реферат [36,3 K], добавлен 23.12.2014

  • Создание библиотеки классов имитационного моделирования и реализация алгоритма имитационного моделирования системы массового обслуживания "Модель комиссионного магазина". Использование для разработки среды программирования C++. Словарь предметной области.

    курсовая работа [581,0 K], добавлен 23.01.2013

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

    курсовая работа [3,1 M], добавлен 14.08.2015

  • Создание контекстной диаграммы информационной системы библиотеки. Основные компоненты и особенности ведения каталогов книг и читателей. Моделирование систем поиска и формирования заказов. Разработка диаграммы дерева узлов и логической модели базы данных.

    курсовая работа [1,1 M], добавлен 24.06.2013

  • Теоретические основы моделирования систем в среде имитационного моделирования AnyLogic. Средства описания поведения объектов. Анимация поведения модели, пользовательский интерфейс. Модель системы обработки информации в среде компьютерного моделирования.

    курсовая работа [1,5 M], добавлен 15.05.2014

  • Общая структура микропроцессора. Жизненный цикл программного обеспечения. Проектирование схемы операционного блока, создание временных диаграмм с использованием средств Microsoft Office и в среде OrCAD. Разработка алгоритма хранения значений констант.

    курсовая работа [839,5 K], добавлен 24.07.2013

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

    курсовая работа [1,2 M], добавлен 10.06.2015

  • Исследование системы распределения ключей на основе линейных преобразований. Описание компонентов сети конфиденциальной связи. Характеристика отечественного алгоритма шифрования данных. Обзор результатов расчетов криптостойкости алгоритма шифрования.

    контрольная работа [56,5 K], добавлен 26.09.2012

  • Анализ программных средств (операционных систем), необходимых для реализации учебных задач компьютерного класса. Особенности Windows XP, Linux Mandriva. Информационная модель настройки сервера на примере Windows Server 2008, его программное обеспечение.

    дипломная работа [4,7 M], добавлен 21.09.2012

  • Понятие материального и идеального моделирования. Разработка модели экономического предприятия компьютерного клуба "GaMeR" для подсчета рентабельности. Выбор языка программирования Delphi, его преимущества и особенности. Описание листинга программы.

    курсовая работа [166,7 K], добавлен 11.03.2014

  • Методика системного исследования реальной динамической сложной системы посредством разработки ее имитационной модели. Разработка программы реализации алгоритма имитационного моделирования системы массового обслуживания "Интернет-провайдерская фирма".

    курсовая работа [2,0 M], добавлен 20.01.2010

  • Методы и средства программирования в операционной системе Mac OS X при помощи функций языка Си. Принципы создания многопоточных приложений и нитей, организация их корректного выполнения. Разработка программы состояний автомобилей на заправочной станции.

    курсовая работа [200,5 K], добавлен 07.11.2012

  • Создание модели банка, в котором два кассира сидят в помещение, а два обслуживают клиентов, подъезжающих на автомобилях. Описание атрибутов объектов. Разработка библиотеки функциональных блоков. Построение структурной модели системы и диаграммы связей.

    курсовая работа [628,0 K], добавлен 28.10.2013

  • Стандарты в сфере дистанционного обучения. Создание модели подсистемы анализа SCORM-пакетов (лекционный материал), написание ее программной реализации и обеспечение эффективного функционирования. Проектирование программного средства, его тестирование.

    курсовая работа [1,7 M], добавлен 28.08.2012

  • Создание единого электронного портала предприятия на примере ООО "Робертс Хелскеар (РУС)". Алгоритмическое описание действий для решения поставленной задачи. Описание методов расчета вероятностной сетевой модели. Результаты запуска программной модели.

    курсовая работа [2,1 M], добавлен 01.06.2014

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

    дипломная работа [1,1 M], добавлен 18.07.2013

  • Требования к информационной системе интернет-магазина на базе "1С:Предприятие 8". Выбор средства для разработки. Реализация и тестирование программного средства. Редактирование базы данных. Оценка функционального качества программного средства.

    курсовая работа [1,7 M], добавлен 07.09.2012

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