Лабораторная работа №1. Знакомство с средой MATLAB (1184919)
Текст из файла
Лабораторная работа №1. Знакомство с средой MATLAB
1. Теоретическая часть
1.1. Интегрированная среда MATLAB
После запуска MATLAB перед Вами откроется окно (рабочий стол), приведенное на рис. 1.1. Внутри окна находятся инструменты системы MATLAB, предназначенные для управления переменными, файлами и приложениями системы:
командное окно, предназначенное для ввода команд языка MATLAB;
окно предыстории, в котором запоминается информация из командного окна; предложения из этого окна могут через буфер обмена переноситься в командное окно и затем выполняться;
рабочая область содержит сведения об имеющихся в памяти переменных; рабочая область по умолчанию не сохраняется после завершения сеанса MATLAB. Ее можно сохранить в файле с расширением .mat (поставив мышь в это окно и из контекстного меню выбрав Save)и при необходимости загрузить, используя Import Data на главной ленте). Двойным щелчком мыши на пиктограмме переменной можно войти в редактор массивов для просмотра и редактирования значений переменной;
проводник текущей директории представляет собой проводник файловой системы, встроенный в MATLAB; по умолчанию текущей является директория среды, текущую директорию можно изменить, используя окно установки текущей директории, содержащее раскрывающиеся списки папок.
справочная система запускается, как и в других приложениях Windows, с помощью пункта Help главной ленты; ее можно, кроме того, запустить командой helpbrowser из командного окна.
Еще два инструмента MATLAB – редактор/отладчик и профилер – используются при работе с М-файлами и будут рассмотрены в лабораторной работе №3.
Вид рабочего стола можно изменить, открывая и закрывая его окна инструментов и изменяя их размеры.. Окна инструментов могут быть закрыты, передвинуты мышью за пределы рабочего стола или возвращены внутрь рабочего стола (при желании можно поэксперементировать с меню кнопки в виде треугольника в правом верзнем углу окна инструмента). Для выбора одной из типовых конфигураций рабочего стола можно воспользоваться пунктом Layout главной ленты. Для настройки инструментов используется окно пункта Preferences.
1.2. Простейшие примеры работы в MATLAB
Простейший пример вычислений (суммирование двух чисел) в командном окне среды MATLAB приведен на рис. 1.1. Обратите внимание на следующее:
-
Оператор присваивания MATLAB – это символ «=».
-
Результат выводится сразу же после оператора в том случае, если после него нажата клавиша Enter; если вывод результата после оператора нежелателен, ставьте после него точку с запятой.
-
Все переменные в MATLAB считаются матрицами (это очень важная особенность MATLAB). Размерность (число индексов) переменной определяется по значениям, которые ей присваиваются; если присваивается одно значение, то переменная считается матрицей размера 1*1, т. е. скалярной (простой) переменной - обратите внимание на информацию о переменных a, b, c в рабочей области.
-
По правилу умолчания все переменные имеют тип double (вещественное восьмибайтовое значение).
Значения компонент вектора перечисляются в квадратных скобках через запятую. Значения элементов матрицы записываются по строкам, строки разделяются точкой с запятой. Операции над массивами производятся поэлементно. Пример суммирования векторов и матриц приведен на рис. 1.2. Обратите внимание, что размеры переменных (см. рабочую область) меняются в соответствии с присваиваемыми значениями.
1.3. Некоторые действия над матрицами
В нашем кратком курсе мы рассмотрим лишь некоторые возможности MATLAB по обработке матриц.
1.3.1. Вычисление сумм и транспонирование
Функция sum вычисляет суммы столбцов матрицы, функция diag возвращает столбец диагональных элементов матрицы. Для транспонирования матриц используется принятое в математике обозначение . Работа этих функций иллюстрируется рисунком 1.3 (продолжение рис.1.2).
1.3.2. Работа с файлами
Существует возможность вводить матрицы из текстового файла, сформированного вне среды MATLAB. В текстовом файле матрица должна быть представлена как прямоугольная таблица чисел, разделенных пробелами, с равным количеством элементов в каждой строке. Имя файла должно иметь непустое расширение, отличное от .mat. Команда
load имя_файла.расширение
прочитает этот файл в переменную имя_файла. Например, из файла m.txt данные будут считаны в переменную m. По умолчанию файл находится в текущей директории среды MATLAB; для изменения директории перед именем файла надо указать путь к нему; например:
load d:\student\m.txt
Для сохранения массива в текстовый файл можно воспользоваться командой:
save [путь к файлу\]имя_файла.расширение имя массива -ASCII
Путь к файлу заключен в квадратные скобки как необязательный элемент команды. Расширение может быть любым, кроме .mat. Команда
save a.txt a -ASCII
сохранит массив а в файле a.txt текущей директории.
Команды load и save имеют другие режимы использования. Кроме того, в MATLAB существуют другие команды чтения данных из файла и сохранения их в файл. Эти возможности выходят за рамки нашего курса.
1.3.3. Поэлементная обработка матриц
Элемент матрицы с, стоящий в строке с номером i и столбце с номером j обозначается с(i,j). Элементы нумеруются, начиная с единицы. Таким образом, выражение с(1,1)+с(2,2)+с(3,3)+с(4,4) даст тот же результат, что и sum(diag(с)). Кроме того, для обработки матриц можно записывать алгоритмы на языке MATLAB, также как на Паскале, Си и других алгоритмических языках. Как правило, применение матричных операций дает более быстродействующие программы, чем поэлементная обработка, за счет распараллеливания вычислений.
1.4. Оператор двоеточия
Оператор двоеточия (:) – один из наиболее часто используемых операторов MATLAB. Его вид:
начальное значение : шаг : конечное значение
Оператор предполагает изменение от начального значения до конечного с заданным шагом. Шаг с предшествующим двоеточием может быть опущен, тогда по правилу умолчания шаг равен 1.
О
ператор двоеточия входит в состав оператора параметрического цикла for. Он также может использоваться самостоятельно для задания значений элементам массивов или для работы с частью массива. Примеры использования оператора двоеточия приведены на рис. 1.4.
2. Задание
-
Запустите MATLAB и выполните все примеры теоретической части.
-
Просмотрите разделы 1-4 Приложения (операции соотношения и логические операции пока можно не рассматривать).
-
Выполните п. А и Б раздела 1.1 задачника [1]. Из таблицы 1 выберите выражение с номером N+1 (N – номер по списку в журнале). Сравните сумму значений с приведенной в таблицуе и сохраните ее в файле.
Приложение. Описание алгоритмического языка MATLAB
П.1. Имена в MATLAB
Имя представляет последовательность латинских букв, цифр и символов подчеркивания, на первом месте которой стоит буква. Большие и малые буквы образуют различные имена. Имена могут состоять из произвольного числа символов, но различаются по первым символам, число которых возвращает функция namelengthmax. Вызовите ее из окна команд и узнайте это число.
Переменные, как правило, не объявляются. Тип и размер переменных определяются присваиваемыми значениями и могут изменяться в процессе выполнения программы. В таблице П.1 приведены некоторые функции, возвращающие специальные величины, которые могут быть полезны при работе в MATLAB. Эти имена (в том числе i и j) не стоит использовать для других целей.
Таблица П.1. Специальные величины и некоторые функции
Функция | Возвращаемое значение |
ans | самый последний результат (переменная). Если вы не присвоили значение выражения какой-нибудь переменной, то MATLAB автоматически сохранит результат в ans |
eps | Относительная погрешность при вычислениях с плавающей точкой |
realmax | Максимальное вещественное значение |
realmin | Минимальное вещественное значение |
pi | 3.1415926535897... |
i, j | Мнимая единица |
inf | Бесконечность – результат деления n/0, если n не является комплексным числом и n0 |
NaN | Not-a-Number – не число. В том числе выражения вида 0/0, inf/inf и n/0 при комплексном n. |
version | версия MATLAB |
abs(x) | абсолютная величина x |
atan(x) | arctg(x) |
exp(x) | ex |
log(x) | натуральный логарифм x |
sin(x) | sin(x) |
cos(x) | cos(x) |
tan(x) | tg(x) |
П.2. Типы данных
MATLAB имеет 15 основных типов данных. Каждый тип является массивом. Основные типы показаны жирным шрифтом на диаграмме рис. П.1.
Целые типы могут быть знаковыми или беззнаковыми, название беззнаковых типов начинается с латинской буквы u (от unsigned - англ. беззнаковый). Целое число, на которое оканчивается название типа, показывает, сколько байтов занимает одно значение этого типа. Естественно, чем большая память отводится на значение, тем шире диапазон его изменения.
MATLAB имеет два вещественных типа – single и double. Тип single характеризуется меньшей точностью представления чисел и меньшим диапазон чисел, чем double; соответственно, значение single занимает меньше памяти. Данные типа double имеют точность приблизительно 16 значащих десятичных цифр и диапазон изменения приблизительно от 10-308 до 10+308.
Тип double является основным типом MATLAB. Он принимается по умолчанию для числовых переменных. Переход к другим типам (например, int8) иллюстрируется рис. П.2. Все вычисления в MATLAB выполняются над переменными типа double. Остальные числовые типы используются для компактного хранения данных.
Манипуляторы функций (handle) имеют такое же назначение, как и процедуры-параметры универсальных алгоритмических языков. Они рассматриваются в лабораторной работе №10.
Т
ип структура (structure) подобен структурам СИ или записям в ПАСКАЛЕ. Тип cell не имеет аналога в универсальных алгоритмических языках. Эти два типа, а также два дополнительных типа (классы пользовательские и java) мы рассматривать не будем.
П.3. Константы
Правила записи числовых констант поясним на примерах:
3 -99 0.0001 9.6397238 1.60210e-20 6.02252e23
Можно использовать комплексные данные. Мнимая единица может обозначать i или j. Например, 1i -3.14159j 3e5i
Логические константы: 1 - истина (true) и 0 - ложь (false). При проверке условий любое ненулевое значение воспринимается как истина, а нулевое как ложь.
Символьная константа – это последовательность символов, заключенная в апострофы ('Hello!').
П.4. Операции и выражения
Арифметические операции MATLAB представлены в таблице П.2. Имеется два вида арифметических операций. Матричные операции выполняются по правилам линейной алгебры. Простые операции над массивами выполняются поэлементно над соответствующими элементами массивов одинаковых размеров. Для обозначения простой операции перед знаком операции ставится точка. Например, .* обозначает простое умножение. Когда матричная и простая операция выполняются одинаково, предшествующая точка не ставится (существует только операция +, операция .+ не существует)
Простая операция может выполняться над парой скаляр-массив. Тогда скаляр участвует в операции над каждым элементом массива. Такая ситуация называется скалярным расширением. Примеры матричной, простой операции и скалярного расширения представлены на рис. П.3.
Таблица П.2. Арифметические операции MATLAB
Оператор | Описание |
+ | Сложение |
- | Вычитание |
.* | Умножение |
./ | Правое деление: а./в – каждый элемент а делится на соответствующий элемент в |
.\ | Левое деление: а.\в – каждый элемент в делится на соответствующий элемент а |
+ | Унарный плюс |
- | Унарный минус |
: | Операция двоеточия |
.^ | Возведение в степень |
.' | Транспонирование |
' | Комплексно-сопряженное транспонирование |
* | Матричное умножение |
/ | Матричное правое деление: а/ва*в-1 |
\ | Матричное левое деление: а\ва-1*в |
^ | Матричное возведение в степень |
Операции отношения представлены в таблице П.3. Они выполняются над массивами одинакового размера (как простые арифметические операции). В результате получается массив такого же размера; каждый его элемент равен единице, если для соответствующих элементов исходных массивов соотношение выполнено, и нулю в противном случае.
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.