Вбудовані елементарні математичні функції
В середовищі MATLAB існує досить велика кількість вбудованих функцій, створених розробниками. Звернення до цих функцій здійснюється у вигляді fun(x), де fun – ім’я функції, x – аргумент (наприклад, константа, змінна або вираз).
Серед елементарних математичних функцій системи MATLAB можна виділити наступні:
-
алгебраїчні та арифметичні функції
abs(x) – абсолютне значення (модуль) x;
exp(x) – експоненціальна функція ;
log(x), log10(x), log2(x) – натуральний, десятковий та двійковий логарифми;
pow2(x) – піднесення числа 2 до степеня x;
sqrt(x) – квадратний корінь з x;
-
тригонометричні та обернені до них функції
sin(x), cos(x), tan(x), cot(x) – синус, косинус, тангенс, котангенс;
sec(x), csc(x) – секанс (), косеканс ();
asin(x), acos(x), atan(x), acot(x) – арксинус, арккосинус, арктангенс, арккотангенс;
asec(x), acsc(x) – арксеканс, арккосеканс.
Аргументи тригонометричних функцій повинні бути задані в радіанах. Обернені тригонометричні функції повертають результат також в радіанах.
-
гіперболічні та обернені до них функції
sinh(x), cosh(x), tanh(x), coth(x), sech(x), csch(x) – гіперболічні синус, косинус, тангенс, котангенс, секанс, косеканс;
asinh(x), acosh(x), atanh(x), acoth(x), asech(x), acsch(x) – гіперболічні арксинус, арккосинус, арктангенс, арккотангенс, арксеканс, арккосеканс;
-
заокруглення та залишок від ділення
ceil(x) – заокруглення до найближчого цілого, не меншого від x;
floor(x) – заокруглення до найближчого цілого, не більшого від x;
round(x) – заокруглення до найближчого цілого;
fix(x) – відкидання дробової частини;
sign(x) – знак числа x;
mod(x,y) – залишок від цілочисельного ділення x на y (зі знаком);
rem(x,y) – залишок від цілочисельного ділення x на y.
Приклад В.2. Обчислити значення виразу :
>> cos(pi+sqrt(3))
ans =
0.1606
Матриці
Всі змінні в середовищі MATLAB являють собою матриці (або масиви). Так, скаляр (число) в MATLAB є масивом розмірності 1х1, вектор – матрицею з одним рядком або одним стовпчиком.
Матриці можна вводити безпосередньо, наприклад, у командному рядку. Для цього необхідно вказати ім’я матриці, після якого поставити оператор присвоювання та в квадратних дужках послідовно перерахувати всі її елементи. Елементи одного рядка відділяються пробілом або комою, а рядки – крапкою з комою (;).
Приклад В.3.
>> A=[1 2 3; 4 5 6; 7 8 9]
A =
1 2 3
4 5 6
7 8 9
Альтернативний спосіб введення матриці полягає в натисканні клавіші <Enter> (або сполучення клавіш <Shift> + <Enter>) наприкінці кожного рядка.
Безпосереднє введення векторів здійснюється так само, як і введення матриць. При цьому елементи вектор-рядків перераховуються в квадратних дужках через пробіл або кому, а вектор-стовпчиків – через крапку з комою.
Приклад В.4.
>> x=[3 1 2 9]
x =
3 1 2 9
>> y=[15;10]
y =
15
10
В MATLAB передбачений більш простий спосіб створення векторів або матриць, кожний елемент яких відрізняється від попереднього на одну і ту саму величину (або крок). Для введення таких векторів або матриць призначений оператор : (двокрапка), за допомогою якого можна задавати діапазон значень. Команду для створення вектор-рядка, всі елементи якого відрізняються один від одного на постійний крок, можна умовно записати:
>> ім’я вектора=[початкове значення:крок:кінцеве значення]
Якщо крок дорівнює 1, то його можна не вказувати, і дана команда приймає вигляд:
>> ім’я вектора=[початкове значення:кінцеве значення]
Приклад В.5. Створимо вектор-рядок з використанням оператору двокрапки:
>> z=0:0.2:1
z =
0 0.2000 0.4000 0.6000 0.8000 1.0000
Крок може бути і від’ємним числом, наприклад, в результаті виконання команди
>> u=[10:-2:1];
буде створений вектор .
Даний приклад демонструє ще одну особливість автоматичного створення векторів з використанням двокрапки – сума передостаннього елемента та кроку необов’язково повинна дорівнювати кінцевому значенню. В такому випадку останній елемент вектора приймає значення, що входить у визначений користувачем діапазон.
Відмітимо, що з використанням оператора : можна автоматично створювати не лише вектори, а й матриці. Так, команда
>> B=[1:2:7; 8, 2:4; 12:-1:9; 14, 13, 16, 15]
призводить до створення наступної матриці
B =
1 3 5 7
8 2 3 4
12 11 10 9
14 13 16 15
Крім поелементного введення, можна автоматично створювати матриці спеціального вигляду за допомогою вбудованих функцій. В табл. В.2 наведені деякі з них.
Таблиця В.2
Функції формування спеціальних матриць
Тип матриці |
Функція для створення |
|
квадратна матриця розміру |
прямокутна матриця розміру |
|
Матриця з нульовими елементами |
zeros(n) |
zeros(m,n) |
Матриця з одиничними елементами |
ones(n) |
ones(m,n) |
Одинична матриця |
eye(n) |
eye(m,n) |
Матриця випадкових чисел, рівномірно розподілених між нулем та одиницею |
rand(n) |
rand(m,n) |
Матриця випадкових чисел, розподілених за нормальним законом |
randn(n) |
randn(m,n) |
Приклад В.6. Створимо нульову матрицю розміром 2х4:
>> C=zeros(2,4)
C =
0 0 0 0
0 0 0 0
Перелічені в табл. В.2 функції можна застосовувати також і для створення векторів, оскільки вектор є матрицею, у якої одна з розмірностей дорівнює одиниці. Наприклад, щоб автоматично створити вектор-рядок з п’ятьма одиничними елементами достатньо в командному рядку записати
>> v=ones(1,5)
v =
1 1 1 1 1
Звернення до елементів векторів і матриць здійснюється за допомогою індексів. Індекси вказуються в круглих дужках після імені матриці або вектора і являють собою порядковий номер елемента (у випадку векторів) або номер рядка та стовпчика, в яких розташований елемент (у випадку матриць), до якого необхідно отримати доступ. В MATLAB нумерація елементів розпочинається з одиниці, відповідно індекси повинні бути більше або дорівнювати одиниці. Наприклад, для звернення до третього елемента деякого вектора x, необхідно записати x(3), а запис A(2,3) означає елемент, що знаходиться на перетині другого рядка та третього стовпчика матриці A. Звертатись до елементів матриць можна, використовуючи всього один індекс. В цьому випадку матриця розглядається як один вектор-стовпчик, сформований послідовно зі стовпчиків початкової матриці. Наприклад, отримати значення елементу, що знаходиться у другому рядку та третьому стовпчику матриці A, можна за допомогою команд A(2,3) або A(8).
В загальному випадку команду для доступу до елемента вектора можна подати у вигляді:
>> ім’я вектора(порядковий номер елемента)
Загальний вигляд звернення до елемента матриці наступний:
>> ім’я матриці(номер рядка,номер стовпчика)
Щоб замінити значення елемента вже створеної матриці на інше, треба вказати ім’я матриці, індекси елемента в круглих дужках, оператор присвоювання та нове значення елемента. Так, команда
>> A(3,1)=cos(pi);
змінює значення елемента, який знаходиться на перетині третього рядка та першого стовпчика матриці A з прикладу В.3 на .
Останній приклад свідчить також про те, що елементами матриць і векторів можуть бути не тільки числа, а й значення математичних функцій.
При зверненні та присвоєнні деяких значень елементам матриць (векторів), в якості індексів можна використовувати вектори, діапазони або оператор :.
Наприклад, за допомогою виразу A(1:2,1:3) можна виділити підматрицю, що складається з елементів перших двох рядків та перших трьох стовпчиків матриці A з прикладу В.3:
>> A(1:2,1:3)
ans =
1 2 3
4 5 6
Якщо при зверненні до елементів матриці замість одного з індексів вказано оператор :, то це означає що треба виділити весь рядок або стовпчик. Так, запис A(3,:)означає третій рядок матриці A:
>> A(3,:)
ans =
7 8 9
Ще один спосіб виділення підматриць полягає у використанні векторів в якості індексів. Наприклад, щоб отримати значення елементів матриці A, що розташовані в другому рядку, в першому і третьому стовпчику, можна записати:
>> A(2,[1 3])
ans =
4 6
Об’єднання матриць (векторів) з однаковою кількістю рядків “по горизонталі” відбувається так: [A B C]; “по вертикалі” – [A; B; C] (матриці A, B і C повинні мати однакову кількість стовпчиків). Зауважимо, що команди об’єднання матриць (векторів) можуть містити довільну кількість імен матриць (векторів).