close

Вход

Забыли?

вход по аккаунту

?

5992.Информационные системы и технологии. Ч. 1

код для вставкиСкачать
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ
ФГБОУ ВПО
УФИМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ЭКОНОМИКИ И СЕРВИСА
Кафедра Информатики и
информационно-коммуникационных технологий
ИНФОРМАЦИОННЫЕ СИСТЕМЫ И ТЕХНОЛОГИИ
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
по выполнению лабораторной работы
«Основы векторно-матричных вычислений и
программирования в MatLab»
Часть 1
для студентов очной и заочной форм обучения
всех специальностей и направлений подготовки
УФА 2014 г.
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
Составитель: Баталов С.А.
УДК 004(076)
И88
Информационные системы и технологии. Часть 1. Основы векторноматричных вычислений и программирования в MatLab: методические
указания по выполнению лабораторной работы для студентов всех
специальностей и направлений подготовки / Сост.: С.А. Баталов – Уфа:
Уфимский государственный университет экономики и сервиса, 2014. - 48 с.
Приведены методические указания по использованию основных
инструментальных средств программной системы MatLab, элементарных
вычислений, основ программирования а также задания и вопросы для
самоконтроля.
Рецензент: канд. физ.-мат. наук, доцент. Коледина К.Ф.
© Баталов С.А., 2014
© Уфимский государственный университет
экономики и сервиса, 2014
2
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
Лабораторная работа
Основы векторно-матричных вычислений и
программирования в MatLab. Часть 1
Программная система (ПС) MatLAB (MATRix LABoratory – матричная
лаборатория) применяется для инженерных и научных расчетов в различных
областях деятельности. Она ориентирована на работу с большими массивами
данных в векторно-матричной и полиноминальной формах, что очень важно
для реализации математического аппарата при анализе и синтезе систем
управления (СУ). Наличие эффективных расширений позволяет ПС MatLab
выполнять символьные вычисления, обращаться к программам процедурного
стиля (Fortran, C и C++) и интерпретировать результаты вычислений в
графической форме. В ПРИЛОЖЕНИИ 1 приведены основные сведения о
структуре русскоязычной версии ПС MatLab 7.01.
Цель работы – ознакомление с основными инструментальными средствами и
расширениями ПС MatLab при математических расчетах, а также основами
программирования.
РАЗДЕЛ 1. Основы инструментальных средств MatLab
После запуска программы под ОС Windows появляется общий вид окна
программы, состоящее из трех вкладок - Командное окно (Command Window),
Текущий дневник (Command History) и вкладки просмотра рабочего
пространства (Workspace) (рис. 1).
Рис. 1. Общий вид окна программы MatLab
3
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
В приведенном примере рис. 1 показано, что приглашение ко вводу
команды в Command Window имеет вид >>. Команда «>>» выполняется после
набора операторов и последующем нажатии клавиши Enter. В таблице 1
представлены перечни команд основных режимов ПС MatLab (их можно найти
в справочной системе или специальной литературе).
Таблица 1. Перечни команд основных режимов ПС MatLab.
Задание 1. Выполните запуск ПС и ознакомьтесь с основными ее
режимами.
4
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
ПС MatLab в функции научного калькулятора
Основные константы и операторы
Константа – это предварительно определенное числовое или символьное
значение, представленное уникальными именем, например, числа 1,-2 и 123
являются безымянными числовыми константами (1, -2, 123). Другие виды
констант в MatLab принято называть системными переменными, т.к. они
задаются системой при ее загрузке и могут переопределяться. Оператор – это
специальное обозначение (например, «+» - плюс) для определенной операции
над данными – операндами. Функции – это имеющие уникальные имена
объекты, выполняющие определенные преобразования своих аргументов и
возвращающие результаты выполненных преобразований.
В ПС MatLab используются встроенные (внутренние) и внешние функции
(m-функции). Внешние функции содержат свои определения в m-файлах и
задание таких функций реализуются с помощью редактора m-файлов, которые
будут рассмотрены в более подробной форме. В таблице 2 представлены
арифметические операторы для выполнения арифметических вычислений.
Таблица 2. Арифметические операторы и функции MatLab
Функция
Наименование
Оператор Синтаксис
plus
плюс
+
М1+М2
uplus
унитарный плюс
+
+М
minus
минус
-
М1-М2
uminus
унитарный минус
-
-М
mtimes
матричное умножение
*
М1*М2
times
поэлементное умножение массивов
.*
A1*A2
mpower
возведение матрицы в степень
^
M1^x
power
поэлементное возведение массива в
степень
.^
A1^x
mlidivide
обратное (справо на лево) деление
матриц
\
М1\М2
5
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
mrdivide
деление матриц слева на право
/
М1/М2
idivide
поэлементное деление массивов справа
на лево
.\
A1.\A2
rdivide
поэлементное деление массивов с лева
на право
./
A1./A2
kron
тензорное умножение Кронекера
kron
kron(X,Y)
Задание 2. Выполните примеры простейших арифметических операций в
соответствии приведенным заданиям согласно условиям таблицы 3.
Таблица 3. Примеры выполнения простейших арифметических операций
Выражение
Результат
Выражение
Результат
3+8
>> 3+8
x= 25+17
>> x=27+19
ans =
x=
11
sin (1)
>> sin(1)
ans =
46
4,5 73,1410,4
2
0.8415
4.5^2*7-3.14*10.4
ans =
109.0940
Применение элементарных математических функций
Таблица 4. Примеры наиболее употребимых математических функций
exp(Z)
экспонента числа Z
sin(Z)
синус числа Z
log(Z)
натуральный логарифм
sinh(Z)
гиперболический синус
log10(Z)
десятичный логарифм
tan(Z)
тангенс
sqrt(Z)
квадратный корень из числа Z
cos(Z)
косинус
abs(Z)
модуль числа Z
cot(Z)
котангенс
ged
наибольший общий делитель
sec(Z)
секанс
6
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
lem
наименьшее общее кратное
acos(Z)
арккосинус (от 0 до )
legendre
обобщенная
Лежандра
rats
представление чисел в виде
рациональной дроби
floor(Z)
округление до ближайшего
целого
в
сторону
отрицательной бесконечности
fix(Z)
округление до ближайшего
целого в сторону нуля
ceil(Z)
округление до ближайшего
целого
в
сторону
положительной бесконечности
sign(Z)
вычисление
сигнумфункции (0 при Z=0, -1 при
Z<0, 1 при Z>0
round(Z)
округление
целого
ближайшего
rem(X,
Y)
Вычисление остатка
деления X на Y
cart2sph
преобразование
декартовых
координат в сферические
besselj
функция Бесселя первого
рода
pol2cart
преобразование
полярных
координат в декартовые
bessely
функция
рода
beta
бета-функция
gamma
гамма-функция
функция
до
Бесселя
второго
Примечание. Для получения других математических функций можно
обратиться к справочной системе или специальной литературе. В ПС MatLab
используются специфические особенности операторов в виде разделителей в
командном окне. Для записи длинных формульных выражений в конце строки
проставляется символ многоточия «…».
Применение оператора «:» (двоеточие) обусловлено необходимостью
формирования упорядоченных числовых последовательностей. Например, при
создании векторов или значений абсциссы при построении графиков в
следующем виде: Начальное_значение:Шаг:Конечное_значение
Если шаг не задан, то он принимает значение 1. В качестве примеров
приводятся результаты вычислений, как изображено на рис. 2.
Применение оператора «;» (точка с запятой) обусловлено
необходимостью использования имен переменных для записи промежуточных
результатов в память ПК. Для этого применяется операция присваивания по
следующей схеме: <имя переменной>=<выражение>[;].
7
от
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
Рис. 2. Примеры вычислений с использованием оператора «двоеточие»
На рис. 3 приведены результаты вычислений с оператором «;».
Рис. 3. Примеры вычислений с использованием оператора «;»
Задание 3. Выполните примеры простейших арифметических операций в
соответствии приведенным заданиям согласно условиям таблицы 3.
8
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
Технология работ с комплексными числами
Общее выражение для комплексного числа представляется в виде суммы
действительной и мнимой частей Z = Re(x) + Im(x)*i. В мнимой части
используется множитель i или j, представляющий корень квадратный из -1. На
рис.4 представлены примеры представления комплексных чисел в командном
окне ПС MatLab.
Рис. 4. Примеры представления комплексных чисел
Рассмотрим основные функции для вычислений комплексных чисел. При
использовании функции disp (дисплей) устанавливаеться возможность вывода
в командное окно результатов вычислений (текста) без указания имени
переменной.
На рис. 5 приведены фрагменты выполняемых арифметических операций
над комплексными числами.
Рис. 5. Примеры арифметических операций над комплексными числами
К основным функциям для работы над комплексными числами относятся:
real(z) – выделяет действительную часть комплексного аргумента z;
imag(z) – выделяет мнимую часть комплексного аргумента z;
abs(z) – вычисляет значение аргумента комплексного числа z;
angle(z) – вычисляет значение фазы комплексного числа z.
9
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
На рис. 6 представлены примеры использования перечисленных функций.
Рис. 6. Примеры использования стандартных функций
Примечание. Для очистки экрана в окне командного режима и
размещения курсора в левом верхнем его углу необходимо выполнить
операции >clc > enter.
Задание 3. Выполните примеры простейших операций с комплексными
числами.
Основы векторно-матричных исчислений
Представления векторно-матричных данных
В ПС MatLab одномерный массив чисел представляет собой вектор
(вектор-строку или вектор-столбец), а двухмерный массив – матрицу. Чтобы
задать вектор-строку из трех элементов необходимо перечислить их значения
в квадратных скобках, разделяя пробелами. Для задания матрицы требуется
указание нескольких строк, для разграничения которых используется знак «;»
(точка с запятой). На рис. 7 представлены простейшие операции ввода
векторов и матриц.
10
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
Рис. 7. Операции ввода векторов и матриц в систему
Для выделения отдельного элемента вектора или матрицы (в пересечении
строки и столбца из схемы рис. 7) используется выражение V(i) или M(I, j).
Для замены элемента матрицыиспользуется знак присваивания (рис. 8).
Рис. 8. Условия доступа и замены элемента матрицы
Задание 4. Выполните операции представления векторно-матричных
данных.
Получение матриц с заданными свойствами
Единичная матрица Е содержит в главной диагонали единичные
элементы, а остальные элементы принимают нулевые значения. При ее
создании используется функция eye с различными размерностями eye(n),
eye(size(A)). Рассмотрим пример использования eye(m n):
Матрица с единичными элементами получается на основе функции
ones. Рассмотрим пример использования ones(m n):
11
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
Матрица с нулевыми элементами получается на основе функции zeros.
Рассмотрим пример использования zeros (m n):
Линейный массив с равноотстоящими точками можно получить с
функцией linspace(a, b, n), где a и b – нижнее и верхнее раничные значения, n –
количество точек. Рассмотрим пример:
Определение вектора равноотстоящих в логарифмическом масштабе
точек реализуется с помощью функции logspace, что особенно эффективно
12
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
при создании вектора частот. Эта функция представляет
логарифмический эквивалент оператора «:» и функции linspace:
собой
logspace (a, b) или logspace (a, b, n) определяет 50 или n количества точек
между декадами 10a и 10b. logspace (a, π) используется в цифровой обработке
сигналов.
Все аргументы и функции logspace могут быть только скалярными
величинами, что иллюстрируется примером:
Массивы со случайными элементами определяются с помощью
функции randperm(n) при определении случайной перестановки целых чисел
1:n в вектор-строке, например:
Функция rand генерирует масивы случайных чисел, значения элементов
которых равномерно распределены в интервале от 0 до 1. Для определения
вектора с 35 элементами можно применить следующие формы этой функции:
rand(‘state’, s) – устанавливает в состояние s. Например:
13
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
Чтобы проверить равномерность распределения случайных чисел
графическим образом, необходимо использовать дополнительно функцию plot:
В результате исполнения этой программы получается графический объект
(рис. 9) с равномерно распределенными данными на плоскости.
Рис. 9. Интерпретация распределения координат точек на плоскости
Функция rand генерирует масив со случайными элементами,
распределенными по нормальному закону с нулевым математическим
ожиданием и среднеквадратическим отклонением, равным 1, например,
randn(n) позволяет определить матрицу размера n n, например:
14
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
Чтобы проверить распределение случайных чисел по нормальному закону
можно использовать гистограмму распределения большого количества чисел с
использованием следующих команд:
,
В результате строится гистограмма (рис.10) из 100 столбцов для 10 000
случайных чисел с нормальным распределением.
Рис. 10. Гистограмма для нормально распределенных чисел
Задание 5. Выполните операции получения матриц с заданными
свойствами.
15
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
Основные операции с матрицами
Операции конкатенации матриц
Определение конкатенации представляет собой объединение массивов,
как объединение малых матриц в большую матрицу, что можно
продемонстрировать на примере магической матрицы. Для такой матрицы
сумма элементов столбцов и строк являются одинаковыми.
Пусть для магической матрицы
необходимо построить матрицу, содержащую четыре матрицы
Полученная матрица имеет размер 66 и для вычисления суммы ее
столбцов необходимо выполнить операции:
Полученные суммы элементов столбцов для данной магической матрицы
являются одинаковыми. Рассмотрим операцию вычисления суммы элементов
столбцов при выполнении следующей команды:
16
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
В приведенном примере команда «(B.')» означает транспонирование
матрицы «В», то есть замену строк столбцами. В связи с тем, что полученные
суммы получились разными и поэтому матрица В не является магической. Для
получения магической матрицы необходимо выполнить команды:
Кроме этого, для магической матрицы одинаковой является сумма
элементов по основным диагоналям (главной диагонали и главной
антидиагонали).
Задание 6. Выполните операции объединения малых матриц в большую.
Операции удаления столбцов и строк матриц
Для выполнения ряда матричных операций возникает необходимость
удаления отдельных столбцов и строк матрицы. Рассмотрим эти операции на
примере матрицы М:
17
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
Для удаления второго столбца необходимо использовать оператор «:»
двоеточия при выполнении команды:
Для удаления второй строки также используется оператор «:» двоеточия
при выполнении команды:
Задание 7. Выполните операции удаления строк и столбцов матрицы.
Определение матриц с заданной диагональю
Для создания матриц с заданными
используются следующие функции:
диагональными
элементами
X=diag(v,k) – для вектора v, состоящего из n элементов определяет
квадратную матрицу Х порядка n+abs(k) с элементами v на k-й диагонали, при
k=0 – это главная диагональ, при k>0 – это диагональ, лежащая выше главной
диагонали при k<0 – это диагональ, лежащая ниже главной диагонали.
X=diag(v) – помещает вектор v на главную диагональ.
v=diag(X) и v=diag(X,k) – определяет главную диагональ матрицы Х или
вектор-столбец, состоящий из элементов k-й диагонали матрицы Х.
Рассмотрим это на следующих примерах:
18
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
Задание 9. Выполните операции создания матриц с заданной диагональю.
Способы перестановки элементов матриц
Для перестановок элементов матриц используются следующие виды
функций:
B=fliplr(A) – переставляет столбцы матрицы А зеркально относительно
вертикальной оси, например:
Рис. 11. Условия перестановки столбцов матрицы
B=flipud(A) - переставляет строки матрицы А зеркально относительно
горизонтальной оси, например:
19
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
Рис. 12. Условия перестановки строк матрицы
perms(v) – определяет матрицу Р, которая содержит все возможные
перестановки элементов вектора v, например:
Рис. 13. Условия создания матрицы при перестановке элементов вектора
Задание 11. Выполните операции перестановки элементов матрицы.
Выполнение матричных произведений
Для перемножения элементов матрицы используются следующие виды
функций:
prod(A) – определяет произведение элементов массива, если А – вектор,
или вектор строка, содержащая произведение элементов каждого столбца для
случая матрицы А;
prod(A, dim) – определяет матрицу (массив размерности два) с
произведением элементов массива А по столбцам (dim=1), по строкам (dim=2)
или по иным размерностям в зависимости от значения скаляра dim, например:
20
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
comprod(A) – определяет произведение с накоплением. Если А – вектор,
то она определяет вектор, содержащий произведения с накоплением вектора
А. Если А – матрица, то она определяет матрицу того же размера, что и А,
содержащую произведения с накоплением для каждого столбца матрицы А.
comprod(A,dim) – определяет произведение с накоплением элементов по
строкам или столбцам матрицы в звисимости от значения скаляра dim.
Например, comprod(A,1) дает прирост первому индексу (номеру строки),
выполняя умножение по столбцам матрицы А.
Рассмотрим это на следующем примере в иллюстрации рис. 14:
Рис. 13. Схема простых произведений элементов матрицы
К дополнительным видам функций этого назначения относятся:
cross(U,V) – определяет векторное произведение векторов U и V в
трехмерном пространстве;
cross(U,V,dim) – определяет векторное произведение векторов U и V по
размерности, определенной скаляром dim. Здесь U и V – многомерные
массивы, которые должны иметь одну и ту же размерность. Причем, размер
21
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
векторов в каждой размерности size(U,dim) и size(v,dim) должен быть равен
трем.
Рассмотрим эти положения на конкретном примере:
kron(X,Y) – вычисления тензорного произведения Кроннекера для
следующих видов матриц (рис. 14):
Рис. 14. Схема функций для выполнения произведений элементов
матрицы
Задание 12. Выполните операции произведений элементов матриц.
Суммирование элементов матриц
Для суммирования элементов матриц используются следующие виды
функций:
sum(A) – определяет сумму элементов массива, если А – вектор, или
вектор-строка, содержащая сумму элементов каждого столбца, если А –
матрица;
sum(A,dim) – определяет сумму элементов массива по столбцам (dim=1),
строкам (dim=2) или иным размерностям, в зависимости от значения скаляра
dim.
Рассмотрим это на конкретном примере:
22
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
Рис. 15. Результаты простейших суммирований элементов матрицы
cumsum(A) – выполняет суммирование с накоплением. Если А –вектор, то
она определяет вектор, содержащий результаты суммирования с накоплением
элементов вектора А. Если А – матрица, то она определяет матрицу того же
размера, что и А, содержащую суммирование с накоплением для каждого
столбца матрицы А;
cumsum(A,dim) - выполняет суммирование с накоплением элементов по
размерности, определенной скалярной величиной dim.
Рассмотрим простейшие примеры, как приведено на рис. 16:
Рис. 16. Результаты выполнения операций суммирования
Задание 13. Выполните операции суммирования элементов матриц.
Основные функции формирования матриц
Для формирования матриц, состоящих из других видов матриц,
используются следующие функции:
repmat(A,m,n) – получает матрицу В, состоящую из mn копий матрицы А
(в аналогии repmat(A,[m,n]));
repmat(A,n) - получает матрицу, состоящую из n n копий матрицы А;
23
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
repmat(A,[m n p…]) – формирует многомерный массив (mnp…),
состоящий из копий многомерного массива или матрицы А.
Рассмотрим пример их использования, как приведено на рис. 17.
Рис. 17. Результаты формирования матрицы
reshape(A,m,n)
–
получает
матрицу В
размерностью
сформированную из А путем последовательной выборки по столбцам.
mn,
reshape(A,m,n,p,…]) или В=reshape(A,[m n p…]) – формирует N-мерный
массив (mnp…) с элементами из А, но имеющий размер (mnp…).
reshape(A,size) - получает N-мерный массив (mnp…) с элементами из А,
но перестроенный к размеру, заданному с помощью вектора size.
Рассмотрим пример их использования, как приведено на рис. 18.
Рис. 18. Результаты формирования матрицы
Задание 14. Выполните операции формирования матрицы.
Операции с пустыми матрицами
Чтобы создать пустую ьатрицу можно использовать команду с пустыми
квадратными скобками при выполнении операций:
24
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
Можно ипользовать также функции zeros, ones, rand или eye для создания
пустых матриц заданного размера и выполнять над ними операции, как
показано на рис. 19:
Рис. 19. Пример работы с пустыми матрицами
Задание 15. Выполните технологии работ с пустыми матрицами.
25
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
Решение алгебраических уравнений
Для решения систем алгебраических уравнений используется одна из
форм функции solve:
solve(expr1,… exprN, var1…varN) – формирует значения переменных var,
при которых соблюдаются равенства, заданные выражениями expr;
solve(expr1,… exprN) – аналогична предшествующей, но переменные, по
которым ищутся решения, определяются функцией findsym.
Рассмотрим примеры в следующих инструкциях командного окна (рис. 20):
Рис. 20. Примеры решений алгебраических уравнений
Задание 16. Выполните
алгебраических уравнений.
простейшие
операции
вычислений
.
Решение систем линейных уравнений с комплексными
элементами
Решение систем линейных уравнений находит широкое применение в
матричных методах - при синтезе СУ в пространстве состояний, анализе
электрических цепей и др. На рис. 21 приведены примеры:
26
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
Рис. 21. Примеры решения уравнений
Задание 17. Выполните вычисления систем алгебраических уравнений.
Примеры математических операций с полиномами
Умножение и деление полиномов
Полиномы (степенные многочлены) являются широко известными
объектами математических вычислений в среде MatLab, например, при
определении нулей и полюсов передаточных функций СУ для вычисления
границ их устойчивости. Их выражение для целых и положительных n
представляется в следующем виде:
p(x) = a1xn + a2xn-1 + …+anx + an+1.
Рассмотрим функции умножения и деления полиномов или же свертку
двух входных векторов, в которых находятся коэффициентов полиномов, и
операцию обратную свертке.
w=conv(u,v) – формирует свертку векторов u и v; алгебраически свертка
представляет то же самое, что и произведение полиномов, чьи коэффициенты
являются элементами векторов u и v. При длине вектора u равным m и длине
вектора v равным n можно определить вектор w длиной m + n – 1, а его k-й
элемент вычислить по формуле
w(k )   u ( j )v(k  1  j ).
j
[q,r]=deconv(v,u) – формирует результат деления полинома v на полином
u; вектор q представляет собой частное от деления, а r – остаток от деления,
когда выполняется соотношение v = conv(u,q)
27
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
Задание 18. Выполните операции умножения и деления полиномов при
реализации следующих двух команд:
и также
>>f=[2,3,5,6]; d=[7,8,3]; r=conv(f,d)
>>t=[14,37,65,91,63,18]; r=[7,8,3]; [w,e]=deconv(t,r)
Вычисление производной полиномов и разложение их на простые
дроби
Для вычислений производной полиномов применяются следующие
функции
polyder(p) – формирует производную полинома р;
polyder(a,b) - формирует производную от произведения полиномов a и b;
[q,d]=polyder(b,a) – формирует числитель q и знаменатель d производной
от отношения полиномов b/a.
Задание 19. Выполните
реализации следующих команд:
операции
производной
полиномов
при
>>a=[3,5,8]; b=[5,3,8];dp=polyder(a)
>> dt=polyder(a,b)
>> [q,p]=polyder(b,a)
Для отношения полиномов b/a функция [r,p,k]=residue(b,a) формирует
вычеты полюса и многочлен целой части отношения b(s)/a(s).
Задание 20. Выполните операции разложения полиномов на простые
дроби при реализации следующих команд:
>> b=[4,3,1];a=[1,3,7,1]; [r,p,k]=residue(b,a)
>> [b1,a1]=residue(r,p,k)
РАЗДЕЛ 2. Основы программирования в ПС MatLab
ПС MatLab имеет один из лучших встроенных языков программирования
(проблемно-ориентированных) высокого уровня. Практически все описанные
выше операторы и функции являются средствами его программирования. Он
содержит все необходимые типовые средства программирования – условные
выражения, циклы, операторы ввода/вывода и т.п. Сессии в командном
режиме работы не сохраняются в памяти компьютера, а программы
сохраняются в виде текстовых м-файлов. При этом могут сохраняться как
целые программы в виде файлов-сценариев, так и отдельные программные
28
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
модули – функции. При этом важно, что программа может менять структуру
алгоритмов вычислений в зависимости от входных данных и данных в ходе
вычислений.
Язык ПС MatLab является проблемно-ориентированным языком
программирования высокого уровня интерпретирующего типа. Его можно
отнести к сверхвысокому уровню, т.к. он содержит сложные операторы и
функции, реализация которых на обычных языках (Бейсик, Паскаль, СИ)
потребовало бы много усилий и времени. К Подобным функциям можно
отнести матричные функции, функции быстрого преобразования Фурье и др., а
к операторам – операторы построения графиков, генерации матриц
определенного вида и др. Таким образом, программами в системе MatLab
являются m-файлы текстового формата, содержащие запись программ в виде
программных кодов. При этом язык программирования в ПС MatLab имеет
следующие средства:
 Данные различного типа; константы и переменные;
 Операторы, включая операторы математических выражений;
 Встроенные команды и функции; функции пользователя;
 Управляющие структуры; системные операторы и функции;
 Средства расширения языка.
Коды программ в ПС MatLab пишутся на языке высокого уровня, а язык
программирования является типичным интерпретатором. Поэтому каждая
инструкция программы распознается и тут же исполняется, что облегчает
обеспечение диалогового режима общения с системой. Причем, этап
компиляции инструкций и линковки (создания полной программы)
отсутствует. Интерпретация означает, что ПС MatLab не создает исполняемых
конечных программ в виде машинных кодов, т.к. программы существуют в
виде m-файлов. Для программ на языке ПС MatLab созданы компиляторы,
транслирующие программы MatLab в коды языков программирования С, С++.
Типы данных, виды программирования, двойственность
операторов, команд и функций
Обработка данных является важнейшей операций программирования,
решение которой связано с основными типами данных. В таблице 5 приведены
основные типы данных.
Таблица 5. Перечень основных типов данных
29
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
single
числовые массивы с числами одинарной точности
double
числовые массивы с числами удвоенной точности
char
строчные массивы с элементами-символами
logical
данные логического тира
sparse
разряженные матрицы с элементами-числами удвоенной
точности
cell
массивы ячеек
struct
массивы структур с полями, которые также содержат
массивы
Java classes
объекты Java-класса
fction_handle
дескрипторы функций, включающие:
in64, uint64
массивы 64-разрядных чисел со знаком и без знаков
int32, (16,8),
массивы 32(16 и 8)-разрядных чисел со знаком и без знаков
uint32(16,8)
ПС MatLab ориентирована на реализацию различного видов
программирования:
процедурного,
операторного,
функционального,
логического, структурного (модульного), объектно-ориентированного и
визуально-ориентированного. Двойственность заключается в том, что и
команды и программные операторы могут выполняться как из программы, так
и в режиме прямых вычислений. В этом аспекте функции используются для
преобразования одних данных в другие. Команды это средства, управляющие
например периферийным оборудованием, а операторы – средства,
выполняющие операции с операндами (данными).
В ПС MatLab (как в системе структурного программирования)
отсутствует нумерация строк программ, а также программного оператора
безусловного перехода Go To. Но используются управляющие структуры
следующих типов: условные выражения if…else…elseif…end, циклы for…end
и while end (она похожа на форму в языке Паскаль). Программирование
простых задач в ПС MatLab напоминает программирование на языке Бейсик.
30
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
Особенности создания m-файлов
Работа в режиме научного калькулятора в ПС MatLab основана на
использовании большого числа встроенных функций, имеет значительные
возможности, но обладает рядом недостатков. К основным из них относятся:
1) невозможность повтора предыдущих вычислений при новых значениях
данных; 2) нельзя вернуться назад и повторить некоторые действия; 3) при
большом количестве операторов проблематично отладить правильную их
работу и пр. Таким образом, сложные с прерываниями, запутанными
переходами по определенным условиям, с часто повторяемыми действиями
вычисления требуют их специального оформления в виде записанных на диске
файлов (т.е. в виде программ).
В языке MatLab имеются программы двух типов: 1) файлы-сценарии
(Scrip-файлы, или управляющие программы), не имеющие входных
параметров; 2) файл-функции (процедуры), имеющие входные параметры. Все
программы имеют расширение имен файлов .m. Любая последовательность
команд оформляется в виде М-файла (файл-функции или файлы-сценария) с
использованием редактора/отладчика. К основным особенностям записи
текста программы (М-файла) относятся следующие из них:

