- •Команди редактора MatLab
- •1.2. Розрахунки в MatLab
- •Арифметичні та матричні операції в MatLab
- •Внутрішні елементарні функції MatLab
- •1.3. Числові формати
- •Числові формати в MatLab
- •Для повернення до вихідного формату слід скористатися командою:
- •1.4. Константи і змінні
- •Константи, що визначені в MatLab
- •1.5.1. Файл-програми
- •1.5.2. Файл-функції
- •1.6. Дії з матрицями та визначники в середовищі MatLab
- •Функції MatLab, що використовуються для розв’язання задач матричної алгебри.
- •Варіанти завдань для самостійної роботи
- •Контрольні питання
1.5.1. Файл-програми
Файл-програма – це набір команд, що зберігається у m-файлі (спеціальному виконуючому файлі системи MatLab). Для переходу в редактор m-файлів оберіть пункт меню File → New → m-file (Файл → новий → m-файл), як це зображено на рис. 1.2. Після цього з’являється вікно редактору m-файлів (рис. 1.3), в якому слід набрати наступні рядки:
Лістинг 1.1. файл-фунція funcf
f1=sqrt(1+x^2+exp(-2*x+6));
f2=1/(1+x^2);
f=f1-f2
Після цього слід зберегти m-файл під якимось зручним іменем, наприклад funcf.m, за допомогою меню File → Save As (Файл → Сохранить Как) редактора m-файлів.
Рис. 1.2. Перехід у редактор m-файлів
Тепер обчислити запропонований вираз можна при будь-яких значеннях змінної x наступним шляхом.
>>x=4;
>>funcf;
1.5.2. Файл-функції
Файл-програми, що розглянуті, являють собою тільки послідовність команд і не мають вхідних і вихідних аргументів. Однак при розв’язуванні задач за допомогою MatLab буває необхідно саме задавати вхідні аргументи і по них отримувати вихідні параметри. Для цього в системі MatLab існує можливість роботи з файл-функціями. Написання файл-функцій проводиться в редакторі m-файлів (рис. 1.3). Суттєва різниця від файл-програм – це наявність заголовка функції, де розміщається службове слово function, що вказує на те, що даний m-файл презентує функцію. Далі йде ім’я функції із списками вхідних та вихідних аргументів. Підправимо попередній набір команд і потім збережемо.
Лістинг 1.2. файл-фунція funcf1
function res=funcf1(x);
%res-вихідний параметр, funcf1-ім’я функції,x-вхідний параметр
f1=sqrt(1+x^2+exp(-2*x+6));
f2=1/(1+x^2);
res=f1-f2
Зазначимо, що зберігати файл слід під тим же самим іменем, яке має функція (у нашому випадку це funcf1).Тепер для обчислення запропонованого виразу результат отримується наступним шляхом:
>>x=4;
>>f=funcf1(x); % або f=funcf1(4)
f =
4.0807
Рис. 1. 3. Вікно редактору m-файлів
1.6. Дії з матрицями та визначники в середовищі MatLab
В середовищі MatLab існує дуже велика кількість функцій для розв’язання різноманітних задач лінійної алгебри. У таблиці 1.6 наведені деякі основні функції, що використовуються для роботи з матрицями.
Таблиця 1.6
Функції MatLab, що використовуються для розв’язання задач матричної алгебри.
Функція |
Опис, приклад |
1 |
2 |
A=[a11 a12 … a1n;…; am1 am2 … amn] |
Визначення матриці розміру . Рядки відокремлюються крапкою з комою, а елементи кожного рядка відокремлюються знаком пробелу. Наприклад: >>A=[1 -3 2; 4 3 8; -2 6 1] A = 1 -3 2 4 3 8 -2 6 1 |
|
>>B=[-1;2;6] B = -1 2 6 |
A'(апостроф) |
Транспонування матриці, яка визначається змінною A. Наприклад, стовпець можна визначити як транспонований рядок: >>B=[-1 2 6] B = -1 2 6 >>B=B’ B = -1 2 6 |
A1+A2 |
Визначається сума двох матриць, які визначені змінними A1 і A2 (матриці повинні мати однаковий розмір). Наприклад: >>A1=[3 4;1 -2;0 -7] A1 = 3 4 1 -2 0 -7 >>A2=[2 -5;-9 -6; 8 5] A2 = 2 -5 -9 -6 8 5 >>A1+A2 % сума матриць ans = 5 -1 -8 -8 8 -2 |
a*A1 |
Лінійна комбінація матриці, які визначені змінними A1 і A2 (матриці повинні мати однаковий розмір), a і b – це числа. Наприклад: >>3*A1-2*A2 ans = 5 22 21 6 -16 -31 |
f(A) |
Якщо f(x) – це елементарна функція, то означена операція приводить до обчислення матриці того ж розміру, що і матриця A, кожний елемент якої дорівнює значенню елементарної функції від відповідного елемента матриці A. Наприклад: >>sin(A1) ans = 0.1411 -0.7568 0.8415 -0.9093 0 -0.6570 >>exp(B) ans = 0.3679 7.3891 403.4288 |
A.*C |
Поелементний добуток матриць, які визначені матрицями A і C. Результатом є матриця того ж розміру, що і матриці A і C. Наприклад: >>C=[2 1 0;3 1 3;4 -2 -7]; >>A.*C ans = 2 -3 0 12 3 24 -8 -12 -7 Матриці повинні бути одного розміру, інакше буде помилка, наприклад: >>A.*B ??? Error using ==> times Matrix dimensions must agree. |
A.^a |
Кожен елемент матриці, яка визначена змінною A підноситься до степеня a. >>A.^2%піднесення до степеня 2 ans = 1 9 4 16 9 64 4 36 1 Операція може бути застосована до будь якої прямокутної матриці: >>A1.^2 % A1-прямокутна матриця ans = 9 16 1 4 0 49 |
A*C |
Звичайний добуток матриць, які визначені матрицями A і C. Розміри матриць повинні бути узгодженні (кількість стовпців першої матриці - множника повинна дорівнювати кількості рядків другої матриці- множника). Наприклад: >>A*C ans = 1 -6 -23 49 -9 -47 18 2 11 Якщо розміри не узгоджені видається повідомлення про помилку: >>A1*A2 ??? Error using ==> mtimes Inner matrix dimensions must agree.
>>A1*A2’ %розміри узгоджені – результат %є добуток матриці A1 та %транспонованої матриці A2 ans = -14 -51 44 12 3 -2 35 42 -35 |
A^n |
Піднесення матриці, яка визначена змінною A, до степеня n(матриця повинна бути квадратною). >>A^2 %піднесення до степеня 2 |
|
ans = -15 0 -20 0 45 40 20 30 45 |
size(A) |
Визначення розміру матриці, яка визначена змінною A. Наприклад: >>size(A) ans = 3 3 >>size(B) ans = 3 1 |
det(A) |
Обчислення визначника (!)квадратної матриці, яка визначена змінною A. Наприклад: >>det(A) ans = 75
|
inv(A) |
Обчислення оберненої матриці, для матриці, що визначена змінною A (визначник повинен не дорівнювати нулю). >>inv(A) ans = -0.6000 0.2000 0.4000 -0.2667 0.0667 0 0.4000 0 0.2000
|
Завдання:
Визначити в середовищі MatLab матриці
та
розміром
.Визначити в середовищі MatLab вектор
як вектор-стовбець.Обчислити матриці
;
;
.
Обчислити матрицю
.
Зробити висновок.Обчислити матрицю
та матрицю, що складається з квадратів
відповідних елементів матриці
.
Порівняти результати.Перевірити рівність
.Обчислити вектор-стовпець
,
який дорівнює добутку вектора
та матриці
,
вектор
.Обчислити і порівняти визначники матриць та
.Знайти обернену матрицю до матриці , результат представити у вигляді звичайних дробів, виконати перевірку
