Элементы программирования на языке Matlab
Введение
Лабораторный цикл содержит 9 работ по изучению программирования с использованием математической системы Matlab.
Цикл может использоваться в дисциплинах: «Информатики», «Программирование на языках высокого уровня» и "Компьютерные технологии в приборостроении" специальности 220100, «Вычислительные машины, комплексы, системы и сети», специальности 651000 - «Ядерные физика и технологии», специальности 653700, «Приборостроение» и другие.
Содержание отчета по каждой работе:
1. Название работы, задание в соответствии с вариантом.
2. Программа.
3. Результаты выполнения программы на ПК.
4. Выводы.
Теоретические положения
Краткие теоретические сведения
Система MATLAB(Matrix Laboratory – матричная лаборатория) – универсальная интегрированная система, предлагаемая ее разработчиками как высокопроизводительный язык программирования высокого уровня для технических расчетов, позволяющий проводить вычисления, моделирование, визуализацию и программирование в удобной среде, где задачи и решения выражаются в форме, близкой к математической.
MATLAB- это интерактивная система, в которой основным элементом данных является массив.
MATLAB содержит шесть основных частей:
Среда MATLAB - это набор инструментов и приспособлений, с которыми работает пользователь. Она включает в себя средства для управления переменными в рабочем пространстве MATLAB, вводом и выводом данных, а также создания, контроля и отладки М-файлов и приложений MATLAB.
Язык MATLAB.Это язык матриц и массивов высокого уровня с управлением потоками, функциями, структурами данных, вводом-выводом и особенностями объектно-ориентированного программирования.
Язык программирования Matlab является интерпретатором. Это значит, что каждая инструкция программы распознается и тут же исполняется. Этап компиляции полной программы отсутствует. Интерпретация означает, что Matlab не создает исполняемых конечных программ. Они существуют лишь в виде m-файлов (файлов с расширением m). Для выполнения программ необходимо находиться в среде Matlab. Однако для программ на языке Matlab созданы компиляторы, транслирующие программы на языке Matlab в коды языков программирования C и C++. Это решает проблему создания исполняемых программ, изначально написанных в среде Matlab.
Графическая система MATLAB.Графическая система включает в себя набор команд высокого уровня для визуализации двух- и трехмерных данных, обработки изображений, анимации и иллюстрированной графики. Она также включает в себя команды низкого уровня, позволяющие полностью редактировать внешний вид графики.
Библиотека математических функций.Это обширный набор вычислительных алгоритмов от элементарных функций, таких как сумма, синус, косинус, комплексная арифметика, до более сложных, таких как обращение матриц, нахождение собственных значений, функции Бесселя, быстрое преобразование Фурье.
Программный интерфейс.Это библиотека, которая позволяет писать программы на Си и Фортране, которые взаимодействуют с MATLAB.
Simulink.Simulink - это интерактивная система для моделирования динамических систем. Simulink работает с линейными, нелинейными, непрерывными, дискретными, многомерными системами
Запуск системы Matlab
Matlab запускается нажатием левой клавиши мыши на ярлыке Matlab в рабочем меню операционной системы Windows. После этого появляется командное окно системы Matlab, и система готова к проведению вычислений в командном режиме. Полезно знать, что в начале запуска автоматически выполняется команда matlabrc, которая исполняет загрузочный файл matlabrc.mи файл startup.m, если таковой существует. Эти файлы выполняют начальную настройку терминала системы и задают ряд ее параметров. Для сохранения собственных m-файлов рекомендуется создать пользовательский каталог, например, каталог с именем USER на диске D. Доступ к этому каталогу необходимо обеспечить с помощью команды path, которая будет иметь вид:
path(path,'D:\USER').
Эту команду целесообразно включить в файл startup.m,который в свою
очередь нужно создать и записать в один из каталогов системы Matlab, например в каталог, в котором размещается файл matlabrc.m.
Сеанс работы с Matlab
Сеанс работы с Matlab принято именовать сессией. Сессия, в сущности, является текущим документом, отражающим работу пользователя с системой Matlab. В ней имеются строки ввода, вывода и сообщений об ошибках. Строка ввода указывается с помощью приглашающего символа >>. В строке вывода символ >>отсутствует. Строка сообщений об ошибках начинается символами ???. Входящие в сессию определения переменных и функций располагаются в рабочей области памяти (workspace). Команды набираются на клавиатуре с помощью обычных операций строчного редактирования. Особое назначение имеют клавиши ↑ и ↓ . Они используются для подстановки после приглашения >>ранее введенных строк, например, для их дублирования, исправления или дополнения. Полезно сразу усвоить следующие команды:
clc –очищает экран и размещает курсор в левом верхнем углу пустого экрана;
clear– уничтожает в рабочем пространстве определения всех переменных;
clear x– уничтожает в рабочем пространстве определение переменной x;
clear a,b,c– уничтожает в рабочем пространстве определения переменных списка.
Уничтоженная (стертая в рабочем пространстве) переменная становится неопределенной. Использовать такие переменные нельзя, такие попытки сопровождаются выдачей сообщений об ошибке. По мере задания одних переменных и уничтожения других рабочая область перестает быть непрерывной и содержит «дыры» и всякий «мусор». Во избежание непроизводительных потерь памяти при работе с объемными данными следует использовать команду pack, осуществляющую дефрагментацию рабочей области.
Рабочее пространство
Рабочее пространство - это область памяти, в которой хранится совокупность созданных за время сеанса работы MATLAB переменных, и которая доступна из командной строки рабочего окна MATLAB. Две команды, whoи whos, показывают текущее содержание рабочего пространства. Команда whoвыдает краткий список переменных в рабочем пространстве, а команда whosразмер и используемую память. Команда save сохраняет содержание рабочего пространства в МАТ- файле, который может быть прочитан командой loadв последующих сеансах работы MATLAB.
Например, save Февраль12сохраняет содержимое всего рабочего пространства в файле Февраль12.mat. Если нужно сохранить только определенные переменные, их имена указываются после имени файла.
Элементы программирования на языке Matlab
Система Matlab ориентирована на работу с матричными переменными. По умолчанию предполагается, что каждая заданная переменная – это матрица. Даже обычные константы и переменные рассматриваются в Matlab как матрицы размером 1×1 .
Типы переменных заранее не декларируются. Они определяются выражением, значение которого присваивается переменной. Так, если это выражение – вектор или матрица, то переменная будет векторной или матричной.
Ввод данных
При введении данных нужно руководствоваться несколькими условиями:
- для введения в рабочее пространство MATLAB некоторой переменной А и присвоения ей числового значения 5 следует написать в командном окне выражение: А=5;
Если после введенного выражения не поставить знак ";", то MATLAB повторит введенное выражение А = 5
Если после введенного выражения поставить знак ";", то MATLAB запомнит введенную переменную в рабочем пространстве без повторения.
- при введении матрицы или вектора элементы строки отделяются друг от друга пробелами или запятыми, точка с запятой используется для обозначения окончания каждой строки, а весь список элементов окружается квадратными скобками:
А=[1 2 4 5; 12 15 20 25; 5 7 9 11; 22 2 20 50];
С введенными в рабочее пространство переменными, векторами или матрицами можно производить различные арифметические операции или использовать их в качестве аргументов встроенных функций. Элемент в строке i и столбце j матрицы А обозначается А(i,j).
Например, А(4,2) - это число в четвертой строке и втором столбце. Введенное в командном окне выражение А=1:10 определяет А как вектор-строку со значениями
A = 1 2 3 4 5 6 7 8 9 10
Выражения
Как и большинство языков программирования, MATLAB предоставляет возможность использования математических выражений, основными составляющими которых являются переменные, числа, операторы, функции.
В MATLAB нет необходимости в определении типа переменной или ее размерности. Когда MATLAB встречает новое имя переменной, он автоматически создает переменную и выделяет соответствующий объем памяти.
Например, запись ааа=20 создает матрицу 1х1 с именем ааа и сохраняет значение 20 в ее единственном элементе.
Имена переменных состоят из букв, цифр, или символов подчеркивания. Система MATLAB чувствительна к регистрам и отличает заглавные и строчные буквы. Чтобы увидеть матрицу, связанную с переменной, просто введите название переменной и нажмите клавишу Enter.
Операторы
Простейшей конструкцией языка программирования является оператор присваивания:
Имя_переменной = Выражение
Типы переменных заранее не декларируются. Они определяются выражением, значение которого присваивается переменной. Так, если это выражение – вектор или матрица, то переменная будет векторной или матричной. После набора оператора в командной строке и нажатия клавиши ENTER на экран дисплея выводится вычисленное значение переменной. Для блокировки вывода результата вычислений на экран оператор нужно завершить символом « ; »(точка с запятой).
Пример
>> x=2;
>> y=2;
>> r=sqrt(x^2+y^2)
r=
2.8284
Возможна также конструкция, состоящая только из выражения. В этом случае для результата вычислений Matlab назначает переменную с именем ans.
Пример
>> x=2;
>> y=2;
>> sqrt(x^2+y^2)
ans= 2.8284
Для выполнения арифметических операций в системе Matlab применяются обычные арифметические операции и правила старшинства:
Выражения используют обычные:
· + сложение
· - вычитание
· умножение
· / деление
· ^ степень
· ' транспонирование
· () определение порядка вычислений.
Эти операции называются матричными, так как применяются и при работе с матрицами. Наряду с матричными операциями над массивами можно выполнять и поэлементные операции. Для обозначения поэлементных операций используется точка (.), предшествующая обычной (матричной) операции.
Для присваивания значений массиву необходимо значения элементов массива перечислить в квадратных скобках, разделяя их пробелами или запятыми.
Пример
>> v=[1 5 3]
v=
1 5 3
В этом примере мы задали вектор v (одномерный массив) со значениями элементов 1,5,3. Задание матрицы (двухмерного массива) требует указания различных строк. Для разделения строк используется ; (точка с запятой).
Пример
>> m=[1 3 2; 5 6 4; 6 7 8]
m=
1 3 2
5 6 4
6 7 8
Для указания отдельного элемента массива используется имя массива и круглые скобки, внутри которых указываются индексы, разделенные запятыми.
Пример
>> m=[1 2 3; 4 5 6; 7 8 9];
>> m(1,1)=5;
>> m(3,3)=m(1,1)+m(3,3);
>> m
m=
5 2 3
4 5 6
7 8 14
Matlab допускает максимум 4096 символов в строке. Если для выражения не хватает одной строки или мы не желаем заходить в невидимую область окна, то выражение можно перенести на новую строку с помощью многоточия … (3 или более точек). Комментарий в строке должен начинаться символом %. В некоторых версиях системы Matlab строчная буква явоспринимается как ошибка.
Пример
>> % Пояснение переноса выражения и комментариев
>> x=2;
>> y=2;
>> r=sqrt(x^2+ … % перенос выражения в следующую строку
y^2)
r=
2.8284
Для формирования упорядоченных числовых последовательностей в Matlab применяется оператор : - (двоеточие):
Начальное_значение: Шаг: Конечное_значение
Данная конструкция порождает последовательность (массив) чисел, которая начинается с начального значения, идет с заданным шагом и завершается конечным значением. Если шаг не задан, то он принимает значения 1 или -1.
Пример
>> i=1:6
i=
1 2 3 4 5 6
>>x=0: 0.5: 3
x=
0 0.5000 1.0000 1.5000 2.0000 2.500 3.0000
>> x=3: -0.5: 0
x=
3.000 2.5000 2.0000 1.5000 1.0000 0.5000 0
Функции
MATLAB предоставляет большое количество элементарных функций, таких как abs, sqrt, exp, sin.Вычисление квадратного корня или логарифма отрицательного числа не является ошибкой: в этом случае результатом является соответствующее комплексное число. Чтобы вывести список всех элементарных математических функций, наберите в командном окне help elfun. Для вывода более сложных математических и матричных функций, наберите help specfun, help elmat соответственно.
Для получения справки по какой-то конкретной функции и правилах ее применения, наберите help имя_функции.
Несколько специальных функций предоставляют значения часто используемых констант.
pi 3.14159265...
i мнимая единица
j то же
Inf бесконечность
NaN не число.
Справочная система Matlab
Matlab имеет справочную систему, которая активизируется щелчком левой клавиши мыши на пункте ?главного меню Matlab. Справочная система позволяет ознакомиться с языком программирования Matlab, имеющимися в системе функциями, их назначением и описанием.