Основные объекты системы MatLab

Математические выражения в MatLab стоятся, как и в большинстве языков программирования, из числовых констант, переменных, стандартных и нестандартных функций, соединенных знаками арифметических операций, например +,-,*,/,^, и круглых скобок. Кроме того, как было показано ранее, вид результата зависит от установленного формата.

 

Число – простейший объект языка MatLab,представляющий числовые данные. Числа могут быть представлены в целом, дробном, с фиксированной и плавающей точкой, а также в экспоненциальном виде. Например,

E-7, 0.89e12.

Числа могут быть как действительными, так и комплексными.Комплексные числа содержат как действительные, так и комплексные чисти. В MatLabмнимая часть имеет множительiилиj,означающий корень квадратный из-1.Например,

3i, 5j, -5.1 +i8, 005e-5- j0.006.

Все операции над числами в MatLabвыполняются в формате с двойной точностью. Однако, как нам уже известно, MatLabвыдает числовые результаты в нормализованной форме с четырьмя цифрами после десятичной точки и одной до нее. Поэтому при работе с числовыми данными можно задавать различные форматы представления чисел.

 

Числовая константа – это предварительно определенное число (числовое значение). Числа (например, 1, -5, 3.97) являются безымянными числовыми константами.

 

Системные константы (табл. 3.1-3) – это такие константы, значения которых задаются системой при загрузке. Однако по мере необходимости эти константы могут переопределяться.

Таблица 2.3.1-3 Таблица 3.5.3-3

Константа Назначение
i или j Мнимая единица
pi Число π=3.1415926…
eps Погрешность вычислений над числами с плавающей точкой (по умолчанию 2-52)
realmin Наименьшее число с плавающей точкой (по умолчанию 2-1022)
realmax Наибольшее число с плавающей точкой (по умолчанию 21022)
inf Значение машинной бесконечности
NaN Указание на нечисловой характер данных (Not-a-Number)

 

Символьная константа – это последовательность символов, заключенных в одиночные апострофы. Например:

'Кафедра ВМиП' '88+0'

 

Комментарии в MatLab определяются с помощью символа %. Например,

% Это комментарий

Переменные – это имеющие имена объекты, способные хранить некоторые, разные по значению, данные. В зависимости от этих данных, переменные могут быть числовыми или символьными, векторными или матричными. При использовании переменных необходимо придерживаться правил:

· имя переменной (ее идентификатор) может состоять из символов латинского алфавита, знака подчёркивания и цифр, но начинаться обязательно с символа алфавита;

· прописные и строчные буквы различаются;

· пробел не входит в имя переменной.

 

Для задания переменным определенных значений используется операция присваивания, обозначаемая знаком равенства =.

Пример 3.1-5
>> a=3.25*(0.7-3.3/5.1)+2.3^3 a = 12.3391 >> b=5*(2.2+3.9i)+0.8 b = 11.8000 +19.5000i >>

 

Простейшие арифметические операции системы приведены в табл. 3.1-4.

Таблица 3.1-4

Функция Название Операция Синта-сис
plus Плюс + M1+M2
uplus Унарный плюс + +M
minus Минус - М1-M2
uminus Унарный минус -
mtimes Матричное умножение * M1*M2
times Поэлементное умножение массивов .* A1.*A2
mpower Возведение матрицы в степень ^ М^х
power Поэлементное возведение массива в степень .^ A.^x
mldivide Обратное (справа налево) деление матриц \ M1\M2
mrdivide Деление матриц слева направо / M1/M2
ldivide Поэлементное деление массивов справа налево .\ A1.\A2
rdivide Поэлементное деление массивов слево направо ./ A1./A2

Необходимо обратить внимание на то, что каждая операция имеет аналогичную по назначению функцию. Например, операции матричного умножения * соответствует функция mtimes(Ml,M2). Примеры применения арифметических операций уже не раз приводились, так что ограничимся несколькими дополнительными примерами.

Пример 3.1-6

>>А=[1 2 3];

>>В=[4 5 6];

>>В-А

ans=

    3 3  
  >>minus (В. А)      
  ans =      
    3 3  
  >>А. ^ 2      
  ans =      
    4 9  
  >> power(A,2)      
  ans =      
    4 9  
  >>А.\B      
  ans=      
    4.0000 2.5000 2.0000  
  >>ldivide(A,B)      
  ans=      
    4.0000 2.5000 2.0000  
  >>rdivide(A,B)      
  ans=      
    0.2500 0.4000 0.5000  
                 

