Система MATLAB допускает работу в режиме прямых вычислений, т.е. без сохранения вводимых операторов на диске в виде m-файлов (программ). При этом система функционирует по существу как мощный научно-технический калькулятор, способный проводить весьма сложные вычисления и представлять их результаты в числовой или графической форме.
MATLAB различает строчные и прописные символы. При наборе команд MATLAB могут использоваться буквы латинского алфавита и цифры; кириллица может быть использована только в комментариях, включаемых в m-файлы, а также в графических объектах (заголовки, надписи по осям координат). Команды MATLAB набирают в позиции приглашения с помощью клавиатуры, завершая ввод команды нажатием клавиши [Enter]; предыдущие команды могут быть вызваны с помощью стрелочных клавиш [] и [¯]. При корректировке (редактировании) текста команд используют обычные приемы.
Основные символы MATLAB приведены в табл. 2.1.
Таблица 2.1
+
Плюс
-
Минус
*
Символ умножения
.*
Умножение массивов (поэлементное умножение)
^
Возведение в степень
.^
Возведение массива в степень
\
«Левое» деление
/
«Правое» деление
./
Деление массива (поэлементное деление)
:
Двоеточие. Используют для обозначения индексов, в цикле for и в некоторых других случаях.
– то же, что
– пусто, если
– то же, что , где
– пусто, если и или если и .
Двоеточие используют для исключения строк, столбцов или элементов векторов и матриц.
– все элементы A как один столбец.
- j -й столбец A
и т.д.
( )
Круглые скобки. Используют для указания приоритетных арифметических действий и аргументов функций.
[ ]
Квадратные скобки. Используют при формировании векторов и матриц.
.
Десятичная точка или символ массива
..
Каталог более высокого уровня
...
Символ продолжения (не менее трех точек)
,
Запятая
;
Точка с запятой. Используется для обозначения строк матриц, а также для подавления вывода результата на экран
%
Символ комментария (игнорируется интерпретатором)
!
Восклицательный знак.Ставится перед командой операционной системы
'
Символ транспонирования или апостроф
=
Символ присваивания
<, <=, >, >=, = =, ~ = – операторы отношений
&
Логическое И (AND)
|
Логическое ИЛИ (OR)
~
Логическое дополнение НЕ (NOT)
xor
Исключительное ИЛИ
kron
символ тензорного произведения (Кронекера).
Ввод чисел в командной строке производится по правилам, принятым в языках высокого уровня. Ввод команды завершается нажатием клавиши [Enter].
Пример команды:
» 4*2^1.7-5.87
ans =
7.1260
По умолчанию результату присваивается имя ans (начало слова answer, т.е. ответ)– эта системная переменная может быть использована в последующих вычислениях:
» ans-1
ans =
6.1260
В результате данного вычисления переменной ans присваивается новое значение.
Видимая информация в окне MATLAB располагается в двух зонах: просмотра и редактирования (командной). Информацию, находящуюся в первой из них, можно только просматривать с помощью мыши и полос прокрутки, а также выделять нужные фрагменты для копирования в буфер обмена и последующей вставки в текстовый документ или в командную строку.
В MATLAB соблюдается общепринятая иерархия математических операций. Сравните с предыдущим примером:
» (4*2)^1.7-5.87
ans =
28.4268
При прямых вычислениях могут использоваться функции, которые разделяют на внутренние (встроенные) и внешние; последние существуют в виде m-файлов. Справку по ним можно получить, набирая соответствующую команду: help elfun – перечень элементарных функций; help specfun – специальных и т.д. Список аргументов (и параметров), отделяемых запятой, заключается в круглые скобки после имени функции. Тип результата вычисления функции совпадает с типом аргумента.
fix(X) – округление до ближайшего целого в сторону нуля;
floor(X) – округление до ближайшего целого в сторону ;
ceil(X) – округление до ближайшего целого в сторону ;
round(X) – округление до ближайшего целого;
rem(X,Y) – остаток от целочисленного деления;
sign(X) – функция знака;
rat(X) – представление числа в виде цепной дроби;
rats(X) – представление числа в виде рациональной дроби.
В качестве примера рассмотрим представление числа p
» rats(pi)
ans =
355/113
» rat(pi)
ans =
3 + 1/(7 + 1/(16))
Для формирования цепной дроби функция rat(X) подбирает два целых числа n и d, причем выполняется условие . Можно выбрать точность вычислений, отличную от принятой по умолчанию,
» rat(pi,1e-10)
ans =
3 + 1/(7 + 1/(16 + 1/(-294 + 1/(3))))
а также определить числа n и d:
» [n,d]=rat(pi); [n,d]
ans =
355 113
» [n,d]=rat(pi,1e-10); [n,d]
ans =
312689 99532
» n/d
ans =
3.1416
Вычисления в системе MATLAB проводятся с двойной точностью, но вывод данных может происходить в разном формате. Формат устанавливается с помощью соответствующей настройки: File-Preferences…-General-Numerical Format (см. раздел 1):
Перечень форматов:
Short – короткий, с 5 знаками (установлен по умолчанию);
Long – длинный, с 15 знаками;
Hex – шестнадцатеричный;
Bank – финансовый (с точностью до сотых);
Plus– знаковый;
Short E – короткий экспоненциальный (4 знака после запятой);
Long E – длинный экспоненциальный (15 знаков после запятой);
Short G– короткий экспоненциальный (с отбрасыванием нулей);
Long G – длинный экспоненциальный
Rational–представление действительного числа в виде отношения целых чисел.
Форматом можно также управлять, набирая соответствующие команды со служебным словом format, например, format long, format + (знаковый), format rat (сокращенная форма rational) и т.д. Установленный формат действует до назначения нового формата или до конца сеанса работы с системой MATLAB.
Продолжаем вычисления:
» sn(pi/2)
??? Undefined function or variable sn.
При вводе команды допущена ошибка: набрано sn вместо sin. Диагностика системы: «??? Функция или переменная sn не определена».
» sin(pi/2)
ans = 1
После коррекции команды получен правильный результат.
Далее используем оператор присваивания [1] – вводим переменную s
»s=sin(pi/2)
s = 1
Переменная может быть числом, элементом вектора или матрицы, а также символьной (строковой). Значение переменной сохраняется до конца сеанса работы в среде MATLAB.
Длинная команда может быть продолжена на следующей строке, если в конце текущей строки набрать многоточие (...):
» s=1-1/2+1/3-1/4+1/5-1/6+...
1/7-1/8+1/9-1/10
s = 0.6456
Вывод результата вычисления на экран подавляется с помощью символа (;).
Если необходимо вывести на экран промежуточные результаты, после оператора (при нескольких операторах в командной строке) ставят символ (,). Например:
» a=.5, s=sin(a*pi)
a = 0.5000
s = 1
и
» a=.5; s=sin(a*pi)
s = 1
» a=.5; s=sin(a*pi), a*s
s = 1
ans = 0.5000
В следующей команде результату первого вычисления имя ans присвоено по умолчанию:
» 4*2^1.7-sqrt(5.87); ans-1
ans =
9.5732
Проиллюстрируем применение форматов на примере числа е, т.е. основания натуральных логарифмов. В MATLAB оно не определено как системная константа, и поэтому сначала вычислим его:
» e=exp(1)
e =
2.7183
» format long, e
e =
2.71828182845905
» format short e, e
e =
2.7183e+000
» format long e, e
e =
2.718281828459045e+000
» format hex, e
e =
Bf0a8b145769
» format bank, e
e =
2.72
» format +, е
ans = +
После этих упражнений необходимо восстановить принятый по умолчанию формат, т.е. short.
Признаком возникновения неопределенности типа 0/0, ¥/¥ или ¥-¥ при вычислениях является результат ans = NaN (Not a Number – не число) или ans = Inf – системная переменная, равная машинной бесконечности (+¥) и характеризующая результат деления на ноль или переполнение регистра.