Оператори математичних співвідношень

Як відомо, у математиці та програмуванні при записуванні математичних виразів, крім операторів математичних дій, значну роль відіграють оператори співвідношень. Саме через ці оператори створюються нетривіальні алгоритми реальних математичних задач з розгалуженнями та циклами. Усі оператори математичних співвідношень мають два операнди, числові значення яких порівнюються між собою з використанням шести

операцій порівняння: менше, більше, дорівнює, не дорівнює, менше або дорівнює, більше або дорівнює. У сучасних мовах програмування результати виконання дій порівняння можуть мати два значення булевих змінних: True — істина, та False —хибність. Система MatLab більше орієнтована на роботу з числами, ніж із математичною логікою, тому тут прийнято числове подання результатів порівнянь, яке також широко використовується у програмуванні та у математиці: True –1, та False— 0. Оператори порівняння MatLab схожі з їх реалізацією мовами програмування С та BASIC. У MatLab ті самі дії порівняння можна виконувати і через функції, які аналогічні реалізованим мовами програмування BASIC та FORTRAN. Оператори та функції математичних співвідношень наведені у табл. 2.2, де через x та y позначені математичні вирази.

Якщо для виразів з дійсними числами оператори порівняння не мають ніяких особливостей, то при використанні виразів з комплексними числами застосування операторів порівняння в системі MatLab має свої особливості. Зрозуміло, що операції дорівнює або не дорівнює цілком коректно визначені для них, а операції більше та менше для комплексних чисел не визначаються. Тому розробники системи при введенні операторів порівняння для виразів із комплексними числами визначили всі вищезгаданої дії, але працюють вони по?різному. Оператори < , > , < = , > = можуть бути застосовані з комплексними операндами, але тільки для порівняння їх дійсної частини, уявна частина операндів відкидається. А в разі використання операторів порівняння = = та ~ = порівнюються як дійсні, так і їх частини. Для порівняння модуля двох комплексних чисел можна використовувати функцію модуля abs. Нижче наведено приклад використання операцій порівняння, який показує,що при записуванні уявної частини комплексних чисел між числом та константою і не ставити знак множення.

Приклад

>> eq(5,10)

ans =

>> 5==5

ans =

>> ne (5,10)

ans =

>> 5~=5

ans =

» 5>10

ans =

>> ge(10,5)

ans =

>> (2+3i)==(2+i)

ans =

>> (2+3i)>=(2+i)

ans =

>> abs(2+3i)>=abs(2+i)

ans =

>> (2+3i)~=(2+i)

ans =

>>

Важливо, що оператори порівняння можуть бути використанні для масивів, векторів та текстових констант, тобто, спектр використання цих операторів значно ширший, ніж у класичних мовах програмування. Можна порівняти масив із числовою константою. Результатом порівняння буде масив, розмірність якого відповідає розмірності початкового масиву, а всі елементи дорівнюють нулю або одиниці, залежно від результатів їх порівняння з визначеною константою. Можливим є також присвоєння значення результату виконання операції порівняння іншому масиву через математичні вирази, у яких оператори порівняння використовуються разом з операторами присвоєння.

Формат такого виразу:

>> M2=(M1>n)

Через M2 та M1 тут позначені масиви, а літерою n — числова константа. Такі вирази дуже нагадують програмістам синтаксис мови програмування С. Наведемо приклад використання операторів співвідношень:

>> M1=[1,2;3,4]

M1=

1 2

3 4

>>M2=(M1>1)

M2 =

0 1

1 1

>> M1>=1

ans =

1 1

1 1

>> M1~=1

ans =

0 1

1 1

>>

У MatLab є можливість використання операторів співвідношень з текстовими константами, єдиною умовою коректності цієї операції є однакова кількість символів у константах, які порівнюються. Результат порівняння двох символів відповідає значенням їх ASCII?кодів, а для двох рядкових констант буде вектор, розмірність якого відповідає довжині рядка, а елементи дорівнюють нулю або одиниці залежно від символів, які порівнюють. При порівнянні векторів значення результату можна присвоїти векторній константі або змінній. Розглянемо застосування операторів порівняння у рядкових констант на прикладі:

>> ‘b’>‘a’

ans =

>> ‘b’~=‘a’

ans =

>> ‘ba’~=‘aa’

ans =

1 0

>> ‘bac’>‘aaa’

ans =

1 0 1

>> c=(‘bac’~=‘aaa’)

c =

1 0 1

>> c=(‘bac’=‘aaa’)

??? c=(‘bac’=

A closing right parenthesis is missing.

Check for a missing «)» or a missing operator .

>> c=(‘bac’==‘aaa’)

c =

0 1 0

>>

Як можна побачити з наведеного прикладу, у MatLab, на відміну від мов програмування С та С++, оператори присвоєння і порівняння чітко розрізняються, і в разі їх неправильного використання система видає синтаксичну помилку.

 

 

Логічні оператори

 

Значну роль у системі MatLab відіграють логічні оператори та функції. Під час розв’язання задач з електроніки їх можна ефективно використовувати для аналізу цифрових схем. Але особливо велике значення мають логічні дії при написанні програми мовою MatLab, які будуть розглянуті у розділі 4. Особливість виконання логічних операцій із числовими даними полягає у тому, що логічній одиниці відповідає будь?яке число, крім нуля. При виконанні логічних операцій над рядками, як і для операцій порівняння, усі символи рядка подаються через їх ASCIІ коди.

Функції any та all призначені для оброблення векторів. Якщо аргументом функції є матриця, операція за замовчуванням проводиться з кожним стовпчиком матриці, результат — вектор. Використовуючи формат цих функцій з двома аргументами, одним з яких є число n, можна обрати напрям обробки матриці. Значенню n=1 відповідає обробка рядків матриці (перший напрям), а значенню n=2 — оброблення стовпчиків (другий напрям). Команди можуть використовуватися як для окремих операндів, так і для математичних виразів, що дуже важливо при реалізації функцій програмування. Формат логічних команд під час роботи з виразами такий:

(вираз) оператор (вираз)

або

функція ((вираз), (вираз))

Наведемо приклад використання логічних операторів.

Приклад

>> M1=[1,2,3]

M1 =

1 2 3

>> M2=[0,2,0]

M2 =

0 2 0

>> and(M1,M2)

ans =

0 1 0

>> or(M1,M2)

ans =

1 1 1

>> M1&M2

ans =

 








Дата добавления: 2016-05-11; просмотров: 941;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.014 сек.