Примерная программа дисциплины
"КОМПЬЮТЕРНЫЕ МЕТОДЫ В ФИЗИКЕ"

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

Предлагаемая примерная программа по курсу "Компьютерных методов в физике" соответствует физическим естественнонаучным направлениям бакалавриата. В сочетании с другими дисциплинами общего естественнонаучного цикла (курсы физики и математики, общефизический практикум) данный курс должен формировать у студента базовую подготовку в области современного использования вычислительной техники как применительно к потребностям физика, так и специалиста более широкого профиля. Одновременно физика, как предмет, на базе которого проходит обучение, служит дополнительным фактором, обеспечивающим мотивацию студента в изучении компьютерных технологий. Необходимо иметь в виду, что курс направлен, в основном, на приобретение студентом ПРАКТИЧЕСКИХ навыков применения компьютеров для решения задач физики, которые формируются постепенно путем приобретения опыта решения все более сложных задач из разных разделов физики с использованием различных средств. Поэтому предпочтительным является четырехсеместровый курс "Компьютерных методов в физике", основу которого составляют семинарские и практические занятия.

Предполагаемое начало занятий по курсу - 1-й семестр 1-го курса, окончание - 4-й семестр 2-го курса. Курс имеет три составляющие: лекции, семинарские и практические занятия. Распределение учебной нагрузки по семестрам приведено ниже.

В соответствии с программой курса студент должен:

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

Два последних раздела - программирование и вычислительная физика - безусловно, самые важные в курсе. Программирование дает в руки студентов инструмент, а вычислительная физика - методы, которые необходимы для решения широкого круга физических задач с использованием компьютера. Здесь же рассматриваются вопросы аналитических вычислений на компьютере и решения задач физики с использованием пакетов компьютерной алгебры*.

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

СОДЕРЖАНИЕ ПРОГРАММЫ

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

I-й Семестр

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

Лекции

1. Введение

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

2. Взаимосвязь физики и компьютерных технологий

Как новые идеи физики влияют на развитие современных компьютерных технологий? Новые методы оптического кодирования и записи информации - на пути к созданию новых 3-х мерных носителей цифровой информации сверхвысокой плотности записи. Принципы записи/чтения информации на CD, DVD. Оптическая (голографическая) 3-х мерная память. Квантовая информация и квантовые алгоритмы вычислений - параллельная обработка информации средствами квантовой физики. Квантовый бит информации (кубит). Преимущества квантовых алгоритмов над классическими. Экспериментальная реализация квантовых компьютеров.

3. Операционные системы и операционные оболочки

Что такое операционная система (ОС). Системное и прикладное математическое обеспечение. Типовые ОС: DOS, Windows, Unix. Общие и сравнительные характеристики. Как устроена простейшая ОС (на примере MS DOS). Распределение памяти, загрузка ОС, файлы и файловая система, командный процессор, запуск программ, командные файлы. Понятие операционной оболочки. Системные утилиты. Прикладные пакеты программ.

4. Подготовка научной публикации к печати

Ключевые понятия компьютерной верстки текстов. Абзац текста, его форматирование. Фонт. Макет документа. Понятие стиля. Включение таблиц, формул и графической информации в текст документа. Средства проверки документа. Понятие настольных издательских систем. WYSIWYG системы (на примере Microsoft Word). Пример подготовки научной автобиографии и научной статьи. Что такое система компьютерной верстки TeX/LaTeX?. Как работает TeX/LaTeX и последовательность действий при работе с ними. Язык описания полиграфических документов TeX/LaTeX. Спецсимволы и команды, структура исходного текста, блоки. Набор текста и формул. Основные приемы форматирования. Пример подготовки научной автобиографии и научной статьи. Преимущества и недостатки TeX.

5. Вычислительная физика