При размещении оператора в одной строке, признаком его завершения
является переход курсора на новую строку в результате выполнения
команды Enter.

При размещении нескольких операторов в одной строке необходимо
использовать между ними разделитель «;».

Длинный оператор можно записать в несколько строк, когда предыдущую
строку завершают многоточием «…».

Строка программы, начинающаяся с символом «%» не выполняется и
воспринимается системой как комментарий.

В М-файлах тсутствует оператор окончания текста программы.

В языке MatLab переменные не описываются и не объявляются, т.к.
любое новое имя, появляющее ся в тексте программы воспринимается как
имя матрицы.
31
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС

Имена переменных содержат только буквы латинского алфафита и цифры
и начинатся с буквы. Символы прописных и строчных букв можно
использовать для обозначения разных величин.
Рассмотрим особенности реализации m-файлов сценариев (script-файлов)
и функций.
Структура и свойства файлов сценариев
Файл-сценарий выражается простой записью серии команд без входных и
выходных параметров при иллюстрации следующей структуры:
%Основной комментарий
%Дополнительный комментарий
Тело файла с любыми выражениями
При этом файл-сценарии обладают следующими основными свойствами:
 Они не имеют входных и выходных аргументов;
 Функционируют с данными из рабочей области;
 При выполнении не компилируются;
 Представляют последовательность операций в виде файла, аналогичную
