Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МетодРук_ОММ.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
811.52 Кб
Скачать

Министерство образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

«ДОНСКОЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

ФАКУЛЬТЕТ «ПРИБОРОСТРОЕНИЕ И ТЕХНИЧЕСКОЕ РЕГУЛИРОВАНИЕ»

КАФЕДРА «ПРИБОРОСТРОЕНИЕ»

Рег. № ____________

Методические указания и задания к контрольной работе по курсу: ”Основы математического моделирования”

Адреса электронной версии программы__________

Ростов-на-Дону

2013

Составители: доцент, к.т.н. Мирошниченко В.Г.,

доцент, к.т.н. Авилов А.В.,

ст. преподаватель Сыроватка В.Н.

УДК 621.317.3

Автоматизированные системы обработки измерительной информации: Методические указания и задания контрольных работ/ ДГТУ, Рос­тов н/Д, 2013,12 с.

Программа и методические указания предназначены для студентов заоч­ной формы обучения специальности 190100 "Приборостроение" при изучении дисциплины "Основы математического моделирования4.

Содержатся задания к контрольным работам.

Печатается по решению методической комиссии факультета "Приборостроение"

Научный редактор: к.т.н., профессор В.Н. Ананченко

© Издательский центр ДГТУ, 2013

ОБЩИЕ ПОЛОЖЕНИЯ

Курс «Основы математического моделирования» основан на дисциплинах общетеоретического цикла, таких как высшая математика, физика, информатика и является базой для изучения специальных дисциплин.

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

В содержании курса входят следующие разделы:

  • Моделирование объекта с одной степенью свободы;

  • Моделирование объекта с несколькими степенями свободы;

  • Моделирование систем с распределенными параметрами:

  • Параболическое уравнение;

  • Волновое уравнение;

  • Математическая обработка результатов измерений.

Сведения, полученные при изучении курса, позволяют квалифицированно решить комплекс вопросов при проектировании новой измерительной аппаратуры.

Лабораторные работы выполняются с привлечением системы MatLab. Для выполнения контрольной работы также следует применять эту систему. При отсутствии у студентов возможности её использовать допускается проводить расчеты в системах Scilab и FreeMat, которые имеются в сети Интернет в свободном доступе и лишь незначительно отличаются от принятого в ДГТУ MatLabа

Теоретическая часть

В процессе проведения конструкторских работ или проектирования технологического процесса всегда требуется проведение математических расчетов. Решаемые в этих случаях задачи слишком сложны, чтобы можно было обойтись без привлечения математических пакетов. Одним из наиболее удобных для решения этих задач является MatLab (MATrix LABoratory) – интерактивный матрично-ориентированный пакет прикладных программ, предназначенный для решения научных и инженерных задач. Ти­пичное использование MatLab - это:

• математические вычисления;

• создание алгоритмов;

• моделирование;

• анализ данных, исследования и визуализация;

• научная и инженерная графика;

• разработка приложений, включая создание графического интерфейса.

Язык программирования системы MATLAB весьма прост, он содержит лишь несколько десятков операторов; незначительное количество операторов здесь компенсируется большим числом процедур и функций, содержание которых понятно пользователю, имеющему соответствующую математическую и инженерную подготовку.

Окна системы MatLab

После запуска п.п.п. MatLab на экране появляются четыре окна:

  1. Command Window (Командное окно) – в нем набираются команды, подлежащие немедленному исполнению. В нем же отображаются результаты выполненных команд, а также результаты работы программ, написанных на языке MatLab.

  2. Command History (История команд) хранит все команды, набранные пользователем.

  3. Workspace (Рабочее пространство) показывает текущий набор переменных, заданных пользователем в командном окне.

  4. Current Directory (Текущий каталог).

Программы, написанные на языке MatLab, набираются в специальном окне редактора Editor.

Основные типы данных

Основной объект системы MatLab - прямоугольный числовой массив (матрица), в котором допускается применение комплексных элементов. Использование матриц не требует явного указания их размеров.

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

>>A=[1 2; 3 4];

>>B=[8 7; 6 5];

>>C=A+B

C=

9 9

9 9

Знак “+” означает матричное сложение, то есть аргументы складываются по правилам матричной алгебры. То же самое касается операций вычитания, умножения и деления – эти операции выполняются по правилам матричной алгебры, которые в случае скалярных аргументов совпадают с правилами обычных арифметических вычислений. Размеры матриц аргументов при этом должны быть согласованы по правилам линейной алгебры. Для выполнения операции над матричными аргументами поэлементно следует использовать поэлементные операции: “.+”, “.-“, “.*”, “./”. Результатом поэлементной операции будет матрица, все элементы которой являются результатом этой операции над соответствующими элементами аргументов. Для операций сложения и вычитания матричные операции совпадают с поэлементными операциями, но для умножения, деления и возведения в степень (которое записывается как x^n) это уже не так:

>>A=[1 2; 3 4];

>>B=[8 7; 6 5];