Предмет вычислительной физики. Введение в методы компьютерного эксперимента: метод Молекулярной динамики и метод Монте-Карло. Численное интегрирование. Метод трапеций и метод Симпсона. Общая схема метода Монте-Карло. Применение метода Монте-Карло для численного интегрирования. Анализ датчика псевдослучайных чисел. Генерация равномерно и нормально распределенных псевдослучайных чисел. Прямое имитационное моделирование. Пример: Перколяция (задача о протекании). Численное интегрирование системы обыкновенных дифференциальных уравнений. Задача Коши. Расчетная сетка. Схема Эйлера. Устойчивость схемы. Построение численных схем более высокого порядка точности, графический и аналитический подходы. Алгоритм Верле. Улучшенный метод ломаных. Схема предиктор-корректора. Метод Рунге-Кутта. Метод молекулярной динамики (МД) для анализа динамики системы классических частиц. Пример: МД-моделирование динамики больших молекул. Понятие клеточного автомата и его моделирование на компьютере. Игра "жизнь". Нейронные сети, моделирование на компьютере и в оптике. Аналитические вычисления на компьютере.

6. Вычислительные сети и интернет

Сети ЭВМ. Локальные (ЛВС) и глобальные сети. Понятие протокола ЛВС. Архитектура ЛВС, методы доступа, среда передачи информации. ЛВС типа Ethernet. Программное обеспечение ЛВС. Пример глобальных вычислительных сетей: Internet. TCP/IP протокол, telnet, ftp. Электронная почта, электронные конференции, электронные научные журналы. Всемирная паутина WWW (World Wide Web). Гипертекст, язык разметки документов.

Семинары

1. Вводная информация

Общий план семинаров в первом семестре. Требования к зачету. Организация практических занятий. Устройство персонального компьютера. Работа с персональным компьютером: последовательность действий. Техника безопасности. Локальная сеть персональных компьютеров в компьютерном классе, архитектура сети и состав устройств. Особенности работы пользователя в сети. Работа пользователя в среде MS Windows. Вход в систему и выход из нее. Файловая система: файл, имя файла, стандартные расширения имени. Иерархическая структура директорий. Полное имя файла. Исполняемые файлы. Запуск программ. Организация окон на экране. Навигация с помощью клавиатуры и мыши. Настройка персонального оконного интерфейса. Стандартные утилиты MS Windows.

2. Основы программирования*

Что такое язык программирования. История языка. Характеристики языка. Пример составления простейшей программы. Визуальная среда для разработки программ. Основные приемы работы в ней. Консольные приложения. Структура программы. Типы данных. Переменные, константы. Описания переменных и констант. Массивы. Многомерные массивы. Основные арифметические операции. Организация циклов. Циклы с пред- и постусловием. Выбор вариантов. Множественный выбор. "Досрочное" прекращение цикла. Истина и ложь. Оператор перехода. Стандартные функции ввода/вывода; спецификации формата. Передача параметров при вызове функции. Указатели. Имена массивов как указатели. Строка. Структуры. Указатель на структуру. Работа с файлами. Глобальные и локальные переменные. "Время жизни" переменных: автоматические и статические переменные. Отладка программ. Встроенные в среду программирования средства отладчика.

3. Численные методы

Вычисление определенных интегралов, метод трапеций и метод Симпсона. Решение трансцендентных уравнений, метод деления отрезка пополам, метод секущих, метод Ньютона. Задачи линейной алгебры. Задача Коши. Интегрирование обыкновенных дифференциальных уравнений, схема Эйлера, алгоритм Верле.

Практикум на ЭВМ

Практические занятия в компьютерном классе проводятся в соответствии с темами, изучаемыми на семинарских занятиях из расчета два практических занятия на одно семинарское занятие. Наряду с простыми упражнениями по освоению MS Windows и среды программирования даются упражнения по программированию и два практических задания, обсужденных на семинарах.

II-й Семестр

Во II-м семестре курса предусмотрены семинарские занятия раз в две недели и еженедельные практические занятия. На семинарских занятиях в начале семестра изучаются вопросы, связанные с подготовкой научной публикации к печати (редакторы Microsoft Word и LaTeX, графический редактор Origin). Во второй половине семестра семинарские занятия посвящены программированию под Windows в среде визуального программирования (Visual С или Delphi). Для получения зачета необходимо сдать индивидуальное задание по программированию под Windows; сдать распечатку научной публикации, подготовленной с помощью Microsoft Word и LaTeX (фрагмент научной статьи с формулами и графиком, полученным в результате работы собственной расчетной программы).

 

Семинары

  1. Подготовка научной публикации к печати

Пакет Microsoft Word

