Главная страница

Практикум по матлабу. практикум по матлабу. Физических процессов с использованием


Скачать 1.13 Mb.
НазваниеФизических процессов с использованием
АнкорПрактикум по матлабу
Дата21.06.2021
Размер1.13 Mb.
Формат файлаpdf
Имя файлапрактикум по матлабу.pdf
ТипУчебное пособие
#219898
страница1 из 17
  1   2   3   4   5   6   7   8   9   ...   17

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ
ФЕДЕРАЦИИ
НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ФИЗИЧЕСКИЙ ФАКУЛЬТЕТ
Г. Л. Коткин, В. С. Черкасский
КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ
ФИЗИЧЕСКИХ ПРОЦЕССОВ С ИСПОЛЬЗОВАНИЕМ
MATLAB
Учебное пособие
Новосибирск
2001

ББК 32.97:53
УДК 53.072
Коткин Г. Л., Черкасский В. С. Компьютерное моделирование физических процессов с
использованием MATLAB: Учеб. пособие / Новосиб. ун-т. Новосибирск, 2001. 173 с.
Данное учебное пособие является руководством для компьютерного практику- ма.
Предназначено для студентов физического факультета НГУ, но может быть ру- ководством по использованию пакета MATLAB студентами и исследователями других специальностей.
Подготовлено при содействии Федеральной целевой программы “Государствен- ная поддержка интеграции высшего образования и фундаментальной науки на 1997-
2000 годы”, проект N274.
Рецензент
кандидат технических наук Ю.М.Прокопьев
Печатается по решению методической комиссии физического факультета НГУ.
c
Новосибирский государственный
университет, 2001

Предисловие
Практикум «Компьютерное моделирование физических процессов» под тем или иным названием действовал на физического факультета НГУ более 20 лет. В на- стоящее время в связи с существенным изменением компьютеров произошел прак- тически полный переход на новую операционную среду с графическим интерфей- сом (типа Windows-95). Это предопределило изменения, которые были внесены в практикум. Перед нами стояла задача, не разрушая того полезного, что было нара- ботано в практикуме за годы его эксплуатации, перейти на работу в новой операци- онной среде и расширить круг задач, которые решаются в практикуме. Кроме того,
практикум предназначен студентам, уже имевшим дело с компьютером и знакомым с основными понятиями программирования.
Данное пособие представляет собой существенно переработанное и дополнен- ное пособие, ранее изданное в НГУ [
1
], которое, в свою очередь, являлось объ- единением двух работ: Израйлев Ф.М.,Коткин Г.Л., Фрумин Л.Л., Эйдельман
С.И. Моделирование физических процессов и явлений. Новосибирск, НГУ, 1986;
Коткин Г.Л., Фрумин Л.Л. Моделирование физических явлений: Практикум. Но- восибирск, НГУ, 1992.
Существенным отличием данного варианта практикума является использование не универсального языка программирования (как Фортран или Паскаль), а спе- циальной системы MATLAB фирмы MathWorks, созданной для облегчения ре- шения инженерных и научных задач. Поскольку данная система является относи- тельно новой и литература по ней весьма ограничена [2-6], в настоящем пособии она будет описана отдельно. Следует сказать, что эта система является Windows- ориентированной
1
, интерактивной, допускающей режим непосредственных вычис- лений как численного, так и аналитического характера, а также режим программи- рования на специальном языке программирования, работающем в режиме интер- претации. Для решения основных задач курса студентам предлагаются заготовки,
которые решают простейшие вопросы и могут служить основой для доработки и усложнения соответствующих моделей. Эти заготовки доступны в виде исходных текстов – так называемых m-файлов.
В предлагаемых задачах затронуты разные подходы к моделированию. Это ис- следование моделей, движение в которых определяется обыкновенными дифферен- циальными уравнениями (задачи «МАЯТНИК», «ПЛАНЕТА», «ДИОД»), ме- тод Монте-Карло («СЛУЧАЙНЫЕ БЛУЖДАНИЯ», «БРОУНОВСКОЕ ДВИ-
ЖЕНИЕ», «ПОТЕРИ ПУЧКА»), молекулярная динамика («ШАРЫ»).
1
Есть версии MATLABи в операционной системе UNIX.
3