Соответствие функций операторам и командам в системе MatLab является одним из основных положений программирования в MatLab. Оно позволяет одновременно использовать элементы как операторного, так и функционального программирования.

Следует отметить, что в математических выражениях операции имеют определенный приоритет исполнения. Например, в MatLab приоритет логических операций выше, чем арифметических, приоритет возведения в степень выше приоритетов умножения и деления, приоритет умножения и деления выше приоритета сложения и вычитания. Для изменения приоритета операций в математических выражениях используются круглые скобки.

 

MatLab обладает большим набором стандартных встроенных математических функций. Некоторые из них приведены в табл. 3.1-5. При вызове математических функций аргумент заключается в круглые скобки. Полный список всех встроенных элементарных математических функций можно получить, набрав в командной строке.

Пример 3.1-7
>>help elfun >>

 

Таблица 3.1-5

Тригонометрические функции (результат вычисляется в радианах)
sin, cos, tan, cot Синус, косинус, тангенс и котангенс
sec, csc Секанс, косеканс
Обратные тригономе-кие функции (результат вычисляется в рад.)
asin, acos,atan,atan2, acot Арксинус, арккосинус, арктангенс и арккотангенс
asec, acsc Арксеканс, арккосеканс
Гиперболические функции
sinh, cosh, tanh, coth Гипербол. синус, косинус, тангенс и котангенс
sech, csch Гиперболические секанс и косеканс
asinh, acosh, atanh, acoth Гиперболические арксинус, арккосинус, арктангенс и арккотангенс;
Экспоненциальная функция, логарифмы, степенные функции
exp Экспоненциальная функция
log, log2, log10 Логарифм натуральный, по основанию 2 и 10
sqrt Квадратный корень
Модуль, знак и функции для работы с комплексными числами
abs, sign Модуль и знак числа
conj, imag, real Комплексно-сопряжённое
mod, rem Остаток от деления с учетом знака делимого и без
gcd, lcm Наибольший и наименьший общий делитель
cell, fix, floor, round округления

 

Команда help отображает в командном окне список разделов справочной системы. Для получения содержимого раздела необходимо указать через пробел его название после help, а для вывода детальной информации о какой-либо функции, следует ввести в строке с help имя функции.

Возникающий в процессе вычислений комплексный результат не является ошибкой. MatLab автоматически переходит в область комплексных чисел, если это необходимо, продолжая вычисления. Например, если необходимо найти квадратный корень из –1. Более того, допустимы операции деления на ноль, которые приводят к стандартным переменным Inf или –Inf. Результат деления нуля на ноль есть NaN (Not a Number – не число). Переполнение или потеря точности в MatLab при выполнении операций с числами с плавающей точкой не вызывает прекращение вычислений.

Запись комплексных величин, используемых в арифметических выражениях, напоминает общепринятые математические стандарты. Мнимые части комплексных чисел сопровождаются либо буквой i, либо буквой j:

 

Пример 3.1-8
>>x=1.5-0.5i x = 1.5000 - 0.5000i >>y=1.5-0.5j y = 1.5000 – 0.5000j >>

 

Если переменным i и j не присвоены какие-либо значения, то их можно использовать для формирования комплексных данных, используя знак умножения и располагая такой “сомножитель” до или после мнимой части:

Пример 3.1-9
>>a=1; >>x=i*a x = 0 + 1.0000i >>y=a*i y = 0 + 1.0000i >>

 

Когда полные комплексные числа используются в операциях умножения, деления и возведения в степень, то для устранения неоднозначности их заключают в круглые скобки.

С помощью функции realи imag можно выделить вещественную и мнимую часть комплексного значения, а функция complex позволяет сконструировать комплексное значение по паре двух вещественных чисел.

Пример 3.1-10
>>b=5+j10; >>c=real(d) c= >>d=imag(b) d= >>

 

Функцией conj() можно воспользоваться для получения комплексного сопряженного числа. Тот же результат можно получить, располагая апостроф вслед за комплексным значением.

Пример 3.1-11
>>t=conj(b) t= 5.0000e+000 -1.0000e+001i >>g=b' g= 5.0000e+000 -1.0000e+001i >>

 

Отметим, что над комплексными данными в MatLabопределены все арифметические операции, а комплексные операнды и выражения могут использоваться в качестве аргументов стандартных функций.

Необходимо обратить внимание, что числовые переменные в MatLab являются двумерными массивами размера один на один. Представление всех данных в MatLab в виде массивов оказывается очень полезным, о чем подробнее будет сказано в следующих разделах.