той, что используется в сессии.
Рассмотрим пример следующей реализации файл-сценария:
%Plot with color red
%Строит график синусоиды линией красного цвета
%выведенной масштабной сеткой в инте5рвале [xmin, xmax]
x=xmin:0.1:xmax;
plot(x, sin(x),’r’)
grid on
В этом листинге первые три строки являются комментарием, а остальные
– телом файла. После сохранения файла под именем pcr дальнейшую работу с
ним можно представить согласно схеме рис. 22. С помощью команды type pcr
можно вывести полный листинг файла. Причем такой файл нельзя запустить
без предварительной подготовки, сводящейся к заданию значений переменным
xmin и xmax, использованным в теле файла. В соответствии первому свойству
файл-сценарии работают с данными из рабочей области.
32
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
Рис.22. Технология работ с м-файлами
Переменные в файл-сценариях являются глобальными, т.е. они действуют
одинаково в командах сессии и внутри программного блока (которым является
файл-сценарий). При этом, заданные в сессии значения переменных
используются и в теле файла. Имена файл-сценариев не используются в
качестве параметров функций, т.к файл-сценарии не возвращают значений.
Таким образом файл-сценарий является простейшей программой на языке
программирования MatLab.
Задание 21. Выполните операции работ с м-файлами.
Структуры m-файла-функции, использование команды глобализации
и подфункций
С точки зрения структурного программирования м-файл-функция
является полноценным модулем, т.к. содержит входные и выходные
параметры, использует аппарат локальных переменных. Для одного выходного
параметра структуру модуля можно представить в следующем виде:
Function var=f_name (Список_параметров)
%Основной комментарий
%Дополнительный комментарий
Тело файла с любыми выражениями
var=выражение
33
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
Если выходных параметров больше одного, то они указываются в
квадратных скобках:
Function [var1,var2,…]=f_name (Список_параметров)
%Основной комментарий
%Дополнительный комментарий
Тело файла с любыми выражениями
var1=выражение
var2=выражение
…
Если переменные в файл-сценариях являются глобальными, то в файлфункциях – локальными. Однако передача данных из модуля в модуль
происходит через параметры, что сложно в планировании такой передачи.
Поэтому при создании файл-функций иногда используются глобальные
переменные. При выполнении команды global var1 var2… осуществляется
объявление переменных модуля-функции глобальными.
Подфункции объявляются и записываются в теле основных функций с
внутренними функциями, встроенными в ядро MatLab. Рассмотрим это на
следующем примере (см. рис. 23):
Рис. 23. Схема реализации подфункций
34
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
Задание 22. Выполните операции работ с подфункциями.
Примеры вычисления полиномов и их корней
Рассмотрим
polyval(р,х).
реализации
следующих
функций
poly(A),
poly(r)
и
Задание 23. Выполните и проанализируйте результаты вычислений
полиномов при выполнении следующих команд:
A=
2 3 6
3 8 6
1 7 4
>>d=poly(A)
>>A=[3,6,8;12,23,5;11,12,32]
>>poly(A)
>>p=[3,0,4,3];d=polyval(p,[2,6])
Для полинома вида c1sn+…+cns+cn+1 вычисляются корни (включая
комплексные) с помощью функции roots(c). Эта функция формирует векторстолбец, чьи элементы являются корнями полинома с.
Задание 24. Выполните и проанализируйте результаты вычислений
полиномов при выполнении следующих команд:
>>x=[7,45,12,23];d=roots(x)
Характеристика управляющих структур
В отличие от программ с линейной структурой, где инструкции
исполняются строго по порядку, в MatLab реализуются также и программы с
нелинейной структурой. Здесь ветви программ могут выполняться в
зависимости от условий, циклов, т.е. для программ с нелинейной структурой
необходимы управляющие структуры.
Реализация диалогового ввода.
Рассмотрим пример диалоговой программы в аналогии реализации
листинга в Бейсик-программе.
%Вычисление длины окружности с диалоговым вводом радиуса r = 0;
while r>=0,
35
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
r = input (‘Введите радиус окружности r =’);
if r >=0 disp('Длина окружности l=’); disp(2*pi*r), end
end
В результате можно обеспечить многократное вычисление длины
окружности по вводимому значению радиуса r. При выполнении команды
input вначале выводится запрос в виде строки, а затем программа
останавливается с ожиданием ввода значения радиуса с последующим
отжатием Enter.
Задание 25. Создайте по предлагаемой схеме m-файл с именем circ.m и
проследите его исполнение в комендном окне как >> circ.
Выполнение условных операторов и циклов
В общем виде условный оператор if записывается следующим образом:
if Условие
Инструкции_1
elseif Условие
Инструкции_2
else
Инструкции_3
end
Такая конструкция допускает несколько частных вариантов, например в
простейшем типе: if Условие Инструкция end. Пока Условие формирует
логическое значение 1 (истина), то выполняется Инструкции, составляющие
тело структуры if… end. При этом Инструкции в списке разделяются
оператором «, или ;». Когда условие не выполняется, то вырабатывается
значение 0 (ложь). В качестве Операторов_Отношения используются = =, <,>,
<=, >= , =.
Циклы типа for…end используются для организации вычислений с
заданным числом повторяющихся циклов, когда конструкция цикла имеет вид:
for var = Выражение, Инструкция,…, Инструкция end. Выражение обычно
записывается в виде s : d : e, где s – начальное значение переменной var, d –
приращение переменной и e – конечное значение управляющей переменной.
Например, для квадратов значений переменного цикла можно получить в
результате команды
36
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
>>for i = 1:5 i^2, end;
или же
>>for x = 0:.25:1 x^2, end;
В этом случае возможна реализация и вложенных циклов, например:
for i = 1:3
for j = 1:3
A(I,j)=i+j;
End
end
При выполнении этого цикла (файл for2.m) формируется следующая
матрица:
>>for2
>>А
Задание 26. Создайте по предлагаемой схеме реализацию формирования
условных операторов и циклов.
Циклы типа while…end и конструкции переключателя
Цикл типа while выполняется до тех пор, пока выполняется следующее
условие:
while Условие
Инструкции
end
При этом досрочное завершение циклов выполняется с помощью
операторов break или continue.
Для выполнения множественного выбора (ветвления) используется
конструкция с переключателем:
switch switch _Выражение
case case_ Выражение
Список_инструкций
case (case _Выражение 1, case _выражение2,…)
Список_инструкций
…
37
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
otherwise,
Список_инструкций
end
Эта программа в ответ на значение переменной var (номера
месяца) вычисляет, к какому кварталу относится заданный месяц, с
выводом сообщений при реализации команд:
>>var =2;
>>sw1
В MatLab используется также конструкция блока вывода ошибок,
реализуемая в следующей последовательности:
try,
Список_инструкций
…,
Список_инструкций
catch,
Список_инструкций
…,
end
Данная конструкция выполняет все списки конструкций.
Задание 27. Выполните примеры операций с циклами и конструкциями
переключателей.
Операторы и пустые матрицы в структурах
Рассмотрим особенности влияния операторов break, continue и return на
циклы for и while. В частности, оператор break может использоваться для
досрочного прерывания выполняемого цикла. При этом, как только он
встречается в программе, так цикл и прерывается, например:
for i = 1:10 i, if i = =5 break, end, end;
Оператор continue передает управление в следующую итерацию цикла,
пропуская операторы, которые записаны за ним. При этом во вложенном
цикле он передает управление на следующую итерацию основного цикла.
38
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
Рассмотрим пример, который обеспечивает подсчет числа строк в файле
magic:
fid = fopen(‘magic.m’,’r’); count = 0;
while feof(fid)
line = fget1(fid);
if isempty(line) | strncmp(line,’%’,1)
continue
end
count = count +1;
end
disp(sprintf(‘%d lines’,count));
25 lines
Оператор return обеспечивает нормальный возврат в вызывающую
функцию или в режим работы с клавиатурой, например:
function d = det(a)
%Det det(A) is the determinant of A.
if isempty(A)
d = 1;
return
else
…
end
В этом примере если матрица будет пустая, то будет выведено значение 1
и после этого управление будет передано в блок else… end.
В управляющих структурах if и while в качестве условия могут
применяться пустые матрицы, что способствует формированию логического
значения 0 (ложь), например:
A = ones (10, 0, 4);
if A Sl else S0 end
39
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
Задание 28. Выполните примеры операций с опереаторами и пустыми
матрицами.
Основы объектно-ориентированного программирования в
MatLab
Основные положения
В основе объектно-ориентированного программирования в MatLab лежат
три основных положения:
1) инкапсуляция – объединение данных и программ, передача данных
через входные и выходные параметры функций, когда в результате появляется
новый элемент программирования – объект;
2) наследование – возможность создания родительских объектов и новых
дочерних объектов, наследующих свойства родительских объектов; возможно
также множественное наследование;
3) полиморфизм – присвоение некоторому действию одного имени,
которое используется затем по всей цепочке создаваемых объектов сверху до
низу; каждый объект выполняет это действие присущим ему способом.
В MatLab используются следующие классы объектов:
double – числовые массивы с элементами – числами двойной точности;
sparse – двумерные числовые или комплексные разреженные матрицы;
char – массивы символов;
struct – массивы структур (записей);
cell – массивы ячеек;
javaarray – массивы Ява;
function_handle – дескрипторы функций.
Для создания новых классов объектов служат конструкторы классов,
являющиеся m – файлами, имена которых совпадают с именами классов
@Имя_класса. Символом @ помечаются поддиректории системы MatLab, в
которых имеются конструкторы классов. Множество директорий с примерами
конструкторов классов можно найти в поддиректориях MatLab/Toolbox. В
такой поддиректории можно найти более сотни объектов символьной
математики (Maple).
40
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
Для создания класса объектов (или объектов) и их идентификации служат
следующие формы применения функции class:
class (OBJ) – формирует класс указанного объекта OBJ;
OBJ=class (S,’class_name’,PARENT1,PARENT2,…) – создает объект
класса
’class_name’ на основе структуры S и родительских объектов
PARENT1,PARENT2,…
OBJ=class (struct[ ],’class_name’,PARENT1,PARENT2,…) – не может
иметь никаких полей, кроме унаследованных от родительских объектов.
Задание 29. Просмотрите конструктор
арктангенс с реализацией следующих команд
функции,
вычисляющей
>>help @sym/atan.m
>>type @sym/atan.m.
Использование handle- и inline-функции
В handle-функциях (дескрипторных функциях) могут использоваться все
объекты структурного программирования. Рассмотрим пример создания
handle-функции с именем fhsin для вычисления значения синуса:
>>[email protected] Чтобы выполнить вычисления handle-функции используется
команда feval(fhandle, a1, a2,…)
Задание 30. Выполните вычисления handle-функции в командной строке
>> feval (fhsin, 1) и постройте ее график с выполнением команды >> plot(feval
(fhsin, 0:.01:2*pi)).
К другому классу задаваемых функций пользователя относятся inlineфункции g= inline (expr) или g= inline (expr,n) или g= inline (expr,arg1,arg2,…),
где expr – выражение; arg1,arg2,… - аргументы.
Задание 31. Выполните вычисления inline –функции
>>sc2= inline(‘sin(x).^2+cos(y)^.2’)
ПРИЛОЖЕНИЕ 1.
Структура комплекса MatLab и Simulink
ПС MatLab ориентирована на работу с массивами данных, содержит
математический сопроцессор и допускает возможность обращения к
программам, написанных на языках Fortran, C и C++. Фактически она стала
международным стандартом учебного программного обеспечения в ведущих
41
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
университетах. В комплект поставки рассматриваемой русскоязычной версии
MatLab 7.01 входит главное расширение Simulink 6.0. В MatLab прежде всего
выделяется инструментальный ящик Toolbox, имеющий около сотни пакетов
расширений. Другая группа пакетов Blockset увеличивает возможности
системы визуально-ориентированного блочного моделирования динамических
систем в Simulink. + Simulink 6. При полной инсталляции системы в среде ОС
Windows XP объем занимаемой памяти ПК составляет порядка 3,2 Гбайт.
Матрицы являются основой автоматического составления и решения
уравнений состояния динамических объектов и систем. Примером программы,
выполняющей это, служит расширение MatLab – Simulink. Каждая из этих
взаимодействующих программных систем содержит дополнительные группы
пакетов расширения (рис. П1).
В систему MatLab входит инструментальный ящик Toolbox с числом
пакетов расширений, приближающимся к сотне. Другая большая группа
пакетов
Blockset
увеличивает
возможности
системы
визуальноориентированного блочного моделирования динамических систем Simulink.
MATLAB
Standalone
Application
Application
Delopment Tools
SIMULINK
Stateflow
Toolboxes
Blockets
Data
Sources
Data Access
Tools
Student
Products
Code Generation
Tools
C Code
MathWorks Partner
Products
Рис. П1. Структура системы MatLab + Simulink
Для новой версии MATLAB 7.01 было разработано 12 новых
расширения, к которым относятся:





