
- •Теоретическая часть
- •Окна системы MatLab
- •Основные типы данных
- •Форматы.
- •Операторы отношения
- •Операторы отношения и массивы
- •Операторы отношения и пустые массивы
- •Логические операторы
- •Использованием логических операторов с массивами
- •Логические функции
- •Приоритеты операторов
- •Команды управления данными (Flow Control)
- •Команды if, else, and elseif
- •Команда switch
- •Команда while
- •Команда for
- •Команда break
- •Команда return
- •Двумерная графика.
- •Задание на контрольную работу.
- •Статистическая обработка данных.
- •Приложение
- •Рекомендуемая литература:
Министерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«ДОНСКОЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
ФАКУЛЬТЕТ «ПРИБОРОСТРОЕНИЕ И ТЕХНИЧЕСКОЕ РЕГУЛИРОВАНИЕ»
КАФЕДРА «ПРИБОРОСТРОЕНИЕ»
Рег. № ____________
Методические указания и задания к контрольной работе по курсу: ”Основы математического моделирования”
Адреса электронной версии программы__________
Ростов-на-Дону
2013
Составители: доцент, к.т.н. Мирошниченко В.Г.,
доцент, к.т.н. Авилов А.В.,
ст. преподаватель Сыроватка В.Н.
УДК 621.317.3
Автоматизированные системы обработки измерительной информации: Методические указания и задания контрольных работ/ ДГТУ, Ростов н/Д, 2013,12 с.
Программа и методические указания предназначены для студентов заочной формы обучения специальности 190100 "Приборостроение" при изучении дисциплины "Основы математического моделирования4.
Содержатся задания к контрольным работам.
Печатается по решению методической комиссии факультета "Приборостроение"
Научный редактор: к.т.н., профессор В.Н. Ананченко
© Издательский центр ДГТУ, 2013
ОБЩИЕ ПОЛОЖЕНИЯ
Курс «Основы математического моделирования» основан на дисциплинах общетеоретического цикла, таких как высшая математика, физика, информатика и является базой для изучения специальных дисциплин.
Изучение данного курса имеет своей целью научить правильно выбирать методы и средства синтеза математических моделей при проведении конструкторских работ и технологической подготовке производства, оценить характеристики проектируемых устройств и технологических процессов на стадии проектирования.
В содержании курса входят следующие разделы:
Моделирование объекта с одной степенью свободы;
Моделирование объекта с несколькими степенями свободы;
Моделирование систем с распределенными параметрами:
Параболическое уравнение;
Волновое уравнение;
Математическая обработка результатов измерений.
Сведения, полученные при изучении курса, позволяют квалифицированно решить комплекс вопросов при проектировании новой измерительной аппаратуры.
Лабораторные работы выполняются с привлечением системы MatLab. Для выполнения контрольной работы также следует применять эту систему. При отсутствии у студентов возможности её использовать допускается проводить расчеты в системах Scilab и FreeMat, которые имеются в сети Интернет в свободном доступе и лишь незначительно отличаются от принятого в ДГТУ MatLabа
Теоретическая часть
В процессе проведения конструкторских работ или проектирования технологического процесса всегда требуется проведение математических расчетов. Решаемые в этих случаях задачи слишком сложны, чтобы можно было обойтись без привлечения математических пакетов. Одним из наиболее удобных для решения этих задач является MatLab (MATrix LABoratory) – интерактивный матрично-ориентированный пакет прикладных программ, предназначенный для решения научных и инженерных задач. Типичное использование MatLab - это:
• математические вычисления;
• создание алгоритмов;
• моделирование;
• анализ данных, исследования и визуализация;
• научная и инженерная графика;
• разработка приложений, включая создание графического интерфейса.
Язык программирования системы MATLAB весьма прост, он содержит лишь несколько десятков операторов; незначительное количество операторов здесь компенсируется большим числом процедур и функций, содержание которых понятно пользователю, имеющему соответствующую математическую и инженерную подготовку.
Окна системы MatLab
После запуска п.п.п. MatLab на экране появляются четыре окна:
Command Window (Командное окно) – в нем набираются команды, подлежащие немедленному исполнению. В нем же отображаются результаты выполненных команд, а также результаты работы программ, написанных на языке MatLab.
Command History (История команд) хранит все команды, набранные пользователем.
Workspace (Рабочее пространство) показывает текущий набор переменных, заданных пользователем в командном окне.
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