Лектор
К.ф.-м.н., с.н.с., Винниченко Николай Аркадьевич, nickvinn@yandex.ru, 8(495)9392741.
Аннотация дисциплины.
Курс направлен на выработку у студентов навыков обращения с программным обеспечением, необходимым в научной деятельности. Он состоит из трех частей: подготовка публикаций в TeX, реализация математических моделей в виде небольших прикладных программ в Matlab и выполнение символьных вычислений в Maple. Обучение ведется в форме лекций с одновременной демонстрацией излагаемого материала на компьютере. Самостоятельная работа, необходимая при освоении программного обеспечения, реализуется в форме домашних заданий и контрольных работ, заключающихся в создании программного кода. Большинство примеров представляют собой небольшие задачи из физической практики.
Цели освоения дисциплины
Целью курса является приобретение студентами практических навыков ведения аналитических вычислений, реализации численных моделей и подготовки публикаций с использованием распространенных в научной среде программных продуктов: текстового редактора TeX, среды программирования Matlab и пакета компьютерной алгебры Maple.
Задачи дисциплины
Демонстрация на физических примерах основных приемов программирования и синтаксиса рассматриваемых программных средств. Практическое усвоение студентами материала в ходе выполнения учебных задач. По завершении курса студент должен уметь использовать компьютер как инструмент для решения стоящих перед ним исследовательских задач.
Компетенции
Компетенции, необходимые для освоения дисциплины - ИК-3.
Компетенции, формируемые в результате освоения дисциплины - ИК-4, ПК-2.
Требования к результатам освоения содержания дисциплины
В результате освоения дисциплины студент должен
знать возможности TeX, Matlab, Maple, их преимущества и недостатки по сравнению с существующими аналогами;
уметь готовить публикации в TeX, решать типичные задачи математической физики с помощью символьных и численных расчетов;
владеть навыком создания пользовательского интерфейса в Matlab, базовыми навыками программирования;
иметь опыт реализации математических моделей в форме прикладных программ.
Содержание и структура дисциплины.
Вид работы |
Семестр |
Всего |
||
6 |
7 |
8 |
||
Общая трудоёмкость, акад. часов |
… |
72 |
… |
72 |
Аудиторная работа: |
… |
… |
… |
… |
Лекции, акад. часов |
… |
36 |
… |
… |
Семинары, акад. часов |
… |
… |
… |
… |
Лабораторные работы, акад. часов |
… |
… |
… |
… |
Самостоятельная работа, акад. часов |
… |
36 |
… |
… |
Вид итогового контроля (зачёт, зачёт с оценкой, экзамен) |
… |
зачет |
… |
… |
N |
Наименование |
Трудоёмкость (академических часов) и содержание занятий |
Форма |
|||
Аудиторная работа |
Самостоятельная работа
|
|||||
Лекции |
Семинары |
Лабораторные работы |
||||
1 |
Подготовка научных статей в TeX |
2 часа. Сравнение TeX и Word. Установка и русификация. Обязательная преамбула документа TeX. Набор текста: разделы, аннотация, содержание, начертание и размер шрифта. Списки. |
… |
… |
2 часа. Набор текста, содержащего списки. Упражнение на абзацы нестандартной формы. |
ДЗ, КР, Об. |
2 часа. Набор формул и их нумерация: формулы строчные и выключные, ссылки на формулы, системы уравнений, вариантные формулы и формулы в несколько строк, матрицы. |
… |
… |
2 часа. Набор текста, содержащего формулы и ссылки на них. |
|||
2 часа. Создание списка литературы и ссылки на его элементы. Окружение thebibliography и BibTeX. Вставка рисунков. Создание простых таблиц. |
… |
… |
2 часа. Набор текста, содержащего рисунки и таблицы. |
|||
2 часа. Макросы: определение новых и переопределение уже существующих команд. Создание своего стиля документа: колонтитулы, переопределение команд, создающих разделы, точка после "Рис". Пример применения стилевого файла из журнала. |
… |
… |
2 часа. Задание команд для набора математических операторов. Определение своего окружения типа “теорема”. |
|||
2 |
Реализация небольших прикладных программ в Matlab |
2 часа. Сравнение MatLab и языков программирования. Анализ быстродействия. Примеры применения. |
… |
… |
2 часа. Знакомство с демонстрационными примерами Matlab. |
ДЗ, КР, Об. |
2 часа. Общий синтаксис MatLab как языка программирования: циклы, условные операторы, файловый ввод и вывод. |
… |
… |
2 часа. Реализация простого алгоритма с использованием циклов и условных операторов. |
|||
4 часа. Оформление графиков функций одной переменной. Спецграфика: диаграммы, гистограммы, две оси ординат, указание погрешности. Заливка плоских фигур. |
… |
… |
4 часа. Создание программ, включающих вычисления и визуализацию их результатов. |
|||
4 часа. Создание пользовательского интерфейса: вручную, с помощью стандартных диалогов и с помощью утилиты Guide. Структура простой программы: головной файл и файлы-обработчики кнопок. Динамическая перестройка интерфейса. |
… |
… |
4 часа. Создание программ с реализацией пользовательского интерфейса с помощью утилиты и Guide и с помощью функций-конструкторов. |
|||
4 часа. Визуализация функций двух и трех переменных: поверхности, линии уровня, векторное поле, линии тока, график, изменяющийся во времени. |
… |
… |
4 часа. Создание программ для визуализации двумерных скалярных и векторных полей. |
|||
2 часа. Работа с изображениями. Анимация. Создание независимого приложения. |
… |
… |
2 часа. Реализация динамической перерисовки графика. Автоматическая съемка фильмов. |
|||
3 |
Символьные вычисления при помощи Maple |
2 часа. Задание функций и выражений, создание графиков и анимаций. |
… |
… |
2 часа. Исследование функций. |
ДЗ, КР, Об. |
2 часа. Преобразование выражений, замена переменных, решение уравнений и систем уравнений. |
… |
… |
2 часа. Решение алгебраических уравнений. |
|||
2 часа. Вычисление пределов, производных, интегралов, разложение в ряд. |
… |
… |
2 часа. Вычисление интегралов от сингулярных функций. Нахождение асимптотик. |
|||
2 часа. Решение дифференциальных уравнений. Линейная и нелинейная регрессия для экспериментальных данных. |
… |
… |
2 часа. Аналитическое и численное решение дифференциальных уравнений с начальными и граничными условиями. |
|||
2 часа. Элементы линейной алгебры и векторного анализа. |
… |
… |
2 часа. Операции над матрицами на примере задачи устойчивости. |
Место дисциплины в структуре ООП ВПО
- Спецкурс кафедры (по выбору).
- Вариативная часть, блок В-ПД.
- Курс опирается на базовые навыки обращения с компьютером и знания, полученные на математических курсах. Знание английского языка необходимо для свободного чтения документации к программным продуктам. В свою очередь курс дает умения, необходимые для научно-исследовательской работы, особенно связанной с теоретическими выкладками или численным моделированием.
- К началу освоения данного курса необходимы знания, полученные учащимися в рамках следующих дисциплин: программирование и информатика, английский язык, математический анализ, дифференциальные уравнения, основы математического моделирования.
- Освоение курса необходимо для выполнения научно-исследовательской практики и освоения спецкурсов, тематика которых связана с проведением компьютерного моделирования.
Образовательные технологии
Учебный процесс основан на постоянном практическом использовании учащимися излагаемого материала. Все занятия и сдача зачета проходят с использованием компьютеров. Материалы курса размещены на сайте кафедры. Учащиеся присылают выполненные домашние задания по электронной почте, что позволяет подробно разбирать различные варианты решения и допущенные ошибки в начале следующего занятия.
Оценочные средства для текущего контроля успеваемости и промежуточной аттестации
Домашние задания по TeX заключаются в наборе фрагмента текста объемом 1-2 стр., взятого из научной литературы, в соответствии с выданным образцом.
Пример домашнего задания по Matlab:
Написать программу, реализующую клеточный автомат распространения эпидемии:
Задана сетка M×N клеток. На каждом шаге по времени каждая клетка может принимать одно из трех значений: "здоров", "болен и заразен", "мертв". Заданы вероятности заразиться p1, выздороветь p2 и умереть p3. Исходное состояние — все клетки здоровы, кроме одной (случайно выбранной), которая больна и заразна. Каждая клетка на каждом шаге по времени 1) если она здорова, а среди ее восьми ближайших соседей есть больные, то для каждого из больных соседей производится случайный розыгрыш: заразилась от него (вероятность p1) или нет, 2) если она была больна, то с вероятностью p2 она выздоравливает (переставая быть заразной), с вероятностью p3 умирает (также переставая быть заразной), с вероятностью 1-p2-p3 остается в прежнем состоянии (больная и заразная), 3) если она была мертва, то такой и остается. Если ни одно из правил не выполнено, то клетка просто сохраняет свое состояние. Граничные условия — периодические. Нужно визуализировать эволюцию состояния здоровья сообщества клеток. Параметры M, N, p1, p2, p3 и число шагов по времени должны вводиться из интерфейса.
Примеры контрольных вопросов по Matlab:
- Почему программа работает крайне медленно при таком присвоении значений элементам массива:
for j = 1:1000000
a(j) = sin(j);
end
(массив a до того в программе не встречался)? Как ускорить выполнение программы?
- Будет ли равна нулю переменная eps после выполнения следующего кода?
eps=1;
while (1+eps) > 1
eps = eps/2;
end
- Как поставить точку заданного цвета в заданном месте графической области (любой из существующих способов)?
- Что нужно сделать, чтобы построить график поверхности функции двух переменных, заданной на неравномерной сетке?
- Как уменьшить мерцание при построении графика, изменяющегося в реальном времени?
- Что нужно сделать, чтобы создать свою схему раскраски?
- Как можно быстрее визуализировать множество, состоящее из точек одного или нескольких цветов?
Пример домашнего задания по Maple:
Из законов сохранения
где — энтальпия, получить соотношения Рэнкина-Гюгонио
где . Найти пределы в случае сильных ударных волн (M →∞).
Указание: систему законов сохранения с подставленной энтальпией надо решить относительно v2, p2, ρ2, затем вычислить необходимые отношения и преобразовать их до нужного вида.
Полный перечень заданий к зачету заранее неизвестен. На зачете разрешается использование любых письменных и электронных источников, кроме контакта с другими людьми, в том числе через Интернет. Задания аналогичны приведенным выше примерам домашних заданий. Программы, написанные на Matlab, в обязательном порядке должны содержать пользовательский интерфейс, реализованный любым доступным способом. В зависимости от выполнения домашних заданий в ходе семестра учащийся может получить различное число заданий на зачете по каждой из частей курса.
Учебно-методическое обеспечение дисциплины
Основная литература
- С.М. Львовский Набор и верстка в системе LaTeX. МЦНМО, 2006.
- Д.Э. Кнут Все про TeX. Вильямс, 2003.
- Н.Н. Мартынов Matlab 7. Элементарное введение. Кудиц-образ, 2005.
- В.З. Аладьев Системы компьютерной алгебры. Maple. Искусство программирования. Лаборатория базовых знаний, 2006.
Дополнительная литература
- М. Гуссенс, Ф. Миттельбах, А. Самарин Путеводитель по пакету LaTeX и его расширению LaTeX2ε. Мир, 1999.
- В.П. Дьяконов MATLAB 7.*/R2006/R2007 Самоучитель. ДМК-пресс, 2008.
- Л.Ф. Шампайн, И. Гладвел, С. Томпсон Решение обыкновенных дифференциальных уравнений с использованием MATLAB. Лань, 2009.
- К.Чен, П.Джиблин, А.Ирвинг MATLAB в математических исследованиях. Мир, 2001.
Интернет-ресурсы
Материалы курса доступны на сайте кафедры молекулярной физики http://molphys.phys.msu.ru в разделе Файловый архив -> Материалы спецкурсов -> Компьютерные методы для решения физических задач
Материально-техническое обеспечение
В соответствии с требованиями п.5.3. образовательного стандарта МГУ по направлению подготовки «Физика».
Аудитория 2-44.
В наличии есть проектор и компьютер для презентации. Практическая часть занятий проводится с использованием личных ноутбуков учащихся.