Из важных и популярных объектов моделирования опущены задачи, связан- ные с уравнениями в частных производных, и задачи о фрактальных структурах:
практикум рассчитан на ограниченное время.
При выполнении каждого из заданий за основу удобно брать соответствующие простейшие программы, входящие в пакет MPP(Modeling of Physics Phenomena),
специально подготовленный для этого практикума. Объединять программы, реали- зующие разные задания одной задачи, в одну большую программу не стоит.
Отчет студента – это действующая программа, которая демонстрируется пре- подавателю на месте (плюс ответ на вопросы по физике, решаемые с ее помощью).
Письменный отчет при этом не требуется.
1.
Введение
1.1.
Зачем нужен такой практикум?
Основные применения компьютеров в физических исследованиях – это управле- ние экспериментом (данного вопроса мы не касаемся) и моделирование
2
. Цель практикума – ознакомить студентов с некоторыми методами создания и иссле- дования моделей физических явлений. Одновременно происходит изучение языка программирования MATLAB (не в полном объеме, но сразу же на уровне «раз- говорного»).
Разумеется, работа с моделями не может привести к открытию совершенно но- вого явления, скажем, элементарной частицы с неожиданными свойствами. Од- нако именно компьютерное моделирование привело, например, к возникновению нового взгляда на интересное и сложное явление – турбулентность. Кстати, и в работах, приводящих к открытию новых элементарных частиц и исследованию их свойств, моделирование не только используется на этапе проектирования экспе- риментальных установок, но и является непременной составной частью обработки экспериментальных данных. Расширяется применение компьютерного моделиро- вания в технике. Наконец, моделирование может оказать заметную помощь сту- денту в изучении физики.
1.2.
О чем сказано далее
В пп.
1.3
,
1.4
«Введения» кратко сказано о системе MATLAB. Возможно, вы уже имели дело с программированием или использовали какую-либо систему научных
2
Разумеется, существует также необходимая «организационная» работа – поиск в ком-
пьютерных сетях полезной информации, редактирование текстов и т.п.
4
расчетов и моделирования (например, MathCad) и не нуждаетесь в «популярных»
объяснениях. Тогда достаточно только просмотреть эти пункты. С приложениями следует знакомиться при необходимости.
Физическую постановку задач, методы их решения и рекомендуемые к выпол- нению задания можно найти в разделах, относящихся к соответствующим задачам.
1.3.
О системе MATLAB
Система MATLAB (MATrix LABoratory) давно и успешно разрабатывается фир- мой MathWorks. Эта система создана для работы в среде Windows 3.1 (версия 4
и 4.2) и в среде Windows-95(98) (версии начиная с 5.0). Система представляет собой интерактивную среду для вычислений и моделирования, причем она может работать как в режиме непосредственных вычислений, так и в режиме интерпрета- ции написанных программ. Если вы находитесь в системе MATLAB, то, набрав в ответ на приглашение текст
>> y=sin(0.125)
и завершив его нажатием клавиши ENTER , получите в ответ
y=
0.1247
>>
После ввода команды непосредственного вычисления система «интерпретирует»
введенные инструкции и осуществляет вычисление. Результат сразу выводится на экран. Помимо обычных алгебраических вычислений система имеет большой набор встроенных функций (см. Приложение
E
), а также имеется возможность созда- вать свои собственные функции. Библиотеки функций (кроме встроенных) пред- ставляют собой специальные директории, в которых хранятся файлы с текстами функций. Эти тексты интерпретируются системой при обращении к ним и могут использоваться как образцы для написания своих функций.
Имеется также целый набор библиотек, позволяющих строить на экране 2-и 3- мерные изображения. Именно графическое представление результатов делает на- ши исследования чрезвычайно эффективными. Кроме того, имеется библиотека,
которая обеспечивает удобное управление исполнением программ. Краткое описа- ние этих и некоторых других библиотек приведено в Приложении
E
5