Текстовый редактор Microsoft Word, его назначение. Стандартное окно редактора. Операционное и пиктографическое меню, линейка форматирования. Создание документа с помощью Microsoft Word. Открытие и сохранение документа. Копирование и вспоминание фрагмента текста. Смена вида окна и способа представления документа. Понятие фонта. Выбор фонта, кегля, начертания. Понятие параграфа (абзаца) документа. Форматирование текста: разбиение документа на абзацы, выравнивание текста, абзацные отступы. Понятие о стиле. Расположение информации на странице документа, изменение полей, ориентация. Подготовка документа к распечатке. Средства проверки документа, нумерация страниц. Просмотр твердой копии до ее печати. Включение формул в текст документа. Основные приемы работы с формульным редактором. Набор формул, содержащих скобки, дроби, индексы, знаки интегралов и сумм, дифференциалы, греческие буквы, векторные величины и специальные знаки. Изменение расстояния между фрагментами формул. Переход в текстовый режим. Изменение масштаба представления формул. Копирование фрагментов формул. Нумерация формул и их выравнивание.

 

Система LaTeX

Система верстки сложных научно-технических публикаций ТеХ/LaTeX. Макетирование страницы, набор и форматирование текста, набор формул. Работа с оболочкой ТеХ/LaTeX. Редактирование и компиляция. Предварительный просмотр распечатки.

 

Графические редакторы

Использование графического пакета для построения графиков как результатов численных расчетов пользовательской программы. Цепочка: расчетная программа, запись данных в файл, построение графика. Перенос графической информации в текстовый редактор Microsoft Word.

 

2. Программирование для Windows*

Особенности программирования для Windows. Многозадачная среда, сервер окон, механизм сообщений. Библиотека API. Структура Windows приложения. Главная функция WinMain. Цикл обработки сообщений. Функция окна. Пример простейшей программы для Windows. Новые псевдотипы. Ресурсы. Визуальное создание ресурсов. Меню окна как пример ресурса. Ссылка на опцию меню в тексте программы.

Каркас приложения для Windows. Главная функция. Описание и регистрация класса окна. Создание и отображение окна и его содержимого на экране терминала. Цикл обработки сообщений. Оконная функция. "Разборка" сообщений. Вывод информации в пользовательское окно. Выбор опций меню пользователем. Дополнительные параметры сообщений. Завершение работы программы.

Ввод данных. Диалог. Модальный и немодальный диалоги. Создание шаблона диалога в файле ресурсов. Стандартные управляющие элементы. Инициализация диалога в программе. Диалоговая функция. Основные обрабатываемые события: создание окна диалога, действия пользователя. Завершение диалога. Передача данных в программу. Ввод данных из файла. Файлы инициализации (ini-файлы) их структура. Получение целого числа или текстовой строки по заданному ключу. Сохранение текстовой строки по заданному ключу.

Графический режим монитора. Растр, пиксели. Оконные координаты. Вывод в рабочую область окна. Понятие контекста устройства. Вывод текста. Смена текущих атрибутов. Выбор цвета пера и кисти. Задание цвета. Графический курсор. Смена позиции графического курсора. Графические примитивы: точка, линия, эллипс, прямоугольник.

Реакция программы на ввод символа с клавиатуры. События мыши, определение координат. Программируемая задержка. События таймера. Основы анимации. Генерация события. Принудительное обновление окна или его части. Стандартный способ сохранения и обновления содержимого окна - "рисование в памяти".

Многопотоковое программирование. Потоковая функция. Синхронизация потоков. Семафоры.

Практикум на ЭВМ

На практических занятиях студенты выполняют зачетную работу по подготовке публикации к печати (с применением двух редакторов Microsoft Word и LaTeX), которая обязательно включает формульный набор, таблицы, список литературы и графики, подготовленные с помощью графического редактора. Также выполняются упражнения по программированию и зачетное задание по иллюстрации физических процессов средствами анимационной графики в среде визуального программирования под Windows.

III-й Семестр

В III-м семестре курса предусмотрены еженедельные практические занятия и семинары раз в две недели. На семинарских занятиях изучаются основы аналитических вычислений на компьютере применительно к решению физических задач, подробно рассматривается набор упражнений (общий для всех студентов) и обсуждаются возможные темы курсовых работ, которые должны быть сданы в следующем семестре (см. IV семестр). Для получения зачета необходимо выполнить набор упражнений и начать практическую работу над курсовым заданием.

Семинары

