Логические операторы
Логические операторы
Логическими принято называть операции, отражающие чисто логическое соответствие между данными. В обиходном языке эти связи выражаются утверждениями типа «да» или «нет». Например, на вопрос «Сын вырос выше отца?» мы можем ответить «да» или «нет». В математике (да и в информатике) принято характеризовать логическое соответствие утверждениями True («Верно», «Истина» или «Да») и False («Неверно», «Ложь» или «Пет»). Слова True и False являются символьными константами, отражающими результаты логических операций и в системе Mathematica.
Для осуществления логических операций используются следующие логические операторы:
Равенство (например, а == b)
! = Неравенство
> Больше (например, b > а)
>= Больше или равно
< Меньше
<= Меньше или равно
Возможны следующие формы применения операторов сравнения:
а == b == с
а != b != с
х < у < z
и т. д.
Результатом вычисления этих выражений является выдача логических значений True или False. Это демонстрируют следующие примеры.
Ввод (In) |
Вывод (Out) |
2=2 |
True |
a=a |
True |
a=b |
a == b |
2=3 |
False |
2<3 |
True |
2>3 |
False |
2!=3 |
True |
2+1==3==4-1 |
True |
Логические функции
Основные логические функции над логическими данными р, q и т. д. задаются следующим образом:
Not[p] или !р Логическое отрицание
And[p, q,…] или р && q &&… Логическое умножение — операция «И»
Or[p,q,…] или р || q | |… Логическое сложение — операция «ИЛИ»
Приведем примеры применения логических операторов и функций.
Ввод (In) |
Вывод(Out) |
And [True , True , True ] |
True |
True && True && False |
False |
Not [True] |
False |
Not [False] |
True |
Or [True, True, False] |
False |
2==2 && 3==3 |
True |
True && True |
True |
And[l,l,0] |
11111 1 0 |
And[l,l,0] |
1 && 1&& 0 |
Эти примеры показывают, что аргументами логических функций и операндами логических операций должны быть только логические константы True и False или выражения, значения которых представлены ими. Недопустимо использовать численные значения 1 и 0, отождествляя их с логической единицей и логическим нулем. Результатом задания операций с ними будет повтор задания — возможно, в укороченной форме.
Отметим еще ряд логических операторов и функций:
Equal[Ihs, rhs] Greater[х,у] или х > у Возвращает True, если Ihs и rhs тождественны
Greater[xl,x2,x3] или xl > х2 > хЗ Возвращает True, если х оказывается больше у, иначе возвращает False
GreaterEqual[х,у] или х >= у Возвращает True, если xi образуют строго убывающую последовательность, иначе возвращает False
GreaterEqual[xl,х2,хЗ] или xl>= х2 >= хЗ Возвращает True, если х больше или равно у, иначе возвращает False
Negative[х] NonNegative[х] Positive[х] Возвращает True, если xi образуют невозрастающую последовательность, иначе возвращает False
SameQtlhs,rhs] или Ihs === rhs Возвращает True, если х оказывается отрицательным числом, иначе возвращает False
Xor[el, e2,…] Возвращает True, если х — неотрицательное число, иначе возвращает False
Возвращает True, если х — положительное число, иначе возвращает False
Возвращает значение True, если выражение Ihs тождественно rhs, иначе False. В отличие от Equal, сравнивает форму представления операндов, а не их значения
Является логической функцией XOR (исключающее «ИЛИ»). Возвращает True, если нечетное количество из ei имеют значение True, а остальные False. Возвращает False, если четное количество ei имеют значение True, a остальные False
Ниже приводятся примеры использования этих функций.
Ввод (In) |
Вывод (Out) |
Positive [2-3] |
False |
Equal [1+2, 4-1] |
True |
Equal [1+2, 2] |
False |
Greater [5, 4] |
True |
Greater [5, 4,3] |
True |
Greater [5, 4, 9] |
False |
Less [3,2+3] |
True |
Positive [2] |
True |
Negative [-2] |
True |
Neganbve[2] |
False |
NonNeganive [ -2 ] |
False |
NonNegative[2] |
True |
Xor[ True, True] |
False |
Xor [False , False] |
False |
Xor [True, False] |
True |
Ряд дополнительных логических функций читатель найдет в приложении.
Функции комплексного аргумента
Элементарные функции в системе Mathematica могут иметь аргумент в виде действительного числа х или комплексного z. Аргументы указываются как параметры функций в квадратных скобках.
Прежде всего отметим функции для работы с комплексными числами z:
- Abs[z] — возвращает модуль комплексного числа z;
- Arg [ z ] — возвращает аргумент комплексного числа z;
- Conjugate [z] — возвращает комплексно-сопряженное с z число;
- Directedlnf inity [] — представляет бесконечную числовую величину с неопределенным направлением на комплексной плоскости;
- Directedlnfinity[z] — представляет бесконечную числовую величину, направление которой на комплексной плоскости определяется фазой комплексного аргумента z;
- Im [ z ] — возвращает мнимую часть комплексного числа z;
- Re [ z ] — возвращает вещественную часть числа z.
Далее приведены примеры операций с комплексными числами в непосредственном режиме.
Ввод (In) |
Вывод (Out) |
z1 : =2+1*3; |
|
z2: =4+1*5; |
|
N[zl+z2] |
6. + 8.1 I |
Re [2+1*3] |
2 |
H[Im[z2]J |
5. |
N[zl/z2] |
0.560976 + 0.0487805 I |
N[Abs[zl*z2]] |
23.0868 |
Con j ugate [ z 1 ] |
2-31 |
Если ввести N [ z 1 / 0 ], то система выдаст следующее сообщение:
N[zl/0]
Power::infy : Infinite expression 1/0 encountered.
Complexlnfinity
Итак, в этом случае система выдает сообщение об ошибке, но после него возвращает константу Complexlnfinity, означающую комплексную бесконечность.
Элементарные функции
Элементарные функции, надо полагать, хорошо известны читателю, взявшемуся за изучение Mathematica. Полный набор этих функций с их синтаксисом дан в приложении. Отметим, что в Mathematica имена элементарных функций записываются с большой буквы, а их аргументы задаются в квадратных скобках. Следующие примеры иллюстрируют сказанное.
Ввод (In) |
Вывод (Out) |
Sqrt[2] |
Sqrt[2] |
Sqrt[2.] |
1.41421 |
2*Sin[l] |
2 Sin[l] |
N[2*Sin[l]] |
1.68294 |
Log[Exp[l]] |
1 |
Simplif у [Sin [x] /Cos [x] ] |
Tan[x] |
ComplexExpand [ Sin [ a+b* I ] ] |
Cos[b] Sin[a]+ I Cosfa] Sinh[b) |
Из этих примеров видно, что система знает и использует основные соотношения между элементарными функциями. В двух последних примерах используются символьные преобразования с применением функций Simplify (упрощение выражений) и ComplexExpand (расширение выражений с комплексным аргументом). Более подробно эти важные для символьных операций функции будут рассмотрены в дальнейшем.