Bioinformatics Toolbox 1.1;
Embedded Target for TI C2000(tm) DSP;
Fixed-Point Toolbox;
Genetic Algorithm and Direct Search Toolbox 1.0.1;
Link for ModelSim;
42
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС







Simulink Parameter Estimation;
Simulink Control Design;
Simulink Verification and Validation;
Filter Design HDL Coder;
OPC Toolbox;
RF Blockset;
RF Toolbox.
В состав MATLAB 7 + Simulink 6 вошло также около шести десятков
пакетов расширения, к основным из которых относятся:

























Communications Blockset 3;
Communications Toolbox 3;
Database Toolbox 3;
Filter Design Toolbox 3;
Financial Derivatives Toolbox 3;
Instrument Control Toolbox 2;
MATLAB Compiler 4;
Nonlinear Control Design Blockset;
Optimization Toolbox 3;
Signal Processing Blockset 6 (формально имя DSP Blockset);
Simulink Fixed- Point 5 (формальное имя Fixed- Point Blockset)
Simulink Response Optimization 2 (формальное имя Nonlinear Control Design
Blockset)
Stateflow 6;
Statistics Toolbox 5;
System Identification Toolbox 6.1;
Virtual Reality Toolbox 4;
Wavelet Toolbox 3;
Data Acquisition Toolbox 2.3;
Datafeed Toolbox 1.5;
Dials & Gauges Blockset 1.2;
Embedded Target For Infineon C166 Microcontrollers 1.1;
Embedded Target For Motorola HC12 1.1;
Excel Link 2.2;
Extended Symbolic Math Toolbox 3.1;
Financial Time Series Toolbox 2.1;
43
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС

















