close

Вход

Забыли?

вход по аккаунту

?

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

код для вставкиСкачать
Программирование и научные вычисления на языке Python
1
Программирование и научные вычисления на
языке Python
Цель этого курса — научиться писать программы,
решающие научные задачи. Язык программирования
Python обладает ясным и понятным синтаксисом, и
потому легко учится и хорошо подходит для
введения в программирование. Это позволит нам не
отвлекаться от решаемой задачи на особенности
языка и их объяснение, позволит естественным образом последовательно вводить новые инструменты. Язык
близок с MATLAB и хорош для программирования математических вычислений. К тому же Python умеет
работать с такими языками как Fortran, C и С++, которые уже широко используются в научных расчетах.
Кроме всего прочего, большинство продуктов и модулей, написанных на Python, распространяются бесплатно,
в том числе и все те инструменты, которыми мы будем пользоваться в ходе наших уроков.
Примеры данного курса интегрируют программирование с прикладным вычислениями в математике, физике,
биологии и экономике. Предполагается, что читатель знаком с математическим анализом функции одной
переменной и базовыми законами физики, тогда примеры окажутся более наглядными. В свою очередь, знание
языка Python или умение программировать на любом другом языке совсем не предполагается и язык изучается
одновременно с решением задач. Знать же английский язык, хотя бы на базовом уровне, будет очень неплохо.
Вы и сами это знаете.
Многие книги по программированию фокусируют свое внимание исключительно на особенностях языка
программирования. Однако, чтобы писать программы, надо думать как программист. Это означает, что надо
находить решение на поставленную задачу. В этом курсе в каждом новом примере определяется новая задача
и находится ее решение в виде программного кода. Помните, что никто не может научиться программировать,
только читая тексты программ и пояснения к ним. К тому же, самое интересное - это практика. Тем более, что
к каждому уроку прилагается множество интересных упражнений из различных областей науки.
Занятия ведет: LeoMat
Урок 1. Формулы простые
В этом уроке мы рассмотрим задачу из школьного курса физики о вертикальном движении подброшенного
вверх мячика. На ее примере я расскажу как написать и запустить программу на языке Python,
рассчитывающую функцию координаты от времени и выводящую результат в виде строки форматированного
текста. Также мы узнаем о том, как правильно и удобно пользоваться переменными и комментариями. После
этого урока вы сможете писать программы, которые численно рассчитывают любые формулы со стандартными
арифметическими операциями (сложение, вычитание, умножение, деление и возведение в степень) и выводят
результаты на экран.
Урок 2. Формулы посложнее
Здесь мы рассмотрим новый пример — перевод значения температуры из шкалы Фаренгейта в шкалу Цельсия.
Я расскажу о старшинстве арифметических операций, об использовании встроенных математических
функции, например ex или sin(x), о том как можно использовать интерактивную оболочку Python в качестве
калькулятора. Кроме того, мы поговорим об ошибках — ошибке целочисленного деления и погрешности
вычислений. Для тех, кто знаком с комплексной переменной, я расскажу о том как с ней работать в Python.
После этого урока вы сможете обходиться без инженерного калькулятора.
Программирование и научные вычисления на языке Python
2
Приложение: модули math и cmath
Документация по модулям math и cmath: полный перечень функций и некоторые пояснения.
Урок 3. Циклы и последовательности
Задача этого занятия — написать программу, которая выводит на экран таблицу значений для предыдущего
примера. Это очень важный урок, в нем мы познакомимся с циклами while и for, то есть сможем
автоматизированно повторять какую-то работу — до какого-то момента, заданного условием или нужное нам
число раз. Для задания условий мы познакомимся с использованием логических условий. Кроме того, мы
узнаем о работе с последовательностями, о таких важных объектах как список и кортеж, познакомимся с
концепцией срезов, вложенных списков, zip-функции и многим другим. Таким образом, мы узнаем как
использовать большую часть базовых конструкций языка.
Урок 4. Функции
В этом уроке мы познакомимся с одними из наиболее важных структурных элементов программ — с
функциями. Мы уже узнали о том, как можно использовать встроенные функции языка, например,
размещенные в math. Теперь мы узнаем, как создавать функции самим. Они смогут принимать сколько угодно
аргументов и выдавать столько же значений. Кроме того мы ознакомимся с локальными и глобальными
переменными, новым типом объектов None, с использованием строк документации и такой удобной
особенностью языка, как lambda-функции.
Приложение: встроенные функции Python
Приложение разрабатывается...
Урок 5. Общение с пользователем
Здесь мы познакомимся с тем, как в программах происходит выбор по какому-то условию или решению
пользователя, то есть изучим базовую конструкцию if-elif-else. Научимся делать более дружелюбные
программы, которые будут задавать вопросы, считывать и обрабатывать ответы. С помощью функций eval и
exec наши программы смогут принимать от пользователя не только обычные объекты, такие как числа, строки
и последовательности, но и целые математические формулы, которые мы сможем, таким образом,
обрабатывать «на лету». Кроме того, мы приобретем навыки использования и оценим удобство командной
строки при запуске программ.
Урок 6. Перехват ошибок
В любой программе, которая общается с пользователем, надо помнить, что это не равностороннее общение, у
человека прав гораздо больше, в том числе и право на ошибку. Но действия программы должны быть
безоговорочно ясными, поэтому в ответ на неправильный запрос надо как-то правильно действовать. В этом
нам поможет соответствующая конструкция try-except. Мы познакомимся с типами ошибок и как самим
предопределить поведение программы в таких некорректных случаях. Этот урок также продолжает разговор
об общении с пользователем, поэтому здесь мы немного поговорим и о графическом интерфейсе (GUI).
Программирование и научные вычисления на языке Python
3
Урок 7. Модули
Уже на первых уроках мы познакомились с библиотеками Python — модулями, тем как их импортировать.
Теперь мы узнаем как они устроены, где их ищет интерпретатор, как узнать что в них находится с помощью
функции dir и сами сделаем свой довольно большой модуль для примера о банковском вкладе. Мы узнаем как
можно использовать один и тот же файл и как контейнер импортируемых функций, и как самостоятельную
программу, как создавать не импортируемые имена переменных и в итоге получим сравнительно большую, но
аккуратную программу.
Урок 8. Массивы
Данный урок подготавливает почву для многих дальнейших рассмотрений, в нем мы через понятие вектора и
операций над векторами приходим к заданию данных, например, координат в виде массивов. Начиная с этого
урока мы знакомимся с обширными пакетами, всеми используемыми в научных расчетах на Python —
библиотеках SciPy и NumPy. В качестве примера мы рассмотрим вопрос о задании значений функций для
последовательности координат. Мы узнаем чем и почему массив выигрывает у списка и как с ним можно
работать.
Урок 9. Графики
Пример построения графиков из урока 9
На этом занятии мы узнаем как строить
графики с помощью широко
распространенной и очень развитой
библиотеки Matplotlib. Кроме того, что
мы сможем их строить вместе по
отдельности, мы научимся и полноценно
их оформлять, задавая названия осей,
легенду, различное начертание кривых с
помощью цвета, стиля линий и маркеров.
Также мы научимся сохранять
полученные рисунки в файл и работать с
popup-окном Matplotlib, позволяющим
предварительно изучить полученные
результаты.
Программирование и научные вычисления на языке Python
4
Урок 10. Диаграммы
Диаграмма со столбцами из урока 10
Этот урок повествует о других типах
визуализации, заключенных в библиотеке
Matplotlib и знакомит нас с такими
типами представления данных о
распределении величин (гистограммы), их
погрешностей (error bars), диаграмм в
виде столбцов и круговых диаграмм,
показывающих вклад участников,
графиками рассеяния, позволяющими
выявить закономерность между двумя
величинами, узнаем о представлении в
полярных координатах. Также мы сможем
добавлять на наши рисунки текстовые
блоки и примечания.
Урок 11. Файлы
В этом уроке о чтении и записи файлов. Вы узнаете как можно хранить, считывать, обрабатывать и записывать
информацию внутри файловых объектов, о том как управлять потоками входных и выходных данных с
помощью функций модуля sys. В качестве примеров мы прочитаем данные из файла, построив тут же по ним
график и запишем в файл форматированную таблицу. Для любителей табличных процессоров отдельный
раздел.
Урок 12. Словари
На этом занятии мы узнаем об абсолютно новом для нас типе объектов — о словарях. Словари оказываются
очень удобными объектами для хранения данных и по сути являются своеобразным объектом-заменой базе
данных. В качестве конечного примера мы напишем программу, в которой с помощью словарей преобразуются
и сравниваются на одном графике данные (о стоимости акций трех известных корпораций-гигантов) из
довольно больших табличных файлов.
Урок 13. Строки
В этом уроке мы освоим множество функций работы над часто встречающимися нам объектами — строками,
такими как поиск в них подстрок, их замещение, разбиение и объединение строк, проверка содержимого и так
далее. Кроме того, что строки встречаются повсеместно в коде программ, но и файлы читаются именно
строкам, поэтому эти знания сильно помогут при работе с файлами и извлечении из них нужных нам данных.
Урок 14. Сбор данных с web
Теперь мы поговорим о том, в чем Python и без научных исследований используется весьма часто и где его
грех не применять в случае надобности. На этом занятии мы немного поговорим о том как конструируются
web-страницы и как мы можем загрузить и разложить по полочкам данные из них, как мы это делали с
простыми файлами. В качестве примера извлечения информации, мы соберем данные о погоде и температуре
одновременно с нескольких страниц сайта прогнозов погоды.
Программирование и научные вычисления на языке Python
5
Урок 15. Введение в классы
С этого урока мы начинаем осваивать и практиковать зачастую наиболее удобный и элегантный метод —
программирование с помощью классов. Этот метод очень востребован для случаев, когда мы имеем множество
однотипных объектов. В научных вычислениях имеется, например, проблема задания функции одной
переменной с несколькими аргументами, и мы узнаем как с помощью классов ее можно решить.
Урок 16. Специальные методы классов
В этом уроке больше примеров классов: счет в банке, номера телефонов в мобильном, геометрические
объекты. Кроме того мы узнаем о специальных методах, таких как __call__, __str__, __add__ и так
далее, позволяющих сделать написание программ с помощью классов существенно более ясным и гибким за
счет использования таких встроенных методов классов.
Урок 17. Случайные числа
А теперь о том как генерировать (и как генерируются) случайные числа и массивы таких чисел по
равномерному и нормальному (гауссову) распределениям, о случайный выборе из набора целых чисел или
элементов списка, нахождение среднего, дисперсии и среднеквадратических отклонений и несколько игровых
примеров о бросании костей и картах.
Урок 18. Метод Монте-Карло
В этом уроке больше о практическом применении случайных чисел в качестве численных методов. Рассмотрен
метод Монте-Карло, заключающийся в использовании большого количества генерируемых случайных чисел и
проверке их на заданные условия и показаны возможности применения метода Монте-Карло в различных
областях: задачах теории вероятностей, ограничении роста населения Китая и численном интегрировании.
Урок 19. Символьные вычисления
Хотя численные методы, некоторые из которых описаны в предыдущих уроках, и находят широкое
применение, большей точностью и наглядностью обладают символьные вычисления, работающие с
математическими выражениями как с последовательностями символов. Системы, занимающиеся символьными
вычислениями, называют также системами компьютерной алгебры. Примерами таких систем служат известные
математические среды Mathcad, Maple, Mathematica и т. д. В качестве инструмента символьных вычислений в
Python мы рассмотрим библиотеку SymPy.
Упражнения
Раздел разрабатывается...
Урок 1 Урок 2 Урок 3
Планируемые уроки
•
Подробнее о возможностях NumPy и SciPy
•
Объектно-ориентированное программирование
•
Ряды и дифференциальное исчисление
•
Запись и чтение звука
Программирование и научные вычисления на языке Python
6
Литература
На русском языке или переведенные на русский язык
•
Вики-учебник Python 2.6
•
Стиль кода в языке Python [1]
•
Лутц М. Изучаем Python. — 3-е изд. — СПб: Символ-плюс, 2009. — 848 с. — 2000 экз. — ISBN
978-5-93286-138-7
•
Лутц М. Программирование на Python. — 2-е изд. — СПб: Символ-плюс, 2002. — 1136 с. — 2000 экз. —
ISBN 5-93286-036-7
На английском языке
•
Magnus Lie Hetland Beginning Python: From Novice to Proffesional. — Apress, 2005. — ISBN 1-59059-519-X
•
Hans Petter Langtangen A Primer on Scientific Programming with Python. — Springer, 2009. — ISBN
978-3-642-02474-0
•
Sandro Tosi Matplotlib for Python Developers. — Packt Publishing, 2009. — ISBN 978-1-847197-90-0
•
Jaan Kuisalaas Numerical Methods in Engineering with Python. — Cambridge University Press, 2005. — ISBN
978-0-521-85287-6
Ссылки
•
Официальная страница Python [2]
•
Библиотеки научных вычислений SciPy и NumPy [3]
•
Библиотека символьных вычислений SymPy [4]
•
Библиотека визуализации Matplotlib [5]
•
Каталог сайтов о Python на русском языке [6]
•
Python(x, y) [7] - крупный дистрибутив, собирающий в себе множество свободных научно-расчетных
библиотек
•
IPython [8] - Интерактивная оболочка с множеством дополнительных команд
•
Spyder [9] - легкий редактор, «заточенный» под научные расчеты
•
Sage [10] - полноценный математический пакет на базе Python
Статьи
•
Использование Python для разработки научно-технического ПО [11]
•
Краткий обзор Sympy, Numpy, Matplotlib, Dislin [12]
•
Краткий обзор IPython [13]
Этот курс признан одним из лучших сообществом Вики-Университета.
cs:Python en:Topic:Python fr:Python
Программирование и научные вычисления на языке Python
7
Сноски
[1]
http:/ / 360. nnov. ru/ files/ python_code_styleguide. pdf
[2]
http:/ / www. python. org/
[3]
http:/ / www. scipy. org/
[4]
http:/ / code. google. com/ p/ sympy/
[5]
http:/ / matplotlib. sourceforge. net/
[6]
http:/ / pyweb. ru/
[7]
http:/ / www. pythonxy. com/
[8]
http:/ / ipython. scipy. org/
[9]
http:/ / code. google. com/ p/ spyderlib/
[10]
http:/ / www. sagemath. org/
[11]
http:/ / www. developers. org. ua/ archives/ dmitrey/ 2009/ 02/ 11/ python-for-science/
[12]
http:/ / jenyay. net/ Programming/ PyMath
[13]
http:/ / habrahabr. ru/ blogs/ python/ 49685/
Источники и основные авторы
8
Источники и основные авторы
Программирование и научные вычисления на языке Python Источник: http://ru.wikiversity.org/w/index.php?oldid=26009 Основные авторы: Bolo1910, Bunkar, Freidom, LeoMat,
SergeyJ, 2 анонимных правок
Источники, Лицензии и Владельцы(?)
изображения.
Файл:Python logo.svg Источник: http://ru.wikiversity.org/w/index.php?title=Файл:Python_logo.svg Лицензия: Trademarked Основные авторы: www.python.org
Файл:PythonScience - Matplotlib - 5.png Источник: http://ru.wikiversity.org/w/index.php?title=Файл:PythonScience_-_Matplotlib_-_5.png Лицензия: неизвестно Основные авторы:
LeoMat
Файл:PythonScience - Matplotlib - Bar charts.png Источник: http://ru.wikiversity.org/w/index.php?title=Файл:PythonScience_-_Matplotlib_-_Bar_charts.png Лицензия: неизвестно
Основные авторы: LeoMat
Файл:Green star boxed.svg Источник: http://ru.wikiversity.org/w/index.php?title=Файл:Green_star_boxed.svg Лицензия: GNU Free Documentation License Основные авторы:
User:Kalan, User:Spider, User:Wind
Лицензия
Creative Commons Attribution-Share Alike 3.0 Unported
http:/ / creativecommons. org/ licenses/ by-sa/ 3. 0/
Автор
vlad
Документ
Категория
Информатика
Просмотров
1 636
Размер файла
321 Кб
Теги
Python
1/--страниц
Пожаловаться на содержимое документа