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

Программное обеспечение Python и ее основные характеристики, как программной среды. Общие сведения о языке программирования Python. Особенности применения ППП Python (x,y) с использованием его различных вычислительных модулей в учебном процессе.

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

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

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

3.5 Компьютерное моделирование в Геофизике

В этой главе мы приведем пример моделирования с помощью ППП Python(x,y) задачи о влиянии текущего потока с учетом электрического в сопротивленя в среде. Этот тип задачи связан с методом сопротивления постоянного тока при геофизической разведке.

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

3.6 Компьютерное моделирование методом Монте-Карло

Пусть мы провели N экспериментов, и результат каждого эксперимента есть случайное число. В этих N экспериментах некоторое событие случает-ся M раз. Оценка вероятности тогда M/N и она становится более точной при стремлении числа экспериментов N к бесконечности (дробь при этом не обращается в ноль, поскольку и число M также стремится к бесконечности). Метод Монте-Карло это математический метод, заключающийся в том, что используется большого числа генерируемых случайных чисел. Этот метод широко используется в науке и промышленности, т.е. там, где случайное поведение нельзя не учитывать.

Задача о бросании костей: какова вероятность при броске костей, чтобы по крайне мере на двух из них были шестерки? Итак, эксперимент в том, что кидаются четыре кости, нужное событие - не менее двух кубиков с шестью точками.

import random as random_number

N = int(raw_input('Enter number of experiments: '))

M = 0

for i in xrange(N):

six = 0

r1 = random_number.randint(1, 6)

if r1 == 6:

six += 1

r2 = random_number.randint(1, 6)

if r2 == 6:

six += 1

r3 = random_number.randint(1, 6)

if r3 == 6:

six += 1

r4 = random_number.randint(1, 6)

if r4 == 6:

six += 1

if six >= 2:

M += 1

p = float(M)/N

print 'probability:', p

Более общая задача - мы можем задать и не только число экспериментов, но и число бросаемых костей (ndice) и минимальное число одинаковых кубиков (nsix). Таким образом, мы получаем более общий и более короткий код, которое гораздо проще модифицировать далее:

import random as random_number

import sys

N = int(raw_input('Number of experiments: '))

ndice = int(raw_input('Number of dice: '))

nsix = int(raw_input('Number of dice with six eyes: '))

M = 0

for i in range(N):

six =0

for j in range(ndice):

r = random_number.randint(1, 6)

if r == 6:

six += 1

if six >= nsix:

M += 1

p = float(M)/N

print 'Probability:', p

Для малых вероятностей число M мало, а аппроксимацию в ви-де M/N нелья назвать корректной, поэтому требуется большое число экспериментов (для стандартного модуля потребуется большое время). Но можно перейти к более быстрым векторным операциям: т.е. надо создать двухмерный массив случайных чисел, в котором число строк определяется числом экспериментов (бросков), а число столбцов - числом испытаний (костей):

eyes = random.random_integers(1, 6, (N, ndice))

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

from numpy import random, sum

N = int(raw_input('Number of experiments: '))

ndice = int(raw_input('Number of dice: '))

nsix = int(raw_input('Number of dice with six eyes: '))

eyes = random.random_integers(1, 6, (N, ndice))

compare = eyes == 6

nthrows_with_6 = sum(compare, axis=1) # суммирование по столбцам - элементам строки (axis = 1)

nsuccesses = nthrows_with_6 >= nsix

M = sum(nsuccesses)

p = float(M)/N

print 'probability:', p

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

Заключение

