Тема 5. Функції. Процедури. Пакети. Вектори та матриці
| Сайт: | Навчально-інформаційний портал НУБіП України |
| Курс: | Комп'ютерна техніка та програмування (ТТ) ☑️ |
| Книга: | Тема 5. Функції. Процедури. Пакети. Вектори та матриці |
| Надруковано: | Гість-користувач |
| Дата: | пʼятниця, 7 листопада 2025, 03:18 |
1. Функції
Функція (відображення, оператор, перетворення) - математичне поняття, що відображає зв'язок між елементами множин.
Функція - це правило, за яким кожному елементу однієї множини (область визначення) ставиться у відповідність деякий елемент іншої множини (область значень). Термін «функція» ввів Лейбніц (1692).
Часто під терміном «функція» розуміється числова функція – правило за яким одні числа ставляться у відповідність іншим.
Числові функції зручно представляти у вигляді графіків.
Розрізняють функції:
- в залежності змінних - одної змінної, багатьох змінних і т.д.;
- формі представлення – таблична, аналітична;
- вигляду – алгебраїчна, тригонометрична тощо.
В Maple вбудовано велику кількість математичних функцій, наприклад: квадратний корінь sqrt(x); модуль abs(x); тригонометричні sin(x), cos(x), tan(x), cot(x); зворотні тригонометричні: arcsin(x), arccos(x), arctan(x), arccot(x); експонента exp(x); натуральний і десятковий логарифм: ln(x), log10(x).
Існує декілька способів визначення функцій в Maple:
- присвоювання змінної деякого виразу, наприклад: F0:=cos(t)+1;
- за допомогою функціонального оператора ім'я функції:=список параметрів -вираз; наприклад: F1:=(x, y) -x^(y^2);
- за допомогою команди unapply (вираз, параметри), яка перетворює вираз в функціональний оператор, наприклад, F2:=unapply (sin(x)^2+exp(y^2), x, y);
В першому випадку об’єкт F0 не є повноцінною функцією користувача, оскільки в ньому використовуються тільки глобальні змінні і нема оголошеного списку параметрів, від якого залежить значення функції. У другому та третьому способі, змінні вказані у списку формальних параметрів, є локальними. Звернення до функцій заданих другим та третім способами відбувається стандартним чином: ім'я функції (a, b, ...), де a, b, ... - конкретні значення змінних.
2. Процедури користувача
Процедура (функція) - сукупність оголошень і операторів, призначених для виконання деякої окремої логічно-оформленої задачі.
Процедура на Maple-мові виглядає наступним чином:
name:=proc (формальні параметри)
вираження від формальних параметрів
end;
З використанням функцій та процедур в мові Maple пов’язані такі поняття, як їх оголошення, виклик і визначення.
Оголошення функції специфікує назву функції, тип яке повертається функцією, атрибути її формальних параметрів, тіло функції, яке включає оголошення змінних та оператори.
Формальні параметри функції - змінні, які приймають значення при визові функції в послідовності їх опису списку параметрів. Ідентифікатори формальних параметрів не повинні співпадати з ідентифікаторами змінних, які оголошуються в середині тіла функції.
Тіло функції представляє собою складений оператор.
Можна вводити локальні, визначені тільки всередині даної процедури, змінні, використовуючи local.
Для присвоєння результату роботи процедури різних значень і виходу з неї в будь-якому місці тіла процедури використовується команда return(val).
Загальний вигляд процедури:
name:=proc (parameters)
local val1, ..., valn;
if bool1 then RETURN (res1) else expr1; expr2;fi;
res2;
end;
Виклик процедури передає управління і фактичні аргументи (якщо вони є) заданій функції. Виклик процедури здійснюється по імені. При виконанні виклику функції йде присвоєння фактичних аргументів відповідним формальним аргументам. Передача управління передається на перший оператор тіла функції.
Повертається значення за замовчуванням останнього оператора з тіла процедури. Наприклад, процедура з ім'ям f, що обчислює суму змінних x і y:
F:=proc (x, y)
x+y;
end;
Фактичні аргументи можуть бути будь-якими значеннями базового типу, структурою чи вказівкою. Викликана функція працює з копіями фактичних аргументів, тому ніякі зміни значень формальних аргументів не будуть впливати на зміну фактичних аргументів.
Приклад. Функція знаходження суми квадратів координат.
3. Пакети розширення Maple
Більша частина функцій Maple знаходяться в пакетах розширення, що входять в базову поставку системи. Пакет являє собою набір команд для вирішення завдань, що відносяться до певних розділів математики. Наприклад в пакеті stats зібрані команди для статистичної обробки результатів і т.д.
Перед використанням функцій із пакетів їх треба завантажити окремо або цілим пакетом. Список пакетів розширення можна отримати використовуючи команду:
? index[package]
Отримати інформацію про пакет розширення і знайти список входять до нього функцій можна за допомогою команди:
? name_package
Для звернення до функцій того чи іншого пакета використовується його повне завантаження командою:
with(пакет);
Приклад. Включення бібліотеки процедур роботи з графікою.
Підключивши пакет користувач може викликати всі його команди, просто набираючи їх ім'я і необхідні для виконання параметри прямо в області введення.
Якщо необхідно кілька конкретних функцій пакета, то замість підключення всього пакету цілком можна підключити тільки ці необхідні функції:
with(пакет, f1, f2, ...)
або
with(пакет, [f1, f2, ...])
Команду можна завантажити тільки на час її виконання, після чого вона буде вивантажена з пам'яті. Для цього слід вказати її повне ім'я, що складається з імені пакета та імені самої команди:
Ім'я пакета [ім'я команди] (...);
Формування власної бібліотеки *.lib функцій.
Save Sqr, Sqrt “D:\\ParticleSurf\\BaseGeom.lin”;
4. Векторна алгебра
Лінійна алгебра - частина алгебри, що вивчає теорії лінійних рівнянь, визначників, матриць, векторних просторів, тензорне числення.
Лінійні рівняння як рівняння прямих і площин стали предметом вивчення після винаходу Декартом і Ферма методу координат (близько 1636). Гамільтон у 1833 представляв комплексні числа у вигляді двовимірного дійсного векторного простору, йому належить авторство терміну «вектор». Теорія матриць була розроблена у працях Келі (1850). Системи лінійних рівнянь вперше з’явилися у роботах Лагерра (1867).
Векторним (або лінійним простором) називають множину векторів, до якої належать вектори з будь-яким можливим значенням компонент. Для того щоб множина векторів складала векторний простір на ній повинен діяти ряд аксіом: комутативності, асоціативності, дистрибутивності, додавання і множення на скаляр, існування нульового і протилежного елемента.
Число n, яке визначає кількість елементів вектора називається розмірністю векторного простору. Лінійна алгебра вивчає векторні простори скінченної розмірності.
Головними об’єктами лінійної алгебри є такі абстрактні поняття, як масиви (array), вектори (vector) і матриці (matrix).
Вектор - індексована сукупність чисел або інших математичних об’єктів [x1, x2, .., xn]. Часто вектор записують у вигляді стовпчика.
Вектор АВ (або ж a) має початок - точку А і кінець - точку В. Вектор є направлений відрізок прямої. Пряма, на якій лежить вектор, називається лінією дії вектора. Два вектори є колінеарні, якщо вони лежать на одній прямій або на паралельних прямих. Якщо вектори колінеарні, то їх відповідні координати пропорційні. Рівні вектори мають однакові координати. Нульовий вектор має нульові координати – його початок збігається з кінцем.
Елементи векторів є індексованими змінними – місце кожного елемента вектора визначається його індексом. Виклик i-го елемента вектора a здійснюється записом a[i], привласнення нового значення x i –му елементу вектора a має вигляд a[i]=x.
Операції над векторами
Сумою двох векторів є вектор, побудований на діагоналі паралелограма, що проходить через загальне початок, що має той же початок і довжину. Для двох векторів a(a1,a2) і b(b1,b2) в площині маємо: (a1+b1, a2+b2). Аналогічно, різниця векторів a(a1,a2) і b(b1,b2) є вектор с координатами (a1-b1, a2-b2).
Добутком вектора a(a1,a2) на число k є вектор c(k a1, k a2).
Ортом вектора a є вектор одиничної довжини, який має той же напрямок, що і вектор a. Орт визначається діленням компонентів вектора на його довжину: e = a / |a|.
Векторним добутком двох векторів a × b є вектор, який:
- перпендикулярний площині векторів a і b;
- його модуль рівняється модулю векторів a і b на синус кута між ними;
- векторний добуток двох колінеарних векторів рівняється нулю.
Приклад 1. Дано А1(7,0,3), А2(3,0,1), А3(3,0,5). Знайти площу трикутника А1А2А3.
Рішення. Знайдемо координати векторів А1А2(-4,0,-2) і А1А3(-4,0,2).
Площа трикутника рівняється половині площі паралелограма:
.
або ж через скалярний добуток:
або ж
Добутки трьох векторів
Найпростішим добутком трьох векторів є множенням скалярного добутку двох векторів а • b на третій вектор c: (a • b) c.
Векторно-векторний добуток трьох векторів є вектор: r = (a × b) × c. Вектор r перпендикулярний до вектора a × b і до вектора c.
Векторно-скалярним або мішаним добутком трьох векторів називається величина, яка одержується із скалярного множення векторного добутку (a × b) двох векторів на третій вектор c: (a × b) • c. Мішаний добуток є скаляр.
Векторно - скалярний добуток трьох векторів дорівнює нулю, коли вектори компланарні - об’єм паралелепіпеда, побудованого на компланарних векторах, дорівнює нулю. Також, векторно - скалярний добуток дорівнює нулю, якщо в ньому два множника однакові: (a, a, b) = 0.
5. Матричні операції
Матриця (m×n) – прямокутна двовимірна таблиця, яка включає рядків і стовпчиків елементів, які можуть бути числом, змінною, символом, виразом.
В матриці А числа аij називають її елементами, перший індекс означає номер рядка, другий - номер стовпчика, на перетині який знаходиться елемент (i=1, 2, …, m; j=1, 2,…, n .
Розмірністю матриці називається вираз , де - кількість рядків, а - число стовпців матриці.
Квадратна матриця – кількість рядків дорівнює кількості стовпчиків.
Одинична матриця E – квадратна матриця, у якої діагональні елементи дорівнюють 1, а всі останні 0.
Транспонована матриця – стовпчики та рядки міняються містами.
Обернена матриця – матриця, яка помножена на вихідну матрицю, дає одиничну матрицю .
Транспонована матриця Ат отримується з матриці А, якщо всі її рядки замінити на відповідних стовпців.
Матриця називається нульовою, якщо всі її елементи дорівнюють нулю.
Дії над матрицями
Добуток матриці А на довільне число називається матриця, елементами якої служать твори елементів матриці А на .
Сумою (різницею) двох однакової розмірності m×n матриць А і називається матриця, елементи якої дорівнюють сумам (різницями) відповідних елементів матриць А і В, тобто сіј=аіј+bij для суми матриць і сіј=аіј-bij для різниці матриць (i=1, 2, ..., m; j=1, 2,..., n), де - елементи матриці А, bij - елементи матриці В:
Добуток матриці розмірності k×s матриці А розмірності s×n називається k×n - матриця, елементи сіј (i=1, 2, ...k; j=1, 2, ..., n) якої дорівнюють сумі добутків елементів i - го рядка матриці B на відповідні елементи j - го стовпця матриці A.
Добуток матриць некоммутативно: А•В ≠ В•А.
Різницею двох матриць А однакового розміру є така матриця C, для якої справедливо рівність В+C=А. Різниця завжди існує і дорівнює А+(-В).
Визначником квадратної матриці є число.
6. Пакети лінійної алгебри linalg та LinearAlgebga
Лінійна алгебра в Maple реалізується за допомогою двох пакетів:
- linalg – для виконання абстрактних обчислень над матрицями і векторами;
- LinearAlgebra – робота з числовими матрицями.
Кількість функцій пакету linalg містить понад сто назв.
with(linalg);
В пакеті linalg вектори та матриці побудовані на основі масиву array.
Приклади.
- Завдання двох векторів a і b:
a:=vector([6,2,1]);b:=vector([0,-1,2]);
[6, 2, 1]
[0, -1, 2]
- Знаходження суми векторів a і b:
c:=matadd(a, b);
[6, 1, 3]
- Знаходження довжини вектор с:
norm(c,2);
13
Приклад. Мішаний добуток трьох векторів:
>with(linalg):
a:=vector([-5,-7,-4]): b:=vector([-9,-10,-2]): c:=vector([-2,-11,3]):
dotprod(crossprod(a,b),c);
-373
Побудова зображень векторів
Побудувати зображення векторів векторного добутку
with(plots):
c:=crossprod(a,b):
arrow([a,b,c]):
7. Самоперевірка
Які операції є над векторами та матрицями?
Які є бібліотеки векторної алгебри?
Шрифти
Розмір шрифта
Колір тексту
Колір тла
Кернінг шрифтів
Видимість картинок
Інтервал між літерами
Висота рядка
Виділити посилання