Вещественные числа и тип данных double
ВВЕДЕНИЕ В СИСТЕМУ MATLAB
Предисловие
MATLAB – система многоцелевого назначения, которая вышла на рынок программных продуктов более двадцати лет назад и с тех пор непрерывно совершенствовалась. Но первоначально ее основу составляли алгоритмы решения систем линейных уравнений и задач на собственные значения, откуда и произошло ее название «матричная лаборатория». Сейчас уже существует несколько десятков специальных приложений к MATLAB’у, посвященных более узким проблемам. Это обработка сигналов и изображений, инженерное программирование в виде блок-схем, решение экономических задач, нейронные, гибридные сети, нечеткие множества и многое другое. Но любое из этих приложений можно изучать только после первоначального освоения MATLAB’а.
Лабораторная работа 1
Основы работы с MATLAB
Среда MATLAB включает интерпретатор команд на языке высокого уровня, графическую систему, пакеты расширений и реализована на языке C. Вся работа организуется через командное окно (Command Window), которое появляется при запуске программы matlab.exe. В процессе работы данные располагаются в памяти (Workspace), для изображения кривых, поверхностей и других графиков создаются графические окна.
В командном окне в режиме диалога проводятся вычисления. Пользователь вводит команды или запускает на выполнение файлы с текстами на языке MATLAB. Интерпретатор обрабатывает введенное и выдает результаты: числовые и строковые данные, предупреждения и сообщения об ошибках. Строка ввода помечена знаком >>. В командном окне показываются вводимые с клавиатуры числа, переменные, а также результаты вычислений. Имена переменных должны начинаться с буквы. Знак = соответствует операции присваивания. Нажатие клавиши Enter заставляет систему вычислить выражение и показать результат. Наберите с клавиатуры в строке ввода: » a=2+51-37
Нажмите клавишу Enter, на экране в зоне просмотра появится результат вычисления: a = 16
Все значения переменных, вычисленные в течение текущего сеанса работы, сохраняются в специально зарезервированной области памяти компьютера, называемой рабочим пространством системы MATLAB (Workspace). Командой clc можно стереть содержимое командного окна, однако это не затронет содержимого рабочего пространства. Когда исчезает необходимость в хранении ряда переменных в текущем сеансе работы, их можно стереть из памяти компьютера командой clear или clear(имя1, имя2, …). Первая команда удаляет из памяти все переменные, а вторая - переменные с именами имя1 и имя2. Командой who можно вывести список всех переменных, входящих в данный момент в рабочее пространство системы. Для просмотра значения любой переменной из текущего рабочего пространства системы достаточно набрать ее имя и нажать клавишу Enter.
Легче всего протокол сессии получить с помощью команды diary. Вызов команды diary <имя_файла> приведет к тому, что все появившееся далее на экране (кроме графики) будет записано в файл <имя_файла>. Например, diary('sept23.out'), для прекращения записи сеанса вводится: diary('off'). Несколько последовательно набранных команд могут быть сохранены в M-файле (т.е. *.m), который с точки зрения операционных систем представляет аналог BAT-файла, а с точки зрения программирования – зародыш будущей программы. Самый простой путь для этого – в окне Command History выделить нужные команды, исполнить команду Create M-file контекстного меню; при этом откроется редактор М-файлов.
Вещественные числа и тип данных double
Система MATLAB представляет на машинном уровне все действительные числа заданные мантиссой и показателем степени, например, 2.85093Е+11, где буквой Е обозначается основание степени равное 10. Этот основной тип данных носит название double. MATLAB по умолчанию использует формат short для вывода вещественных чисел, при котором показываются только четыре десятичных цифры после запятой.
Введите с клавиатуры пример: » res=5.345*2.868/3.14-99.455+1.274
Получите результат вычисления: res = -93.2990
Если требуется полное представление вещественного числа res, введите с клавиатуры команду: » format longи далее наберите имя переменной » res
нажмите клавишу Enter и получите более подробную информацию:
res = -93.29900636942675
Теперь все результаты вычислений будут показываться с такой высокой точностью в течение данного сеанса работы в среде системы MATLAB. Если требуется до прекращения текущего сеанса работы вернуться к старой точности визуального представления вещественных чисел в командном окне, нужно ввести и исполнить (нажав клавишу Enter) команду: » format short Целые числа показываются системой в командном окне в виде целых чисел.
Над вещественными числами и переменными типа double производятся арифметические операции: сложения +, вычитания -, умножения *, деления / и возведения в степень ^ . Приоритет в выполнении арифметических операций обычный. Операции одинакового приоритета выполняются в порядке слева направо, но круглые скобки могут изменить этот порядок.
Если нет необходимости видеть в командном окне результат вычисления некоторого выражения, то в конце введенного выражения следует поставить точку с запятой и только после этого нажать Enter.
В системе MATLAB присутствуют все основные элементарные функции для вычислений с вещественными числами. Любая функция характеризуется своим именем, списком входных аргументов (перечисляются через запятую и стоят внутри круглых скобок, следующих за именем функции) и вычисляемым (возвращаемым) значением. Список всех имеющихся в системе элементарных математических функций может быть получен по команде help elfun. В Приложении 1 перечислены стандартные функции вещественного аргумента.
Вычислите выражение, включающее вычисление функции арксинус:
» 2*asin(1)
Убедитесь, что получился следующий результат: ans = 3.1416,соответствующее числу «пи». В системе MATLAB для вычисления числа «пи» есть специальное обозначение: pi.
(Список системных переменных MATLAB находится в Приложении 2).
MATLAB имеет также логические функции, функции, связанные с целочисленной арифметикой (округления до ближайшего целого: round, усечение дробной части числа: fix). Есть еще функция mod – остаток от деления с учетом знака, sign – знак числа, lcm – наименьшее общее кратное, perms – вычисление числа перестановок и nchoosek – числа сочетаний и много других. Многие из функций имеют область определения, отличную от множества всех действительных чисел.
Помимо арифметических операций над операндами типа double выполняются еще операции отношения и логические операции. Операции отношения сравнивают между собой два операнда по величине. Эти операции записываются следующими знаками или комбинациями знаков (Таблица 1):
Таблица 1
Символьные обозначения операций отношения
< | <= | > | >= | ~= | == |
Меньше | Меньше или равно | Больше | Больше или равно | Не равно | Равно |
В случае истинности операции отношения ее величина равна 1, а в случае ложности – 0. Операции отношения имеют более низкий приоритет, чем арифметические операции.
Наберите с клавиатуры выражение с операциями отношения и вычислите его:
» a=1; b=2; c=3;
» res=(a<b)+(c~=b)+(b==a)
Вы получите следующий результат: res = 2
Логические операции над вещественными числами обозначаются знаками, перечисленными в таблице 2:
Таблица 2
Символьные обозначения логических операций
& | ׀ | ~ |
И | ИЛИ | НЕ |
Первые две из этих операций являются бинарными (двухоперандными), а последняя – унарной (однооперандной). Логические операции трактуют свои операнды как «истинные» (не равные нулю) или «ложные» (равные нулю). Если оба операнда операции «И» истинны (не равны нулю), то результат этой операции равен 1 («истина»); во всех остальных случаях операция «И» вырабатывает значение 0 («ложь»). Операция «ИЛИ» вырабатывает 0 («ложь») только в случае, когда являются ложными (равными нулю) оба операнда. Операция «НЕ» инвертирует «ложь» на «истину». Логические операции имеют самый низкий приоритет.