Financial Toolbox 2.4;
Fuzzy Logic Toolbox 2.1.3;
Image Acquisition Toolbox 1.5;
LMI Control Toolbox 1.01;
MATLAB Buider for Excel 1.2 (формальное имя MATLAB Excel Builder);
Model-Based Calibration Toolbox 2.1;
Mu- Analysis and Synthesis Toolbox 3.0.8;
Neural Network Toolbox 4.0.3;
Partial Differential Equation Toolbox 1.0.5;
Real-Time Windows Target 2.5;
Robust Control Toolbox 2.0.10;
Signal Processing Toolbox 6.2;
Sim Mechanics 2.2;
SimPowerSystems 3.1;
Simulink Accelerator 6;
Symbolic Math Toolbox 3.1;
xPC Target Box 2.5 и т.п.
Существенно переработаны 27 пакетов расширения, например:
 Communications Blockset;
 Communications Toolbox;
 Database Toolbox;
 (see Signae Processing Blockset;
 DSP Blockset;
 Filter Design Toolbox;
 Financial Derivatives Toolbox;
 Instrument Control Toolbox;
 Nonlinear Control Design Blockset’
 (see Smulink Response Optimization)’
 Optimization Toolbox;
 Signal Processing Blockset;
 Simulink Fixed Point;
 Simulink Response Optimization;
 Virtual Reality Toolbox;
 Wavelet Toolbox и др.
Кроме того, в MATLAB 7:
44
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
 Усовершенствованы редактор массивов и браузер рабочего пространства;
 Расширены возможности редактора М-файлов, теперь в нем можно
создавать программы не только М-кодах, но и на языках HTML. C/С++ и
Java;
 Улучшены возможности программирования и отладки программ;
 Применена улучшенная функция linsove для ускоренного решения
систем линейных уравнений с контролем структуры матрицы
коэффициентов;
 Улучшен решатель обыкновенных дифференциальных уравнений ODE,
позволяющий решать функциональные и импликативные
дифференциальные уравнения и задачи на многоточечные граничные
условия;
 Введен графический интерфейс для создания графиков с вводом М-кодов;
 Улучшена генерация М-кодов для графических построений,
осуществляемых пользователем или заданных программой;
 Введена интерфейсная панель для контроля над элементами ActiveX;
 Введена улучшенная поддержка для рендеринга Handle-графики и в……..
 Введен ряд Java-классов с рестартом системы MATLAB и т.д.
Среда разработки MATLAB 7 также существенно улучшена. В частности,
в них обеспечены следующие возможности:
 Новое средство Directory Reports позволяет сканировать М-файлы;
 Автоматизировано оформление М-кода в виде документов HTML.
 Введена новая функция Javaaddpath,позволяющая динамически
добавлять, убирать и перезагружать классы Java без перезапуска
MATLAB;
 реализован доступ к Web-службам с помощью протоколa SOAP (Simple
Object Access Protokol);
 добавлен FTP-объект для подключения к FTP-серверам и выполнения
удалѐнных файловых операций
 введена поддержка кодировки Unicode,обеспечивающая сохранение
корректности символьных данных в MAT-файлах при смене системно
кодовой страницы и др.
Порядок выполнения работы
1) Изучить возможности пакета программ MatLab на основе работы в
ее командном окне.
2) Освоить основы программирования в MatLab, включая:
45
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
 Данные различного типа; константы и переменные;
 Операторы, включая операторы математических выражений;
 Встроенные команды и функции; функции пользователя;
 Управляющие структуры; системные операторы и функции;
 Средства расширения языка.
