Симуляция движения скоплений масс в галактиках спирального типа (S)

Автор работы: Пользователь скрыл имя, 22 Мая 2013 в 20:33, дипломная работа

Краткое описание

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

Прикрепленные файлы: 1 файл

Shkola_Informatiki_i_Vychislitelnoy_Tekhniki (1).docx

— 48.75 Кб (Скачать документ)

Школа Информатики и Вычислительной Техники

Специальность : управление программным обеспечением и базами данных

Выпускная квалификационная работа

Симуляция движения скоплений  масс   в галактиках спирального  типа (S)

Учащийся Петр Лешкин

………………………………..

Руководитель Шабанов

………………………………..

Таллинн

2013

Оглавление

Аннотация

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

Annotatsioon

Käesoleva töö eesmärgiks on programmi arendamine, mis tegeleb  astrofüüsiliste protsesside simuleerimisega.   Selle programmi sihtrühm koosneb kõrg klasside kooli õpilased ja tudengid. Areng toimus Javascript´tehnoloogia kasutamisel.

Annotation

The aim of this work is to create a programm , which will simulate different astrophysical processes. This program target audience is high-school students and students of first courses of college.In programm dewelopment was used Javascript technology.

1.Введение

Темой данной работы была выбрана  симуляция движения скоплений масс   в галактиках спирального типа (S).

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

Тема популяризации науки  среди  молодёжи , а в особенности астрофизики довольно стара. До последнего момента   данный процесс всегда усложнялся не совершенностью методов демонстрации, и наглядного, интуитивно понятного объяснения процессов, происходящих в астрофизике. И если астрономия допускает демонстрацию снимков тел  в определённых спектрах излучения и в данной отросли науки часто просто нет недостатка в статистических данных, то в астрофизике, а в особенности астрофизике галактик  ситуация скорее противоположная прежде всего в силу того, что астрофизика галактик как таковая была основана менее 100 лет назад.

Как следует из определения, астрофизика  это наука  на стыке астрономии  и физики, изучающая физические процессы в астрономических объектах, таких, как ,например,  галактики. Исходя из этого, демонстрация движения скоплений масс   в галактиках спирального типа (S) должна прежде всего иллюстрировать эволюцию  многомассивных галактических образований с изменением величины времени.

В данной работе использовалась  классификация  по Последовательности Ха́ббла — эта классификация была предложенна в 1936  Эдвином Хабблом. С тех пор предложены более подробные классификации, но классификация Хаббла представляется наиболее актуальной для данной целевой аудитории  в силу её лаконичности, фундаментальности  и простоты математического аппарата.

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

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

Наиболее ярким примером подобных симуляций является Eris,результаты которой были объявлены в августе 2011 года. Симуляция Eris , проходившая на Nasa Advanced Supercomputer Division’s Pleiades  и в Swiss National Supercomputing Centre(Швейцарского национального центра суперкомпьютеров)  на протяжении  более  8 месяцев(эквивалентно порядка 570 лет вычислений на персональных компьютерах(Mark Johanson, IBTimes, 30.07.11)) . Симуляция Eris была первой успешной и достаточно полной симуляцией процессов происходящих в галактике Млечного пути.

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

Целью данной дипломной работы являлся поиск оптимума между  простотой объяснения  и описания происходящих процессов в сочетании с наглядностью, лёгкостью распространения программы и иллюстративностью вышеупомянутой.

2.Выбор технологии реализации

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

Исходя из этого,  есть два основных возможных направления разработки. Либо веб-технология, либо полноценная программа. Ни для кого не секрет, что добиться  установки стороннего программного обеспечения написанного на полноценном языке  программирования, как, например JAVA или C++ , гораздо сложнее чем, скажем, посещения сайта, где подобная симуляция будет реализована через, например, PHP или Javascript. Конечно, языки программирования  дают гораздо больше возможностей и степеней свободы, чем скриптовые, однако, как уже было сказано ранее, основной аудиторией проекта являются ученики старших классов и студенты  младших курсов, и, как следствие использование максимально полноценного  математического аппарата не представляется необходимым, а в ситуации самообучения по данной программе или скрипту  вредным в силу слишком высокой сложности и труднодоступности исходного кода.

Возникает вопрос, использование  какого скриптового языка представляется максимально удобным и целесообразным для выполнения задачи. Наиболее распространёнными и известными на данный момент являются: Javascript,PHP,Perl,Python и Ruby.

Вследствие  вышеупомянутых причин мы будем рассматривать именно  их и их диалекты.

 

 

 

Итак, JavaScript — прототипно – ориентированный язык программирования. Является диалектом языка ECMAScript . JavaScript обычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам.

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

На JavaScript оказали влияние многие языки, при разработке была цель сделать язык похожим на Java, но при этом лёгким для использования непрограммистами[4]. Языком JavaScript не владеет какая-либо компания или организация, что отличает его от ряда языков программирования, используемых в веб-разработке.

 

 

По данным Black Duck Software (англ.)[22] в разработке открытого программного обеспечения доля использования JavaScript выросла. 36 % проектов, релизы которых состоялись с августа 2008 по август 2009 гг., включают JavaScript, наиболее часто используемый язык программирования с быстрорастущей популярностью. 80 % открытого программного обеспечения использует Си, C++, Java, Shell и JavaScript. При этом JavaScript — единственный из этих языков, чья доля использования увеличилась (более чем на 2 процента, если считать в строках кода)[23].