1.4.
Немного о работе с системой MATLAB
После того как вы кликнули на иконке MATLAB, перед вами появится экран, в верхней части которого имеется строка с выпадающими меню, инструментальная панель с кнопками, реализующими наиболее часто выполняемые действия (рис.
1
),
и в самом окне - строка запроса в виде двух знаков >>. Это командное окно
MATLAB
Рис. 1. Инструментальная панель командного окна
Стандартное выпадающее меню File содержит такие пункты, как New для со- здания новых файлов, Open M-file -открытие существующего файла-программы или файла-функции для редактирования, проверки текста или отладки. При ис- пользовании этого пункта вам предлагается стандартное окно выбора файлов, а по- сле выбора необходимого файла открывается окно редактора/отладчика m-файлов.
Подробнее об m-файлах будет сказано далее, сейчас же достаточно знать, что так называются текстовые файлы с расширением .m, содержащие тексты программ- сценариев или тексты функций из стандартных или собственных библиотек. В ре- дакторе их можно исправлять, устанавливать точки остановки для отладки, но сле- дует помнить, что для того, чтобы новый, исправленный вариант функции или про- граммы вступил в силу, необходимо стандартным образом (через меню редактора
File или с помощью соответствующей кнопки на панели инструментов редакто- ра/отладчика) сохранить измененный файл.
Инструментальная панель (см. рис.
1
) командного окна позволяет выполнять требуемые действия простым нажатием на соответствующую кнопку. Большин- ство кнопок имеют стандартный вид и выполняют стандартные, подобные другим программам действия -это копирование (Copy), открытие файла (Open), печать
(Print) и т.д. Следует обратить внимание на кнопку Path Browser, которая позво- ляет прокладывать пути к разным директориям и делать необходимую директорию текущей, а также на кнопку Workspace Browser, позволяющую просматривать и редактировать переменные в рабочей области.
Команда
help, набранная в ответ на запрос, завершаемая нажатием клавиши
6

Enter
3
, или кнопка инструментальной панели со знаком вопроса позволяет полу- чить список функций, для которых доступна оперативная помощь. Команда
help
<имя_функции> позволяет получить на экране справку по конкретной функции.
Например, команда
help eig позволяет получить оперативную справку по функ- ции
eig -функции вычисления собственных значений матрицы. С некоторыми возможностями системы MATLAB можно познакомиться с помощью команды
demo.
В этом кратком введении следует отметить, что основные объекты – перемен- ные, с которыми работает MATLAB, – это прямоугольные матрицы. Это дает возможность записывать программы очень кратко, делает прораммы легко обо- зримыми. Предусмотрено множество операций, выполняемых над матрицами. Ра- зумеется, запись таких операций, как умножение и сложение матриц, следует за- помнить. Изучать же и запоминать все возможности «впрок», до того, как они понадобятся, бессмысленно.
Если необходимо прервать работу, но сохранить все созданные в рабочей обла- сти переменные, то проще всего это сделать с помощью команды
save <имя_файла>.
Все переменные в двоичном виде сохраняются в файле <имя_файла>.mat. Впо- следствии, при повторной загрузке системы можно загрузить всю рабочую область с помощью команды
load <имя_файла> и продолжить вычисления с того же ме- ста. Для очистки рабочей области используется команда
clear без аргументов, и в этом случае очищается вся область от всех переменных. Если команда
clear со- провождается списком переменных, разделенных пробелами, то удаляются только перечисленные переменные.
Для завершения работы в системе используется команда
quit или пункт меню
File/exit.
2.
Первые задачи
2.1.
Фигуры Лиссажу
Начнем с очень простой задачи – построить на экране график функции, заданной параметрически:

x
= a
1
· cos(ω
1
t
)
y
= a
2
· cos(ω
2
t
)
3
Далее везде, где это не будет специально оговорено, предполагается, что любая коман-
да, вводимая с клавиатуры в режиме непосредственного вычисления, завершается нажатием
клавиши Enter .
7

Если отношение ω
1

2
-число рациональное, то такая кривая называется фи- гурой Лиссажу. Скорее всего, такие кривые вы неоднократно видели на экране осциллографа.
Приведенный далее текст представляет собой протокол работы с системой MAT-
LAB, полученный при решении поставленной задачи в режиме непосредственного вычисления. Для получения протокола и сохранения его в виде файла использу- ется команда
diary <имя_файла>. Такой протокол может быть полезен для последующего анализа решения, а также при небольших доработках может быть использован как основа для написания программы-сценария для последующего ре- шения подобных задач. В системе MATLAB часть строки, следующая за знаком
%, является комментарием , т.е.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Изображение кривой, заданной параметрически
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Задание амплитуд и частот
>> a1=1.2; % Точка с запятой после оператора
>> a2=1.0; % обеспечивает отсутствие вывода
>> w1=1.5; % результата действия оператора
>> w2=1.0;
% Оператор whos позволяет в любой момент получить
% полную информацию о всех активных переменных.
% Все переменные введенные в данном сеансе, остаются
% активными, если их не удалили оператором clear.
>> whos
Name
Size Elements Bytes Density Complex
a1
1 by 1
1
8
Full
No
a2
1 by 1
1
8
Full
No
w1
1 by 1
1
8
Full
No
w2
1 by 1
1
8
Full
No
Grand total is 4 elements using 32 bytes
% Часть программы, относящаяся к оператору whos,
% приведена здесь только для ознакомления с его действием.
% Обратите внимание, что постоянные трактуются как матрицы
% размерности 1x1.
% Оператор задания вектора значений t
8