1. Аналитические и инженерные вычисления

Аналитические и инженерные вычисления на компьютере. Пакеты аналитических вычислений (компьютерной алгебры). Преимущества и недостатки численного анализа. Основные элементы визуального интерфейса пользователя в пакетах аналитических или инженерных вычислений. Набор, выполнение и отладка простейшей программы, базовые структуры пакета и языка программирования. Работа со структурами данных, с файлами. Вывод графической информации (2-х и 3-х мерной), компьютерная анимация результатов вычислений. Обзор возможностей пакета по численному анализу. Оформление программы. Основы решения задач физики с помощью пакетов аналитических или инженерных вычислений. Примеры: Нелинейный осциллятор. Модель дефекта в твердом теле: колебания неоднородной цепочки осцилляторов. Гармонический анализ электрических цепей.

2. Обсуждение типовых вариантов курсовых работ

Постановка задачи. Вывод основных уравнений. Безразмерные координаты. Методы численного анализа задачи. Способы ее решения с использованием пакета компьютерной алгебры. Основные особенности задачи, на которые следует обратить внимание при выполнении курсовой работы.

Практикум на ЭВМ

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

IV-й Семестр

В IV-м семестре курса предусмотрены только практические занятия раз в две недели. На них выполняется заключительная (курсовая) работа по курсу. В качестве нее студентам предлагается для компьютерного моделирования физическая задача (в общем случае произвольной тематики) и список литературы по этой теме. Примерные темы курсовых работ приведены ниже. Каждая курсовая работа должна состоять из моделирующей программы и собственно текста курсовой работы (отчета) - нескольких страниц описания теории, лежащей в основе задачи, методов решения, полученных результатов и сделанных выводов, списка литературы. Моделирующая программа может быть разработана как с использованием изучаемых в курсе языков программирования, так и с помощью пакетов компьютерной алгебры. Текст курсовой работы может быть подготовлен по желанию студента либо с помощью Microsoft Word, либо с помощью LaTeX. Для получения зачета необходимо сдать курсовую работу - продемонстрировать работу моделирующей программы и представить текст отчета, сделав акцент на анализе поставленной задачи средствами компьютерного моделирования. Рекомендуется публичная защита курсовых работ в студенческих группах.

Практикум на ЭВМ

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

ПРИМЕРНЫЕ ТЕМЫ КУРСОВЫХ РАБОТ

  1. Задача преследования цели
  2. Реактивное движение
  3. Движение в центральном поле
  4. Навигация на орбите: движение спутника в поле Земли
  5. Численное моделирование задачи Жуковского
  6. Нелинейные колебания: хаотическое поведение осциллятора
  7. Колебания мембраны
  8. Моделирование динамики небоскреба во время землятресения
  9. Моделирование динамики нескольких ионов в ловушке Пеннинга
  10. Моделирование работы геотермальной станции (уравнение теплопроводности)
  11. Силовые поля системы электрических зарядов
  12. Электростатическая линза
  13. Применение клеточных автоматов в физике
  14. Молекулярная динамика простых систем
  15. Рождение фрактальных структур в результате диффузии, ограниченной агрегацией
  16. Задача о перколяции (протекании)

РАСПРЕДЕЛЕНИЕ ЧАСОВ КУРСА

N
п/п

Учебный семестр

Всего
(час.)

Аудиторные занятия (час.)

В том числе

Лекции

Семинары

Практикум

 

I-й СЕМЕСТР

72

18

18

36

 

II-й СЕМЕСТР

48

-

16

32

 

III-й СЕМЕСТР

54

-

18

36

 

IV-й СЕМЕСТР

16

-

-

16

 

ИТОГО:

190

18

52

120

 

ФОРМЫ ИТОГОВОГО КОНТРОЛЯ

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

УЧЕБНО-МЕТОДИЧЕСКОЕ ОБЕСПЕЧЕНИЕ КУРСА

Рекомендованная литература