JavaScript является самым популярным языком программирования, используемым для разработки веб-приложений на стороне клиента (англ.)[24][25].

Ниже приводится таблица, иллюстрирующая популярность данного  языка. [21]

 

 

 

 

Позиция

Критерий ранжирования

Краткое описание

11

Yahoo

По количеству результатов запроса с упоминанием названия языка и слова «programming»

5

Крейгслист

По количеству результатов запроса с упоминанием названия языка и «programmer -„job wanted“»

7

Powell's Books (англ.)

По количеству книг с названием языка в названии или заголовках релевантных разделов

7

Freshmeat

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

8

Google Code

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

1

Delicious

По количеству результатов поиска с упоминанием названия языка и слова «programming»

4

Ohloh

По числу участников, вносящих правки в код, написанный на данном языке программирования

5

Суммарная оценка

 



 

 

Заключение по Javascript.

Javascript,безусловно, является одной из наиболее популярный технологий веб-программирования. Что более важно, он крайне популярен среди новичков и как следствие шанс последующей доработки вышеупомянутого скрипта увеличивается в разы. Существует большое количество интернет-сообществ, призванных дорабатывать скрипты  различных членов этой группы, как, например, „www.khanacademy.org“

 

 

 

 

PHP как способ реализации задачи.

PHP ( PHP: Hypertext Preprocessor — «PHP: препроцессор гипертекста»; первоначально Personal Home Page Tools — «Инструменты для создания персональных веб-страниц»; произносится пи-эйч-пи) — скриптовый язык программирования общего назначения, интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков программирования, применяющихся для создания динамических веб-сайтов.[6]

Язык и его интерпретатор  разрабатываются группой энтузиастов  в рамках проекта соткрытым кодом.[7] Проект распространяется под собственной лицензией, несовместимой с GNU GPL.

 

Согласно исследованиям  одного из крупных российских порталов трудоустройства[38]:

  • возрастной диапазон наиболее востребованных программистов PHP 20-45 лет; программисты PHP в возрасте до 30 лет составляют 78 % от общего числа специалистов;
  • 95 % программистов PHP — мужчины;
  • 80 % программистов PHP владеют английским языком на базовом уровне и на уровне чтения технической документации; на разговорном и на свободном уровнях — 17 %;
  • 60 % программистов PHP имеют высшее образование, 26 % — неполное высшее, 8 % — среднее специальное;

 

 

Заключение по PHP

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

 

Python ( python — питон, произносится [ˈpaɪθ⟨ə⟩n] — па́йтон; в русском языке распространено название пито́н) — высокоуровневый язык программированияобщего назначения, ориентированный на повышение производительности разработчика и читаемости кода. Синтаксис ядра Python минималистичен. В то же время стандартная библиотека включает большой объём функций.

Python поддерживает несколько парадигм программирования, в том числе структурное,объектно-ориентированное, функциональное, императивное и аспектно-ориентированное. Основные архитектурные черты — типизация, , полная интроспекция, механизм обработки исключений, поддержка многопоточных вычислений и удобные высокоуровневые структуры данных. Код в Питоне организовывается в функции и классы, которые могут объединяться в модули (которые в свою очередь могут быть объединены в пакеты).

Эталонной реализацией Python является интерпретатор CPython, поддерживающий большинство активно используемых платформ[6]. Он распространяется под свободной лицензией Python Software Foundation License, позволяющей использовать его без ограничений в любых приложениях, включая проприетарные. Есть реализации интерпретаторов для JVM (с возможностью компиляции), MSIL (с возможностью компиляции), LLVM и других..

Python — активно развивающийся язык программирования, новые версии (с добавлением/изменением языковых свойств) выходят примерно раз в два с половиной года. Вследствие этого и некоторых других причин на Python отсутствуют стандарт ANSI,ISO или другие официальные стандарты, их роль выполняет CPython.

 

 

 

 

 

 

 

 

 

Ruby (англ. Ruby — рубин, произносится ['ru:bɪ] — ру́би) — динамический, рефлективный, интерпретируемый высокоуровневый язык программирования для быстрого и удобного[7][8] объектно-ориентированного программирования. Язык обладает независимой от операционной системы реализацией многопоточности, строгой динамической типизацией, сборщиком мусора и многими другими возможностями. Ruby близок по особенностям синтаксиса к языку Perl .Также некоторые черты языка взяты из Python, Lisp.

 

Окончательный выбор технологии разработки.

Как уже говорилось, от технологии требуется максимальное удовлетворение следующих аспектов:

  • Используемость среди молодёжи
  • Простота
  • Скорость распространения
  • Вероятность доработки программы
  • Близость к сообществу людей, интересующихся физикой
  • Скорость работы
  • Малые требования к вычислительной машине
  • Эффективная работа при низкой скорости интернета

Наиболее выгодным представляется выбор тезнологии Javascript в силу её популярности у молодёжи, большого количества различных интернет-сообществ и возможности просто и быстро писать скрипты на исключительно пользовательской стороне, что в свою очередь приводит к низким требованиям к скорости интернета и простой портируемости между устройствами.

Информация о работе Симуляция движения скоплений масс в галактиках спирального типа (S)