>> t=0:0.1:3.2;
% Вычисление векторов x, y
>> x=a1*cos(w1*t);
>> y=a2*cos(w2*t);
% Построение графика y(x)
>> plot(x,y);
В принципе на этом можно было бы и закончить, потому что по команде
plot(x,y)
будет нарисована искомая кривая. Точки с координатами
(x(i), y(i)), (x(i+1),
y(i+1)) соединяются отрезками прямых. При этом происходит автоматический подбор удобного масштаба. Масштабные метки и числа при них изображаются на границах рамки, а изображение осей координат не предусмотрено.
Следует сделать несколько замечаний. Обратите внимание на способ задания вектора
t. Дело в том, что знак : (подробнее см. Дополнение, п.
2.2
) является од- ним из важнейших в синтаксисе языка MATLAB. Поставленный между двумя числами, он задает вектор, компоненты которого принимают значения от меньшего числа до большего с шагом 1. Например, оператор
x=4:15 задает целочисленный вектор
x=[4 5 6 7 8 9 10 11 12 13 14 15]. Кстати, такое явное задание вектора
(с помощью квадратных скобок) тоже допускается. Если значения компонент век- тора отличаются не на 1, то их можно задать с помощью указания шага, например,
так:
t=0:0.1:3.2, что и было сделано в программе.
Написанные далее два оператора (присвоение соответствующих значений
x и
y) демонстрируют еще одну особенность языка MATLAB: основными объекта- ми, с которыми он оперирует, являются матрицы и векторы (многомерные). За- писанные таким образом функции (в данном примере -
cos) вычисляют значение функции для каждого элемента вектора (или матрицы) аргумента и присваивают их соответствующим элементам вновь создаваемого вектора.
Эта и ряд подобных особенностей позволяют записывать алгоритмы на языке
MATLAB в очень компактном виде. Подробнее возможности работы с векторами и матрицами описаны в Дополнении, п.
2
Получив соответствующий рисунок, мы обнаруживаем, что нарисована лишь часть кривой, во всяком случае она не имеет привычный вид фигуры Лиссажу. По- пробуем расширить диапазон вычисления и вывода кривой. Можно заново набрать написанный ниже текст, а можно воспользоваться буфером команд, который име- ется в системе. Нажав необходимое число раз клавишу
, вы получите в строке вво- да одну из предыдущих команд, которую можно редактировать с помощью стрелок и клавиш Del, BkSp, а также вставлять необходимые символы. После редактиро- вания и соответствующего вычисления наш протокол будет выглядеть следующим
9
образом.
>> t=0:0.1:10;
>> x=a1*cos(w1*t);
>> y=a2*cos(w2*t);
>> plot(x,y);
Полученный в этом примере график будет иметь вид, показанный на рис.
2
Представляет интерес получить
 




 




Рис. 2. Пример кривой Лиссажу различные графики при различных значениях параметров. Если вам не- обходимо просто нарисовать еще од- ну кривую с другими параметрами,
то проще всего в том же сеансе при- своить им новые значения и снова повторить последовательность вы- числений и вывод графика. Такой метод работы удобен при необхо- димости разовых вычислений, но ес- ли вы хотите исследовать зависи- мость получаемой кривой от пара- метров, то представляет интерес научиться делать это систематически.
Задание 1.
Используя возможность повторять выполнение операторов без их повторного набора (клавиша
), выполните вычисление и построение фигур
Лиссажу для разных отношений ω
1

2
и для разных значений амплитуд a
1
и
a
2
Для дальнейшей работы удобнее перейти к программе-сценарию. Так называется файл с расширением
  1   2   3   4   5   6   7   8   9   ...   17


написать администратору сайта