Основная

  1. В. Э. Фигурнов. IBM PC для пользователя. - М.: ИНФРА-М, 1996.
  2. Б. Керниган, Д. Ритчи. Язык программирования Си (пер. с англ.). - М.: Финансы и статистика, 1992.
  3. Ю. Тихомиров. Visual C++ 6. - Киев: BHV, 1998
  4. Турбо Паскаль. - Киев: BHV, 1996.
  5. А. Епанешников, В. Епанешников. DELPHI 4. Среда разработки: Учебное пособие. - М.: Диалог МИФИ, 1999.
  6. В. Соломенчук. Интернет: краткий курс. - СПб: Изд-во Питер, 2000.
  7. К. Фанештих, Р. Хаселир. Текстовый процессор Word для Windows 6.0. - М. 1994.
  8. С. М. Львовский. Набор и верстка в пакете LaTeX. - М.: Космоинформ, 1995.
  9. Д. Поттер. Вычислительные методы в физике (пер. с англ.). - М.: Мир, 1975.
  10. Х. Гулд, Я. Тоболчик. Компьютерное моделирование в физике. В 2-х частях (пер. с англ.) - М.: Мир, 1990.
  11. В. П. Дьяконов. Системы символьной математики Mathematica 2 и Mathematica 3. - М.: Изд-во "СК Пресс", 1998.

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

  1. М. Уэйт, С. Прата, Д. Мартин. Язык Си (пер. с англ.). - М.: Мир, 1988.
  2. Я. Белецкий. Энциклопедия языка Си. - М.: Мир, 1992.
  3. Г. Шилдт. Программирование на С и С++ для Windows 95 - К.: BHV, 1996.
  4. Д. Мюллер. Visual C++ 5 - Спб.: БХВ, 1999.
  5. В. В. Фаронов. Программирование на персональных ЭВМ в среде ТУРБО-ПАСКАЛЬ. - М.: Изд-во МГТУ, 1992.
  6. Э. Крол. Все об Internet (пер. с англ.) - Киев: BHV, 1995.
  7. С. Шатт. Мир компьютерных сетей (пер. с англ.) - Киев: DHV, 1996.
  8. Д. Е. Кнут. Все про TeX. - Протвино, РДТеХ, 1993.
  9. Р. П. Федоренко. Введение в вычислительную физику. - М.: Изд-во МФТИ, 1994.
  10. Д. В. Хеерман. Методы компьютерного эксперимента в теоретической физике (пер. с англ.). - М.: Наука, 1990.
  11. К. Биндер, Д. В. Хеерман. Моделирование методом Монте-Карло в статисттической физике (пер. с англ.). - М.: Наука, 1995.
  12. Д. Каханер, К. Моулер, С. Нэш. Численные методы и математическое обеспечение (пер. с англ.) - М.: Мир, 1998.
  13. Н. С. Бахвалов. Численные методы. - М.: Наука, 1975.
  14. Н. Н. Калиткин. Численные методы. - М.: Наука, 1978.

Устанавливаемая кафедрой

(Приводится в рабочей программе с включением литературы, издаваемой в ВУЗе или ВУЗах региона)

Рекомендованные для изучения компьютерные программы*

  1. Microsoft DOS/Windows (рекомендуются локализованные для России версии)
  2. Программы для работы с интернет: telnet, ftp, электронная почта, www-браузер (рекомендуется использовать встроенные в Microsoft Windows утилиты для работы по протоколам telnet и ftp, Microsoft Internet Explorer для работы с www; возможно также использовать Netscape браузер)
  3. Microsoft Visual C++/Borland Delphi
  4. Microsoft Office (Word) (рекомендуется локализованная для России версия)
  5. Пакет компьютерной верстки TeX/LaTeX (рекомендуется бесплатно распространяемый пакет MikTeX для работы под Win32; для работы с PostScript рекомендуется GhostScript/GhostView)
  6. Пакет для создания научной графики (рекомендуется пакет Microcalc Origin; может также использоваться бесплатно распространяемый пакет GnuPlot)
  7. Пакет компьютерной алгебры (рекомендуется пакет Mathematica 3.0/4.0; могут также использоваться другие пакеты, например, MathLab или MathCAD)

АВТОРЫ ПРОГРАММЫ

В. Н. Задков -

Доцент Московского государственного университета им. М.В.Ломоносова

С. А. Шленов -

Доцент Московского государственного университета им. М.В.Ломоносова

В. А. Антонюк -

Доцент Московского государственного университета им. М.В.Ломоносова

С. А. Филатова -

Доцент Московского государственного университета им. М.В.Ломоносова

Б. И. Волков -

Доцент Московского государственного университета им. М.В.Ломоносова