Лектор

К.ф.-м.н., с.н.с., Винниченко Николай Аркадьевич, 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 часа.

Операции над матрицами на примере задачи устойчивости.

Место дисциплины в структуре ООП ВПО

  1. Спецкурс кафедры (по выбору).
  2. Вариативная часть, блок В-ПД.
  3. Курс опирается на базовые навыки обращения с компьютером и знания, полученные на математических курсах. Знание английского языка необходимо для свободного чтения документации к программным продуктам. В свою очередь курс дает умения, необходимые для научно-исследовательской работы, особенно связанной с теоретическими выкладками или численным моделированием.
    • К началу освоения данного курса необходимы знания, полученные учащимися в рамках следующих дисциплин: программирование и информатика, английский язык, математический анализ, дифференциальные уравнения, основы математического моделирования.
    • Освоение курса необходимо для выполнения научно-исследовательской практики и освоения спецкурсов, тематика которых связана с проведением компьютерного моделирования.

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

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

 Оценочные средства для текущего контроля успеваемости и промежуточной аттестации

Домашние задания по TeX заключаются в наборе фрагмента текста объемом 1-2 стр., взятого из научной литературы, в соответствии с выданным образцом.

Пример домашнего задания по Matlab:

Написать программу, реализующую клеточный автомат распространения эпидемии:

Задана сетка M×N клеток. На каждом шаге по времени каждая клетка может принимать одно из трех значений: "здоров", "болен и заразен", "мертв". Заданы вероятности заразиться p1, выздороветь p2  и умереть p3. Исходное состояние — все клетки здоровы, кроме одной (случайно выбранной), которая больна и заразна. Каждая клетка на каждом шаге по времени 1) если она здорова, а среди ее восьми ближайших соседей есть больные, то для каждого из больных соседей производится случайный розыгрыш: заразилась от него (вероятность p1) или нет, 2) если она была больна, то с вероятностью p2 она выздоравливает (переставая быть заразной), с вероятностью p3 умирает (также переставая быть заразной), с вероятностью 1-p2-p3 остается в прежнем состоянии (больная и заразная), 3) если она была мертва, то такой и остается. Если ни одно из правил не выполнено, то клетка просто сохраняет свое состояние. Граничные условия — периодические. Нужно визуализировать эволюцию состояния здоровья сообщества клеток. Параметры M, N, p1, p2, p3 и число шагов по времени должны вводиться из интерфейса.

 Примеры контрольных вопросов по Matlab:

  1. Почему программа работает крайне медленно при таком присвоении значений элементам массива:

 for j = 1:1000000

a(j) = sin(j);

end

(массив a до того в программе не встречался)? Как ускорить выполнение программы?

  1. Будет ли равна нулю переменная eps после выполнения следующего кода?

 

eps=1;

while (1+eps) > 1

    eps = eps/2;

end

 

  1. Как поставить точку заданного цвета в заданном месте графической области (любой из существующих способов)?
  2. Что нужно сделать, чтобы построить график поверхности функции двух переменных, заданной на неравномерной сетке?
  3. Как уменьшить мерцание при построении графика, изменяющегося в реальном времени?
  4. Что нужно сделать, чтобы создать свою схему раскраски?
  5. Как можно быстрее визуализировать множество, состоящее из точек одного или нескольких цветов?

 

Пример домашнего задания по Maple:

Из законов сохранения 

где  — энтальпия, получить соотношения Рэнкина-Гюгонио

где  . Найти пределы в случае сильных ударных волн (M →∞).

Указание: систему законов сохранения с подставленной энтальпией надо решить относительно v2, p2, ρ2, затем вычислить необходимые отношения и преобразовать их до нужного вида.

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

 Учебно-методическое обеспечение дисциплины

 Основная литература

  1. С.М. Львовский Набор и верстка в системе LaTeX. МЦНМО, 2006.
  2. Д.Э. Кнут Все про TeX. Вильямс, 2003.
  3. Н.Н. Мартынов Matlab 7. Элементарное введение. Кудиц-образ, 2005.
  4. В.З. Аладьев Системы компьютерной алгебры. Maple. Искусство программирования. Лаборатория базовых знаний, 2006.

 Дополнительная литература

  1. М. Гуссенс, Ф. Миттельбах, А. Самарин Путеводитель по пакету LaTeX и его расширению LaTeX2ε. Мир, 1999.
  2. В.П. Дьяконов MATLAB 7.*/R2006/R2007 Самоучитель. ДМК-пресс, 2008.
  3. Л.Ф. Шампайн, И. Гладвел, С. Томпсон Решение обыкновенных дифференциальных уравнений с использованием MATLAB. Лань, 2009.
  4. К.Чен, П.Джиблин, А.Ирвинг MATLAB в математических исследованиях. Мир, 2001.

 Интернет-ресурсы

Материалы курса доступны на сайте кафедры молекулярной физики http://molphys.phys.msu.ru в разделе Файловый архив -> Материалы спецкурсов -> Компьютерные методы для решения физических задач

 Материально-техническое обеспечение

В соответствии с требованиями п.5.3. образовательного стандарта МГУ по направлению подготовки «Физика».

Аудитория 2-44.

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