Требования к отчету
Для
защиты
выполненной
работы
необходимо
пояснительную записку со следующим содержанием отчета:
1)
2)
3)
4)
5)
представить
Титульный лист.
Задание к лабораторной работе.
Постановка задачи.
Основные элементы выполняемых работ:
 название работы;
 цель работы;
 инструментарий;
 список своих данных для каждого задания;
 перечень используемых функций.
Выводы.
Контрольные вопросы для проверки
 С какими данными ориентирована работа ПС MatLab?
 Опишите структуру и состав ПС MatLab в стандартной поставке.
 Укажите с какими языками программирования интегрируется ПС
MatLab.
 Какие основные окна применяются в ПС MatLab и опишите их
предназначение.
 Дайте краткую характеристику команд в основных режимах ПС MatLab.
 Опишите основные арифметические операторы и функции ПС MatLab.
 Приведите примеры
функций.
использования элементарных
 Для чего используется оператор «:» двоеточия?
 Для чего используется оператор «;» точка с запятой?
46
математических
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
 В чем сущность технологии работ с комплексными числами?
 Как реализуются условия доступа и замены элементов матрицы?
 Опишите технологию получения матриц с заданными свойствами.
 Как реализуются основные операции с матрицами?
 Опишите особенности создания m-файлов.
 Какие функции используются для вычисления полиномов?
 .Каким образом реализуются управляющие структуры?