>>C=A*B

C=

20 17

48 41

>>D=A.*B

D =

8 14

18 20

Матричное деление матрицы A на матрицу B в MatLab понимается как нахождение такой матрицы C=A/B, чтобы матрица C*B-A была бы наиболее близка к нулевой матрице в смысле некоторой нормы.

Ещё одна матричная операция, а именно транспонирование, записывается в MatLab так:

>>A.’

Если в этой записи точку перед апострофом не ставить, то вдобавок к транспонированию все элементы матрицы будут взяты с комплексным сопряжением. Здесь заметим, что комплексные числа используются в системе MatLab, и над ними можно производить все определённые для них вычисления. Комплексное число представляется как сумма действительной и мнимой части, формируемой при помощи специальной константы – мнимой единицы, которая после начала работы системы помещается одновременно в две ячейки – переменные i и j. Присваивать другие значения этим переменным можно, но не рекомендуется.

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

>>A=[2+3*i 1-7*j -4*i];

>>Re=real(A)

Re=

[2 1 0]

>>Im=imag(A)

Im=

[3 -7 -4]

Ещё одно полезное качество системы MatLab – возможность возвращать несколько результатов из одного вызова функции. Причём пользователь может сам определять, нужно ли ему получать все результаты или нет. Например, функции min и max могут возвращать не только минимальный или максимальный элемент вектора, но и его индекс (номер позиции в векторе):

>>a=[4 3 2 75 2];

>>max(a)

ans=

75

>>[m idx]=min(a)

m=

2

idx=

3

Если вызов функции производится без присваивания какой-либо переменной, то ответ помещается в специальную переменную ans, при этом она получает значение только первого из возвращаемых параметров. Чтобы получить значения остальных выходных параметров, необходимо в операторе присваивания зарезервировать под них переменные, как это показано в примере. Полученное значение индекса наименьшего элемента можно использовать для выбора соответствующего элемента из вектора. В общем случае запись A(m,n) означает выбор одного из элементов прямоугольной матрицы, стоящего на пересечении строки m и столбца n, а запись A(k) – выбор элемента, находящегося на позиции k из вектора, полученного записыванием по очереди всех столбцов матрицы в один вектор. Если же необходимо вычленить из матрицы A подматрицу, находящуюся на пересечении строк с i0 по i1 и столбцов с j0 по j1, то это можно сделать так: A(i0:i1, j0:j1). Запись i0:i1 означает вектор целых чисел от i0 до i1. Имеет место следующее обобщение: запись a0:a1:a2 в MatLab означает упорядоченный набор чисел, начинающийся с числа a0, образующих арифметическую прогрессию с шагом a1 и не превосходящих величину a2 (с нужной стороны, в зависимости от знака a1).

Ещё одно замечание – по умолчанию любая команда в системе MatLab приводит к отображению результата. Чтобы результат не выводился, достаточно завершить ввод команды точкой с запятой:

>>a=[1 2; 3 4]

a=

1 2

3 4

>>a;

>>b=[1 2; 3 4];

>>b

b=

1 2

3 4

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

Единичная матрица, то есть матрица имеющая единицы на главной диагонали и нулевые ос-тальные элементы, в MatLab обозначается eye, причем eye(n) есть единичная квадратная матрица размера nxn, eye(m,n) - прямоугольная единичная матрица размера mxn, а eye(size(A)) есть единичная матрица, имеющая размерность матрицы A. Например,

I = eye(3) I = eye (3,5) I = eye (4,2)

I = I = I =

1 0 0 1 0 0 0 0 1 0

0 1 0 0 1 0 0 0 0 1

0 0 1 0 0 1 0 0 0 0

0 0

Нулевая матрица, то есть матрица состоящая из нулей (массив нулей), в MatLab обозначается zeros, причем zeros (n) есть нулевая квадратная матрица размера nxn, zeros (m,n) - прямоугольная нулевая матрица размера mxn, а zeros (size(A)) есть нулевая матрица имею-щая размерность матрицы A.

Z = zeros(2,4)

Z =

0 0 0 0

0 0 0 0

Наконец, матрица состоящая из единиц (массив единиц), в MatLab обозначается ones, причем ones (n) есть квадратный массив единиц размера nxn, ones (m,n) – прямоугольный массив единиц размера mxn, а ones (size(A)) есть массив единиц, имеющий размерность матрицы A.

S = 5*ones(3, 3)

S =

5 5 5

5 5 5

5 5 5

Аналогично, функция rand дает возможность сформировать соответствующие массивы случайных чисел в диапазоне от 0 до 1, распределенных по равномерному закону, а функция randn – по нормальному закону.

N = fix(10*rand(1,10))

N =

4 9 4 4 8 5 2 6 8 0

R = randn(4,4)

R =

1.0668 0.2944 -0.6918 -1.4410

0.0593 -1.3362 0.8580 0.5711

-0.0956 0.7143 1.2540 -0.3999

-0.8323 1.6236 -1.5937 0.6900