Для компьютерного моделирования в учебном процессе (особенно при проведении лабораторнх работ) в качестве ПО используется такие мощные коммерческие ППП, как Matlab, Maple и Mathematica. Но их примененте зачастую связано с большими трудностями, связанными с их коммерческими лицензиями. Применение же в этом направлении свободных и открытых ПО таких, как ППП Python(x,y) или ППП SciPy гораздо больше подходит для таких учебных процессов. ПО Python используется во многих университетах США (MIT) и Европы в образовании и научных исследованиях. В последнее время Python все больше используется в известных крупных компаниях (Google, YouTube, Nokia, NASA и т.п.). Язык Python обладает ясным и понятным синтаксисом, он близок к MATLAB и очень подходит для компьютерного моделирования. Python умеет работать с такими языками как Fortran, C и С++, которые давно используются в научных расчетах. Подчеркнем основные преимущества ППП с ядром Pytthon:

· наличие внутреннего высокоуровневого языка программирования близкого к Matlab;

· имеются в наличии специальные пакеты для проведения компьютерного моделированиясреда (SciPy, SimPy, NumPy, Matplotlib, Mayavi и т.д.):

· имеется высокоуровневая оболочка для работы с файлами, текстами и данными;

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

Литература

1. Д.Бизли. Python: подробный справочник. - Пер. с англ. - СПб.: Символ-Плюс,- 864 с., ил. PDF format. 2010.

2. A.Kumar. Python for education. Inter University Accelerator Center. New Delhi. PDF format. 2010.

3. K.Urner. Pythonic Mathematics. EuroPython. Gцteborg, Sweden. PDF format. 2005

4. http://python-script.blogspot.com/

5. http://python.su.

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


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

  • Понятие и характеристики облачных технологий, модели их развертывания, технологические процессы, аспекты экономики и критика. Язык программирования Python, оценка функциональности, сравнение с аналогами. Управление облаком в Python на примере libcloud.

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

  • Отличительные особенности языка программирования Python: низкий порог вхождения, минималистичный язык, краткий код, поддержка математических вычислений, большое количество развитых web-фреймворков. Традиционная модель выполнения программ на языке Python.

    реферат [51,9 K], добавлен 18.01.2015

  • Об'єктно-орієнтована мова Python - сучасна мова програмування, проста у вивченні та використанні. Наявність повної стандартної бібліотеки. Середовища програмування на Python. Механізм функціонування інтерпретатора. Колекції даних, комбіновані оператори.

    презентация [753,2 K], добавлен 06.02.2014

  • Разработка структуры базы данных для хранения дипломных проектов в среде объектно-ориентированного программирования Python. Создание внешнего вида окон ввода-вывода информации, технологии переходов. Листинг программы с пояснениями; направления улучшения.

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

  • Особенности программирования аркадных игр в среде Python. Краткая характеристика языка программирования Python, его особенности и синтаксис. Описание компьютерной игры "Танчики" - правила игры, пояснение ключевых строк кода. Демонстрация работы программы.

    курсовая работа [160,3 K], добавлен 03.12.2014

  • Разработка программ средствами библиотеки tkinter на языке Python. Изучение основы работы в текстовом редакторе Word. Описание авторской идеи анимации. Использование базовых команд и конструкций. Процесс проектирования и алгоритм разработанной программы.

    контрольная работа [125,3 K], добавлен 11.11.2014

  • Исторические аспекты развития линии "Алгоритмизация и программирование" в старшей школе. Изучение языка программирования Python с применением дистанционных курсов Coursera. Методическая система обучения программированию с использованием Coursera.

    дипломная работа [808,8 K], добавлен 13.12.2017

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

    курсовая работа [228,1 K], добавлен 11.01.2012

  • Анализ основ ООП, изучение языка программирования Python, применение полученных знаний на практике для реализации предметной области. Понятие и механизм инкапсуляции. Фиксирование информационной работы отеля. Диаграмма классов. Реализация на языке Python.

    курсовая работа [227,6 K], добавлен 14.05.2017

  • Этапы развития, особенности и возможности языка программирования Java; происхождение названия. Приложения Sun Microsystems: идеи, примитивные типы. Python - высокоуровневый язык программирования общего назначения: структуры данных, синтаксис и семантика.

    реферат [79,0 K], добавлен 23.06.2012

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