Литература
1. Баталов С.А. Информационные системы и технологии. – Уфа: УГАЭС,
2006. - 480 с.
Дьяконов В.П. MatLab 6,5SP1 + Simulink 5/6 в математике и
моделировании. В 4-х томах. – М.: Солон-Пресс, 2009.
2. Лавров К.Н., Цыплякова Т.П. Финансовая аналитика. MatLab 6,5. – М.:
Диалог-МИФИ / Под общ. Ред. К.т.н. В.Г. Потемкина, - 2010.
3. Черных И.В. Simulink. Средства создания инженерных приложений. –
М.: Диалог-МИФИ, 2008.
4. Сайт MathWorks (www.mathworks.com).
СОДЕРЖАНИЕ
РАЗДЕЛ 1. ОСНОВЫ ИНСТРУМЕНТАЛЬНЫХ СРЕДСТВ MATLAB .... 3
ПС MATLAB В ФУНКЦИИ НАУЧНОГО КАЛЬКУЛЯТОРА ................ 5
ОСНОВНЫЕ КОНСТАНТЫ И ОПЕРАТОРЫ .............................................................. 5
ПРИМЕНЕНИЕ ЭЛЕМЕНТАРНЫХ МАТЕМАТИЧЕСКИХ ФУНКЦИЙ .......................... 6
ТЕХНОЛОГИЯ РАБОТ С КОМПЛЕКСНЫМИ ЧИСЛАМИ ........................................... 9
ОСНОВЫ ВЕКТОРНО-МАТРИЧНЫХ ИСЧИСЛЕНИЙ ....................... 10
ПРЕДСТАВЛЕНИЯ ВЕКТОРНО-МАТРИЧНЫХ ДАННЫХ ........................................ 10
ПОЛУЧЕНИЕ МАТРИЦ С ЗАДАННЫМИ СВОЙСТВАМИ......................................... 11
ОСНОВНЫЕ ОПЕРАЦИИ С МАТРИЦАМИ ............................................ 16
ОПЕРАЦИИ КОНКАТЕНАЦИИ МАТРИЦ ............................................................... 16
ОПЕРАЦИИ УДАЛЕНИЯ СТОЛБЦОВ И СТРОК МАТРИЦ ........................................ 17
47
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
ОПРЕДЕЛЕНИЕ МАТРИЦ С ЗАДАННОЙ ДИАГОНАЛЬЮ.........................................18
СПОСОБЫ ПЕРЕСТАНОВКИ ЭЛЕМЕНТОВ МАТРИЦ ..............................................19
ВЫПОЛНЕНИЕ МАТРИЧНЫХ ПРОИЗВЕДЕНИЙ .....................................................20
СУММИРОВАНИЕ ЭЛЕМЕНТОВ МАТРИЦ.............................................................22
ОСНОВНЫЕ ФУНКЦИИ ФОРМИРОВАНИЯ МАТРИЦ ..............................................23
ОПЕРАЦИИ С ПУСТЫМИ МАТРИЦАМИ ...............................................................24
РЕШЕНИЕ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ .........................................................26
РЕШЕНИЕ СИСТЕМ ЛИНЕЙНЫХ УРАВНЕНИЙ С КОМПЛЕКСНЫМИ ЭЛЕМЕНТАМИ
................................................................................................................................26
ПРИМЕРЫ МАТЕМАТИЧЕСКИХ ОПЕРАЦИЙ С ПОЛИНОМАМИ .............................27
Умножение и деление полиномов ..............................................................27
Вычисление производной полиномов и разложение их на простые дроби
.............................................................................................................................28
РАЗДЕЛ 2. ОСНОВЫ ПРОГРАММИРОВАНИЯ В ПС MATLAB.........28
ТИПЫ ДАННЫХ, ВИДЫ ПРОГРАММИРОВАНИЯ, ДВОЙСТВЕННОСТЬ ОПЕРАТОРОВ,
КОМАНД И ФУНКЦИЙ ...............................................................................................29
ОСОБЕННОСТИ СОЗДАНИЯ M-ФАЙЛОВ ..............................................................31
Структура и свойства файлов сценариев................................................32
Структуры m-файла-функции, использование команды глобализации и
подфункций ........................................................................................................33
Примеры вычисления полиномов и их корней ...........................................35
ХАРАКТЕРИСТИКА УПРАВЛЯЮЩИХ СТРУКТУР .................................................35
Реализация диалогового ввода. ..................................................................35
Выполнение условных операторов и циклов .............................................36
Циклы типа while…end и конструкции переключателя .........................37
Операторы и пустые матрицы в структурах ........................................38
ОСНОВЫ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ В MATLAB .40
Основные положения ..................................................................................40
Использование handle- и inline-функции ...................................................41
ПРИЛОЖЕНИЕ 1. ............................................................................................41
СТРУКТУРА КОМПЛЕКСА MATLAB И SIMULINK.............................41
ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ .......................................................45
ТРЕБОВАНИЯ К ОТЧЕТУ ............................................................................46
КОНТРОЛЬНЫЕ ВОПРОСЫ ДЛЯ ПРОВЕРКИ ......................................46
ЛИТЕРАТУРА ...................................................................................................47
48
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
49
Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»
Баталов С.А. Проектирование ИС
Составитель: БАТАЛОВ Сергей Алексеевич
ИНФОРМАЦИОННЫЕ СИСТЕМЫ И ТЕХНОЛОГИИ
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
по выполнению лабораторной работы
«Основы векторно-матричных вычислений и
программирования в MatLab»
Часть 1
для студентов очной и заочной форм обучения
всех специальностей и направлений подготовки
Технический редактор: А.Ю. Кунафина
Подписано в печать
. Формат 60х84 1/16
Бумага писчая. Гарнитура «Таймс».
Усл. печ. л. 1. Уч.-изд. л. 2. Тираж 150 экз.
Цена свободная. Заказ № .
Отпечатано с готовых авторских оригиналов
на ризографе в издательском отделе
Уфимского государственного университета экономики и сервиса
450078, г. Уфа, ул. Чернышевского, 145, к. 227; тел.(347) 241-69-85.
50
Документ
Категория
Без категории
Просмотров
15
Размер файла
1 138 Кб
Теги
информационные, технология, система, 5992
1/--страниц
Пожаловаться на содержимое документа